在使用Access中的DoCmd.TransferText方法时,我遇到了问题标题中描述的错误。我的代码从当前数据库的表中获取文件名(这些文件是来自单个文件夹中大约2000个文件中选择的文件),其目标是将这些文件的内容导入Access中的一个表中。请参阅以下主题以获取更多信息:VBA procedure to import only selected csv files (from one folder) into a single table in access
所有文件具有相同的结构和数据类型。
以下是我正在使用的代码:
代码在
这是目标表的样子: 这是另一个我一直试图导入数据的表。 该表中的字段名称没有特殊字符,并且已在字段上设置相同的数据类型,但并没有任何区别。仍然返回相同的错误31519。
Sub Importing_data_into_a_single_table_csv_version()
Dim my_path As String
Dim rs As Recordset
Dim start As Double
Dim total_time As String
DoCmd.SetWarnings True
my_path = "C:\Users\michal\SkyDrive\csv\bossa\mstcgl_csv\" ' source folder.
start = Timer ' remember time when macro starts.
Set rs = CurrentDb.OpenRecordset("CSV Files") ' opens the table with file names.
Do Until rs.EOF
If Dir(my_path & rs.Fields(0).Value) <> "" Then
' DoCmd.TransferText acImportDelim, "macro_link_specification", "all_stocks_3", "my_path & rs.Fields(0).Value", True
DoCmd.TransferText acImportDelim, "import", "all_stocks_1", "my_path & rs.Fields(0).Value", True
' expression. TransferText ( TransferType, SpecificationName, TableName, FileName, HasFieldNames, HTMLTableName, CodePage )
End If
rs.MoveNext
Loop
total_time = Format(Timer - start, "hh:mm:ss")
MsgBox "This code ran successfully in " & total_time, vbInformation
End Sub
代码在
DoCmd.TransferText acImportDelim, "import", "all_stocks_1", "my_path & rs.Fields(0).Value", True
处崩溃。
导入这些文件时,目标表需要进行特殊准备吗?对不起问这种问题,但我现在只是一个初学者,才用了三周的Access。
我使用了名为“import”的导入规范。这可能是问题的原因吗?这是目标表的样子: 这是另一个我一直试图导入数据的表。 该表中的字段名称没有特殊字符,并且已在字段上设置相同的数据类型,但并没有任何区别。仍然返回相同的错误31519。
"my_path & rs.Fields(0).Value"
是你实际的代码吗?你必须去掉引号,这样变量才能被使用。DoCmd.TransferText acImportDelim, "import", "all_stocks_1", my_path & rs.Fields(0).Value, True
- Andre