2009-11-17 117 views
0

我需要將文件中的數據與SQL Server數據庫中的列進行比較。我被要求使用Microsoft Access來做同樣的事情。如何將數據文件與SQL Server數據庫中的列進行比較?

附加信息: 文件由多行文本組成。文本中包含與SQL Server數據庫的列名相匹配的詞。

應該怎麼做比較?如果我使用MS Access,那麼我會編寫查詢以從SQL Server中提取信息,但我不知道如何使用(我不確定是否有可能)使用MS Access將文件中的信息與數據庫中的信息進行比較。

UPDATE

文件結構:

ABCDE  12324   ABCDE ABCDE 
    ABCDE  WORDSWORDSWORDS WORDS 
    VERSION  NUMBER1.1 IDENTIFIER:129090 
    WORDS WORDS WORDS 
    WORDS WORDS 
    ABCDE  22324   ABCDE ABCDE 
    ABCDE  WORDSWORDSWORDS WORDS 
    VERSION NUMBER2.1 IDENTIFIER:129090 
    WORDS WORDS WORDS 
    WORDS WORDS 
    ABCDE  32324   ABCDE ABCDE 
    ABCDE  WORDSWORDSWORDS WORDS 
    VERSION XUMBER1.1 IDENTIFIER:129090 
    WORDS WORDS WORDS 
    WORDS WORDS 

數據庫結構:

Column1 Column2 Column3 Accession_Ver Column4 

234  value2 value3 NUMBER1.1   value4 
456  value5 value6 NUMBER2.1   value7 

我得值後的數據字 '版本'(即NUMBER1.1)比較數據庫中列名爲'Accession_Ver'(即NUMBER1.1)的文件。比較後,如果值不同,則存儲它們,否則繼續比較。

我可以使用Perl來解析數據文件,但我不知道如何使用MS Access連接文件和數據庫來比較信息。

+0

請提供帶有示例內容的文件結構以及SQL Server表結構?你想比較什麼?然後什麼? – shahkalpesh 2009-11-17 14:20:57

+0

已添加結構。 – shubster 2009-11-17 14:47:53

回答

0

可以將SQL服務器表附加到Access或使用ADO獲取記錄集(http://www.connectionstrings.com/sql-server-2008)。如果結構一致,也可以在VBA中逐行讀取文本文件或將其附加到Access。

在我看來,您可能希望使用例如FileSystemObject在VBA中逐行讀取文件,然後使用ADO根據您檢查的行來運行合適的查詢。

+0

FileSystemObject是否支持RegEx,這對我來說似乎是顯而易見的方法? – 2009-11-17 23:55:39

0

您很可能想要將文件導入到數據庫中的臨時表中。數據一旦存在,您就可以輕鬆地針對數據編寫查詢。

0

幾種方法,但這裏是我的兩美分。

  1. 將所需信息以列格式提取到新文件中,請考慮csv。
  2. 將新文件導入到表中。
  3. 在數據庫中進行比較。

OR

如果您有SQL服務器2005/2008標準的/ dev /企業,比你有SSIS。在SSIS中,您可以連接到數據庫,平面文件,XMl等等,並處理記錄。

相關問題