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
方法应该可以正常工作。
我在 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
方法应该可以正常工作。