我从未使用过Access VBA,但是我需要创建一个解析txt文件的模块,然后立即将其导入到表中。
txt的愚蠢是:
15686541
468469
48978965
456287
48666545
45684651
456788
我需要解析它才能
最终结果如下:
468,46,9
456,28,7
456,78,8
所有这些必须在Access VBA模块中完成,以便导入过程变得无缝。
非常感谢!
抱歉打扰
答案 0 :(得分:3)
这个功能可以做到 - 而且非常快:
Public Function ImportLog(ByVal Filename As String) As Long
Dim rs As DAO.Recordset
Dim File As Integer
Dim Data As String
Dim Data6 As String
Dim Records As Long
Set rs = CurrentDb.OpenRecordset("Select Top 1 * From YourTableName")
File = FreeFile()
Open Filename For Input As #File
While Not EOF(File)
Line Input #File, Data
If Len(Data) = 6 Then
Data6 = Space(6 + 2) ' Space for six digits and two commas.
' Build field value.
Mid(Data6, 1, 3) = Mid(Data, 1, 3)
Mid(Data6, 4, 1) = ","
Mid(Data6, 5, 2) = Mid(Data, 4, 2)
Mid(Data6, 7, 1) = ","
Mid(Data6, 8, 1) = Mid(Data, 6, 1)
rs.AddNew
' Adjust "Data" to your field name.
rs.Fields("Data").Value = Data6
rs.Update
Records = Records + 1
End If
Wend
Close #File
rs.Close
Set rs = Nothing
ImportLog = Records
End Function
返回值是添加记录的数量。
答案 1 :(得分:0)
试试这个:
Sub Import()
Dim fileNum As Integer
Dim dataLine As String
Dim column1 As String
Dim column2 As String
Dim column3 As String
fileNum = FreeFile()
Open "Filename.txt" For Input As #fileNum
While Not EOF(fileNum)
Line Input #fileNum, dataLine
If Len(dataLine) = 6 Then
column1 = Mid(dataLine, 1, 3)
column2 = Mid(dataLine, 4, 2)
column3 = Mid(dataLine, 6, 1)
CurrentDb.Execute "INSERT INTO YourTable(Column1, Column2, Column3) VALUES('" & column1 & "', '" & column2 & "', '" & column3 & "')"
End If
Wend
Close #fileNum
End Sub