2010-06-07 50 views
0

我在探索DoCmd.TransferText是否能夠滿足我需要的選項,它看起來像是不會。我需要插入的數據,如果,如果它存在逐行讀取文本文件並在表中插入/更新值

我計劃逐行讀取這樣的文本文件中的行不存在,並更新它:

Dim intFile As Integer 
Dim strLine As String 

intFile = FreeFile() 
Open myFile For Input As #intFile 
Line Input #intFile, strLine 
Close #intFile 

我想每一個人線將是一個記錄。它可能會用逗號分開,一些領域將有一個"文本限定符,因爲該領域本身,我將有逗號

我的問題是我怎麼會讀,有時有double quotes文本預選賽到表中的逗號分隔的文本文件在訪問?

回答

1

我一直在關注你的相關問題,但我不確定你遇到麻煩的地方。好像你要完成兩件事情與該文本文件導入:

  1. 導入文本文件
  2. 追加或更新記錄的基礎上導入的數據

可能是一張桌子它將這些步驟作爲兩個單獨的操作來處理會更有成效,而不是試圖將它們合併爲一個操作。

我以爲你有第一步工作。如果是這樣,請將文本導入到單獨的表tblImport中,然後使用該表將更改驅動到主表。如果您擔心由於反覆導入而導致數據庫膨脹,然後刪除tblImport中的記錄,則可以使tblImport成爲外部數據庫的鏈接......以便將膨脹與該數據庫隔離開來。

如果您需要更詳細的步驟#2幫助,我想您必須告訴我們如何確定哪些導入的記錄不存在於主表中,以及如何匹配更新的導入記錄和主記錄。也許你可以刪除在tblImport中有對應的現有主記錄,然後將所有的tblImport附加到你的主表中。

+0

謝謝你這確實是正確的解決方案 – 2010-06-07 19:08:35

+0

btw我需要幫助#2我想我會問它 – 2010-06-07 19:22:02

+2

你也可以通過使用IN'mytextfile.txt '語法在SQL SELECT的FROM中(或者對於UPDATE或INSERT)。 – 2010-06-07 19:27:18

1

我在這裏假設你的文本文件格式很好/分隔。因此,請嘗試錄製宏,然後使用導入嚮導。 [可以通過命令行激活導入嚮導,並通過函數調用將所有必要的值傳遞給它。]然後,將宏生成的代碼複製/移動到您的方法中,提供您喜歡的任何變量(這是我以前用過的方法)。

+0

我不認爲這是正確的解決方案 – 2010-06-07 18:55:50