ms-access - MS Access 导入 UTF-8 文件

标签 ms-access vba

我导入了几个“|”将文件分隔到我的数据库中:

Private Sub cmdImport_Click()

Dim i As Integer
Dim path1 As String

path1 = "C:\ImportFiles"

Destination = "C:\ImportFiles\processed"

Set fs = Application.FileSearch

With fs
    .LookIn = Path1
    .FileName = "*.*"
    If .Execute > 0 Then
        For i = 1 To .FoundFiles.Count

            DoCmd.TransferText acImportDelim, "ImportRPS", "tbImportRPSTemp", .FoundFiles(i), False
            fileName = .FoundFiles(i)
            fileName = Replace(fileName, path1, "")

            Set fs1 = CreateObject("Scripting.FileSystemObject")

            fs1.MoveFile Path1 & fileName, Destination & Format(Now, "YYYYDDMMTHHMMSS") & fileName

        Next i
    Else
        MsgBox "No files to update", vbInformation
        Exit Sub
    End If
End With

Me.Requery

End Sub

问题是,文件采用 UTF-8 格式,而我正在使用的 Access 数据库不是,它在第​​一条记录前面使用“”导入,我的表格结尾如下所示:

Type    Nmbr    Date
100  12312   15082013

如何导入文件而不出现问题?是否可以将文件转换为 ANSI 并导入它,或者是否有更好的方法?我无法手动执行此操作,因为这些文件应该每天都会到达数十个。

最佳答案

根据http://msdn.microsoft.com/en-us/library/office/ff835958.aspx TransferText 的最后一个参数是代码页。在 Windows 中,UTF-8 的代码页为 65001。

因此,请尝试将 , , 65001 添加到 DoCmd.TransferText 行中。我认为它应该看起来像:

DoCmd.TransferText acImportDelim, "ImportRPS", "tbImportRPSTemp", .FoundFiles(i), False, , 650001

我现在无法测试此代码,但我相信它应该可以工作。

关于ms-access - MS Access 导入 UTF-8 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18259830/

相关文章:

ms-access - 计算控件不会自动重新计算

json - 如何提取嵌套的 JSON 值?

forms - MS Access 中表单的 'key preview' 属性是什么意思?

vba - 多次初始化用户窗体

vba - 如何在表单控件中选择 ActiveX 选项/单选按钮

ms-access - Access 2010表格不会保存记录

ms-access - "Query input must contain at least one table or query"错误 - 嵌套查询,MS Access

arrays - 用于将数据从单元格复制到数组的 VBA 循环

email - 在 Exchange 环境中从 Excel 发送电子邮件

vba - 在具有条件格式的工作表上打开 Excel 2010 文件时,Workbook_open() 将不会执行