Csv VBA导入长文件名
我的桌面上有一个.csv文件。文件名很长,包含特殊字符,如括号,例如:Csv VBA导入长文件名,csv,ms-access,import,vba,Csv,Ms Access,Import,Vba,我的桌面上有一个.csv文件。文件名很长,包含特殊字符,如括号,例如: [ABCD 012015] ACCT 1117 - Section A10 Grades-20150316_1937-comma_separated.csv 其中文件名的前36个字符是常量。文件名的其余部分在每次下载时都会更改。 我曾尝试使用VBA将文件导入带有DoCmd.TransferText的Access,但出现错误。我发现DoCmd.TransfertText可以处理的文件名长度有一个限制。 因此,我需要首先手动重
[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表中更干净。
有什么建议吗?在开始将csv文件中的数据导入MS Access之前,我建议使用TIA
Dim OldPathName As String, NewPathName As String
OldPathName = "FullPathToVeryVeryLonLongLongFileName.csv"
NewPathName = "FullPathToShortFileName.csv"
FileCopy OldPathName, NewPathName
DoCmd.TransferText acImport, "AME_Grades", strTable, NewPathName, blnHasFieldName
到现在为止你都试了些什么?您可以使用FileCopy命令;请看:我在这里和那里尝试了一些代码片段,但都不全面。你的建议有帮助。非常感谢。但是,它与名称OldPathName作为NewPathName有何不同?另外,我认为我更需要一种方法来从文件名中提取节号。这将有助于确保使用DoCmd.Transfertext.Thank将文件作为Access中的唯一表导入!我很欣赏这段代码。我试过了,但我也发现了一些更复杂的东西。我试图发布我的代码,但它不会像我想的那么容易发生。