我使用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")
答案 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"