【发布时间】:2015-05-20 12:55:55
【问题描述】:
我的桌面上有一个 .csv 文件。文件名很长,并且包含特殊字符,例如括号,例如:
[ABCD 012015] ACCT 1117 - Section A10 Grades-20150316_1937-comma_separated.csv
其中文件名的前 36 个字符是一个常量。文件名的其余部分会在每次下载时更改。 我尝试使用 VBA 将文件导入到带有 DoCmd.TransferText 的 Access 中,但出现错误。我发现 DoCmd.TransfertText 可以处理的文件名长度是有限制的。 所以,我需要先手动重命名文件,然后才能使用 VBA。使用 VBA 重命名文件相对容易,但我想使用原始文件名中提供的信息,例如第 A10 节(这将使其独一无二,因为还有其他部分标记为 A01、A02 等)并将 . csv 文件为 A10.csv,因此这意味着搜索字符串并替换它。由于部分可以不同,我如何编写代码并重命名文件,然后用 VBA 导入它? 所以,到目前为止,我有一些零碎的东西,但不能把它们放在一起:
Name OldPathName As NewPathName
DoCmd.TransferText acImport, "AME_Grades", strTable, strPathFile, blnHasFieldNames
我正在使用导入规范 AME_Grades 使其在 Access 表中更清晰。 有什么建议? TIA
【问题讨论】:
-
到目前为止您尝试过什么?您可以使用 FileCopy 命令;)请参阅:msdn.microsoft.com/en-us/library/2s1c774y%28v=vs.90%29.aspx
-
我在这里和那里尝试了一些代码片段,但没有什么全面的。你的建议有帮助。谢谢你。但是,它与 NAME OldPathName As NewPathName 有何不同?
-
另外,我想我更需要一种从文件名中提取节号的方法(方法)。这将有助于确保使用 DoCmd.Transfertext 将文件作为 Access 中的唯一表导入。