VBA:importing CSV 文件

VBA:importing CSV file

我在 ms access 中创建了一个按钮,用于将 csv 文件导入 access 数据库,类似这样

DoCmd.TransferText TransferType:=acLinkDelim, TableName:="student", _ FileName:="C:\Saurabh\test.csv", HasFieldNames:=True

如果文件名不包含任何点,则工作正常。但是如果它包含点,例如 test1.1.csv。它抛出以下错误

The Microsoft access database engine could not find the object test1.1.csv.

我该如何解决这个问题?

尝试获取文件的简称。文件的简称是旧的 DOS“8.3”字符表示法。你可以用 DIR /X:

查看
                              8.3 characters file name
                                          |
                                          v
31/01/2015  23:50        29 365 798 CETOTB~1.LOG CETO.TBX-01-2015.LOG
28/02/2015  23:50        31 449 129 CETOTB~2.LOG CETO.TBX-02-2015.LOG
19/03/2015  13:12        19 190 300 CETOTB~3.LOG CETO.TBX-03-2015.LOG
31/12/2014  23:50        37 562 412 CE8EEC~1.LOG CETO.TBX-12-2014.LOG

正如您在上面看到的,最后一列包含长文件名,前一列包含短文件名。短文件名似乎从来没有点。

在VBA中使用File对象的ShortPath属性得到它:

Set fso=CreateObject("Scripting.FileSystemObject")
Set objFolder = fso.GetFolder("c:\my folder")

Set objFiles = ObjFolder.Files
For Each f In objFiles
   WScript.Echo f.ShortPath
Next

TransferText 方法应该可以正常工作。