Public Sub Comm(TXT As String) 'TXT文本文件名
'引用Microsoft ActiveX Data 2.X Object Library
Dim DB As New ADODB.Connection
Dim RD As New ADODB.Recordset
Dim szSql As String
Dim F1, F2, F3, F4
Dim F()
Dim i As Integer
Dim nCount As Integer
Dim FieldName() As String
'打开 .MDB
DB.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\temp2.mdb"
DB.CursorLocation = adUseClient
DB.Open
DB.BeginTrans
'不同的文件对应不同的表有效
'在这里加上选择表名Select Case语句
Select Case TXT
Case "Temp1.TXT"
szSql = "select top 1 * from NewTempTable"
Case "Temp2.TXT"
szSql = "select top 1 * from NewTempTable1"
End Select
Set RD = DB.Execute(szSql)
nCount = RD.Fields.Count
ReDim FieldName(1 To nCount)
ReDim F(1 To nCount)
For i = 0 To nCount - 1
FieldName(i + 1) = RD.Fields.Item(i).Name
Next i
Open "C:\temp1.txt" For Input As #1 ' 打开输入文件。
Do While Not EOF(1) ' 循环至文件尾。
'Input #1, F1, F2, F3, F4 ' 将数据读入两个变量。
For i = 1 To nCount
Input #1, F(i)
Debug.Print F(i)
Next
'Debug.Print F1, F2, F3, F4 ' 在立即窗口中显示数据。
'在这里加上选择表名Select Case语句
Select Case TXT
Case "Temp1.TXT"
szSql = "insert into NewTempTable(" & Join(FieldName, ",") & ") values ('" & Join(F, "','") & "')" '数据可作相应的转化
Case "Temp2.TXT"
szSql = "..."
End Select
DB.Execute (szSql)
Loop
Close #1 ' 关闭文件。
DB.CommitTrans
Public Sub Comm(TXT As String) 'TXT文本文件名
'引用Microsoft ActiveX Data 2.X Object Library
Dim DB As New ADODB.Connection
Dim RD As New ADODB.Recordset
Dim szSql As String
Dim F1, F2, F3, F4
Dim F()
Dim i As Integer
Dim nCount As Integer
Dim FieldName() As String
'打开 .MDB
DB.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\temp2.mdb"
DB.CursorLocation = adUseClient
DB.Open
DB.BeginTrans
'不同的文件对应不同的表有效
'在这里加上选择表名Select Case语句
Select Case TXT
Case "Temp1.TXT"
szSql = "select top 1 * from NewTempTable"
Case "Temp2.TXT"
szSql = "select top 1 * from NewTempTable1"
End Select
Set RD = DB.Execute(szSql)
nCount = RD.Fields.Count
ReDim FieldName(nCount)
ReDim F(1 To nCount)
For i = 0 To nCount - 1
FieldName(i) = RD.Fields.Item(0).Name
Next i
Open "C:\temp1.txt" For Input As #1 ' 打开输入文件。
Do While Not EOF(1) ' 循环至文件尾。
'Input #1, F1, F2, F3, F4 ' 将数据读入两个变量。
For i = 1 To nCount
Input #1, F(i)
Debug.Print F(i)
Next
'Debug.Print F1, F2, F3, F4 ' 在立即窗口中显示数据。
'在这里加上选择表名Select Case语句
Select Case TXT
Case "Temp1.TXT"
szSql = "insert into NewTempTable(" & Join(FieldName, ",") & ") values ('" & Join(F, "','") & "')" '数据可作相应的转化
Case "Temp2.TXT"
szSql = "..."
End Select
DB.Execute (szSql)
Loop
Close #1 ' 关闭文件。
DB.CommitTrans
'通用函数调用
Public Sub Comm(TXT As String) 'TXT文本文件名
'引用Microsoft ActiveX Data 2.X Object Library
Dim DB As New ADODB.Connection
Dim RD As New ADODB.Recordset
Dim szSql As String
Dim F1, F2, F3, F4
Dim F()
Dim i As Integer
Dim nCount As Integer
'打开 .MDB
DB.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\temp2.mdb"
DB.CursorLocation = adUseClient
DB.Open
DB.BeginTrans
'不同的文件对应不同的表有效
'在这里加上选择表名Select Case语句
Select Case TXT
Case "Temp1.TXT"
szSql = "select top 1 * from NewTempTable"
Case "Temp2.TXT"
szSql = "select top 1 * from NewTempTable1"
End Select
Set RD = DB.Execute(szSql)
nCount = RD.Fields.Count
ReDim F(1 To nCount)
Open App.Path & "\" & TXT For Input As #1 ' 打开输入文件。
Do While Not EOF(1) ' 循环至文件尾。
'Input #1, F1, F2, F3, F4 ' 将数据读入两个变量。
For i = 1 To nCount
Input #1, F(i)
Debug.Print F(i)
Next
'Debug.Print F1, F2, F3, F4 ' 在立即窗口中显示数据。
'在这里加上选择表名Select Case语句
Select Case TXT
Case "Temp1.TXT"
szSql = "insert into NewTempTable(F1,F2,F3,F4) values ('" & Trim(F(1)) & "','" & Trim(F(2)) & "','" & Trim(F(3)) & "','" & Trim(F(4)) & "')" '数据可作相应的转化
Case "Temp2.TXT"
End Select
DB.Execute (szSql)
Loop
Close #1 ' 关闭文件。
DB.CommitTrans
Private Sub Command1_Click()
Dim DB As New ADODB.Connection
Dim RD As New ADODB.Recordset
Dim szSql As String
Dim intpoint As Integer
Dim F1, F2, F3, F4
'打开 .MDB
intpoint = MsgBox("请打开数据库", 36, "打开数据库")
If intpoint = 6 Then
On Error Resume Next
CommonDialog1.initdir = "c:\"
CommonDialog1.Filter = "所有文件(*.*)"
CommonDialog1.ShowOpen
End If
DB.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & CommonDialog1.FileName '会不会是这里出错了???
DB.CursorLocation = adUseClient
DB.Open
DB.BeginTrans
intpoint = MsgBox("请打开所要转换的文本文件", 36, "打开文本文件")
If intpoint = 6 Then
CommonDialog1.initdir = "c:\"
CommonDialog1.Filter = "所有文件(*.*)"
CommonDialog1.ShowOpen
End If
Open CommonDialog1.FileName For Input As #1 ' 打开输入文件。
Do While Not EOF(1) ' 循环至文件尾。
Input #1, F1, F2, F3, F4 ' 将数据读入两个变量。
Debug.Print F1, F2, F3, F4 ' 在立即窗口中显示数据。
szSql = "insert into NewTempTable(F1,F2,F3,F4) values ('" & Trim(F1) & "','" & Trim(F2) & "','" & Trim(F3) & "','" & Trim(F4) & "')" '数据可作相应的转化
DB.Execute (szSql)
Loop
Close #1 ' 关闭文件。
DB.CommitTrans
End Sub
Private Sub Command1_Click()
Dim DB As New ADODB.Connection
Dim RD As New ADODB.Recordset
Dim szSql As String
Dim intpoint As Integer
Dim F1, F2, F3, F4
'打开 .MDB
intpoint = MsgBox("请打开数据库", 36, "打开数据库")
If intpoint = 6 Then
On Error Resume Next
CommonDialog1.initdir = "c:\"
CommonDialog1.Filter = "所有文件(*.*)"
CommonDialog1.ShowOpen
End If
DB.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=CommonDialog1.FileName" ’会不会是这里出错了???
DB.CursorLocation = adUseClient
DB.Open
DB.BeginTrans
intpoint = MsgBox("请打开所要转换的文本文件", 36, "打开文本文件")
If intpoint = 6 Then
CommonDialog1.initdir = "c:\"
CommonDialog1.Filter = "所有文件(*.*)"
CommonDialog1.ShowOpen
End If
Open CommonDialog1.FileName For Input As #1 ' 打开输入文件。
Do While Not EOF(1) ' 循环至文件尾。
Input #1, F1, F2, F3, F4 ' 将数据读入两个变量。
Debug.Print F1, F2, F3, F4 ' 在立即窗口中显示数据。
szSql = "insert into NewTempTable(F1,F2,F3,F4) values ('" & Trim(F1) & "','" & Trim(F2) & "','" & Trim(F3) & "','" & Trim(F4) & "')" '数据可作相应的转化
DB.Execute (szSql)
Loop
Close #1 ' 关闭文件。
DB.CommitTrans
End Sub
或者毛病出在哪里???
Dim mStream As ADODB.Stream
Set mStream = New ADODB.Stream
mStream.Type = adTypeBinary
mStream.Open
mStream.LoadFromFile TextPath
rst.Fields("txt") = mStream.Read
'下面代码将c:\temp1.txt转化为c:\temp2.mdb 注意要添加 DAO 3.51以上(包括3.51)
Dim db As DAO.Database
Dim tbl As DAO.TableDef
On Error Resume Next
Set db = DBEngine.CreateDatabase("c:\temp2.mdb", dbLangGeneral)
If Err.Number = 3204 Then
Set db = Workspaces(0).OpenDatabase("c:\temp2.mdb")
End If
Set tbl = db.CreateTableDef("Temp")
tbl.Connect = "Text;database=c:\"
tbl.SourceTableName = "temp1#txt"
db.TableDefs.Append tbl
db.TableDefs.Delete "NewTempTable"
db.Execute "select temp.* into NewTempTable from temp"
db.TableDefs.Delete tbl.Name
db.Close
Set tbl = Nothing
Set db = Nothing
Private Sub TxtToMdb(sTxtPath As String, sTxtFileName As String, sAccessFullFileName As String,sAccessTable As String)
'功能:将文本文件导入到Access中的表
'调用:Call TxtToMdb("c:\","test.txt","c:\a.mdb","NewTempTable")
'结果:将c:\test.txt导入到c:\a.mdb中的NewTempTable表中
Dim db As DAO.Database
Set db = DBEngine.CreateDatabase(sAccessFullFileName, dbLangGeneral)
If Err.Number = 3204 Then
Set db = Workspaces(0).OpenDatabase(sAccessFullFileName)
End If
db.Execute "SELECT * into " & sAccessTable & " FROM [Text;HDR=NO;DATABASE=" & sTxtPath & "]." & sTxtFileName
db.Close
Set db = Nothing
End Sub