VBA导入长文件名

时间:2015-03-17 21:39:58

标签: vba csv import access-vba

我的桌面上有.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

1 个答案:

答案 0 :(得分:0)

我建议您在开始将数据从csv文件导入MS Access之前使用FileCopy function

Dim OldPathName As String, NewPathName As String
OldPathName = "FullPathToVeryVeryLonLongLongFileName.csv"
NewPathName = "FullPathToShortFileName.csv"
FileCopy OldPathName, NewPathName  
DoCmd.TransferText acImport, "AME_Grades", strTable, NewPathName, blnHasFieldName