2011-04-15 154 views
0

我有一種情況,我需要將.csv文件拖入Access數據庫。我需要將數據保存在當前的結構中。可能有多個.csv文件,所以我需要將這些表格'即時創建'。將.csv文件拖入Access數據庫

我想下面的代碼,但該錯誤消息我收到(在執行線): 「查詢輸入必須包含至少一個查詢或表」

只是快速的音符或兩個: 連接確實打開,並且因爲它是一個.csv文件,它將獲得該文件的路徑而不是文件本身(如您所見)。 .csv確實有行,我可以做'選擇*從tocopy.csv',並按預期工作。

代碼我想:

 Dim ConnectionString As String 
     ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\test\;Extended Properties=""Text;HDR=Yes""" 

     Dim myConnection As New System.Data.OleDb.OleDbConnection(ConnectionString) 
     myConnection.Open() 

     Dim cmd As New System.Data.OleDb.OleDbCommand 
     Dim sSQL As String = "" 

     sSQL = "SELECT * INTO [MS Access;Database=C:\test\intake.mdb].[DynamicTable] FROM [tocopy.csv]" 
     cmd.CommandText = sSQL 
     cmd.Connection = myConnection 

     cmd.ExecuteNonQuery() 

     myConnection.Close() 
     myConnection = Nothing 
+0

eyou運行此代碼的地方在哪裏?在Access中?如果是這樣,爲什麼不使用DoCmd.TransferDatabase? – 2011-04-19 03:45:04

+0

看看這個[thread](http://social.msdn.microsoft.com/Forums/en-US/accessdev/thread/a108fbb3-848d-4ebd-a395-f3dc362cc121/) – 2011-07-05 19:25:23

回答

1

你真的有需要導入多個CSV文件,具有完全不同的立柱結構到你的數據庫?那麼您將如何處理導入的數據呢?

如果數據的結構非常不相關,因爲您沒有對其運行查詢,請嘗試將CS​​V文件中的行導入到只有一個MEMO類型的字段的表中,然後使用這些記錄處理這些記錄一些VBA代碼。