2016-03-16 76 views
0

這是一個最佳實踐問題。訪問 - 數據導入最佳實踐

任務:

我需要導入一份報告,該報告可以作爲.csv文件,或.xlsx文件生成訪問2013年。在進口過程中,我需要:

  1. 忽略無關數據行並僅導入報表的一部分中的數據。這相關的數據將在一個正確的 表與表名,表頭,然後記錄下它。
  2. 將數據庫中的現有數據與列匹配(最有可能通過標題)。
  3. 將匹配列導入適當的匹配列中,在數據庫的正確匹配表中,並相應地鍵入數據。
  4. 爲導入的記錄生成自定義密鑰。

有很多方法可以解決這個問題,我只是從社區中尋找一些有關什麼是最有效的方法。進口速度很重要,您可以假設報告將在5萬條記錄附近的某個地方。對我

背景:

我是一個很高級的程序員中MSACCESS VBA的一些經驗和經驗非常少。

編輯

我的數據是這樣的:

Title Cell 
File Info Cell 
Time Date Cell 

Data1, Data 2 
Data1, Data 2 
Data1, Data 2 
Data1, Data 2 
Data1, Data 2 
Data1, Data 2 
Data1, Data 2 
Data1, Data 2 
Data1, Data 2 
Data1, Data 2 
Data1, Data 2 
Data1, Data 2 
Data1, Data 2 
Data1, Data 2 
....(continues for around 800 rows) 

Second Table Title Cell 
Col1Title, Col2Title, ColTitle, Col4Title ....(continues for around 50 columns) 
Data 3, Data4,  Data 5, Data6 ....(continues for around 50 columns) 
Data 3, Data4,  Data 5, Data6 ....(continues for around 50 columns) 
Data 3, Data4,  Data 5, Data6 ....(continues for around 50 columns) 
Data 3, Data4,  Data 5, Data6 ....(continues for around 50 columns) 
Data 3, Data4,  Data 5, Data6 ....(continues for around 50 columns) 
Data 3, Data4,  Data 5, Data6 ....(continues for around 50 columns) 
Data 3, Data4,  Data 5, Data6 ....(continues for around 50 columns)  
Data 3, Data4,  Data 5, Data6 ....(continues for around 50 columns) 
...(Continues for around 1500 rows) 
End of CSV 

我想最大的問題是如何從文本文件中只提取表2。這似乎阻止我使用SQL來查詢數據。我可以只選擇文本文件的第二個表格嗎?

+0

我使用鏈接表和附加查詢。他們工作得很好。 – vacip

+0

最好?不知道。對於csv數據,導入規範將以最快的速度獲取數據,但由於您只需要一部分數據,因此我會選擇一次最好一次讀取一行,找到您想要的數據。對於.xlsx,我認爲你需要通過創建對象打開它,並希望你可以通過命名範圍來定位數據,但是如果你必須循環遍歷表格的單元格,我懷疑它會慢。一旦找到數據,操作/使用數據的速度通常比使用遊標和循環更快。 –

回答

0

Excactly,鏈接表和追加查詢。或者,將數據加載到臨時表(即臨時表)並從中追加記錄(這可能包含所有內容)。所以,你只需將你需要的記錄追加到生產表中。

+0

謝謝大家,我一直在做我的研究,並給出你的反應,這是我看到: 1.建立一個臨時表似乎是最簡單的做法 2.我想以這樣的方式訪問CSV數據我可以使用查詢來提取我想要的數據。 這是我的大問題: 如何在CSV中識別我想要的表格。在文件頂部有很多無用的信息,我想要的表格(標記爲「報告字段」在下面)。鑑於目前的方法,我看不出那麼熱。 –

+0

我已經添加了一個編輯來幫助更好地解釋我用這種方法遇到的問題。 –