2011-04-15 81 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代码。