2

我导入了几个'|' 用这个将文件分隔到我的数据库中:

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 格式,而我正在使用的访问数据库不是,它在第​​一条记录前使用 '' 导入,我的表格结束如下所示:

Type    Nmbr    Date
100  12312   15082013

如果没有问题,我该怎么做才能导入文件?是否可以将文件转换为 ANSI 并将其导入或有更好的方法?我不能手动完成,因为这些文件应该每天都有几十个到达。

4

1 回答 1

5

根据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

我现在没有能力测试这段代码,但我相信它应该可以工作。

于 2013-08-15T19:41:42.993 回答