Fil*_*peG 2 ms-access vba access-vba
我导入几个'|' 用以下文件将文件分隔到我的DB:
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
Run Code Online (Sandbox Code Playgroud)
问题是,文件是UTF-8,而我正在使用的访问数据库不是,它在第一条记录前用'进口,我的表结束如下:
Type Nmbr Date
100 12312 15082013
Run Code Online (Sandbox Code Playgroud)
如何导入文件whitout问题该怎么办?是否可以将文件转换为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
Run Code Online (Sandbox Code Playgroud)
我现在没有能力测试这段代码,但我相信它应该可行.