我有一个案例需要将.csv文件拉入Access数据库。我需要将数据保持在当前结构中。可能有多个.csv文件,所以我需要动态制作表格。
我正在尝试下面的代码,但我收到的错误消息(在执行行上)是: '查询输入必须至少包含一个查询或表'
快速说明一两句话: 连接打开了,因为它是.csv文件,它被提供给该文件的路径而不是文件本身(正如您将看到的)。 .csv确实有行,我可以执行'Select * From 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 :(得分:1)
您是否真的需要将具有完全不同列结构的多个CSV文件导入数据库?那么您将以何种方式处理导入的数据?
如果数据的结构完全无关紧要,因为您没有对其运行查询,请尝试将CSV文件中的行导入到只有一个MEMO类型字段的表中,然后用一些字段处理这些记录VBA代码。