MS Access 2010 - TransferText文件名限制

时间:2016-04-22 11:51:21

标签: access-vba ms-access-2010

我使用Do.cmd TransferText将一些csv文件导入我的数据库,虽然我遇到了一些问题。 我收到一个错误弹出窗口,说Access无法找到该文件,原因的建议是正常的,"文件不存在//包含符号或标点符号//名称太长"

试验表明问题是文件路径太长,在某些情况下超过230个字符(文件保存在网络上,并且层次结构严重超出我的控制范围)

我有一些实验,似乎208个字符是这个的限制,CSV是自动生成的,名称可以稍微缩短,但不会总是太多的帮助,因为它们仍然需要易于识别。

是否存在允许导入路径长于208个字符的文件的解决方案,因为坚持文件名保持简短并不是最好的长期解决方案。

感谢您的反馈!

编辑:我目前有以下代码。

file = "\\Long\File\Path\FileName.txt"
path = Left(file, InStrRev(file, "\"))
newfile = Right(file, Len(file) - InStrRev(file, "\"))

Shell ("subst Z:" & & Chr(34) & path & & Chr(34))
fullpath = "Z:\" & newfile

DoCmd.TransferText TransferType:=acImport, TableName:="tbl_name", FileName:=fullpath, HasFieldNames:=True

Shell ("subst Z: /d")

1 个答案:

答案 0 :(得分:1)

你可以打电话给好的'运行应用程序之前或之后 DOS 命令 Subst

Subst x: f:\some\very\long\path

现在x:将长路径文件夹作为其根目录。

然后导出到驱动器x:

完成后,请致电:

Subst x: /d

删除驱动器x:。

从Access内部使用Shell:

Shell "Subst x: f:\some\very\long\path"