请问是不是可以将文本文件导入到access数据库当中?如果可以,是否可以提供源程序?
解决方案 »
- 保留小数点后三位有效数字
- 求VB访问ACCESS程序的设计建议
- 字符串"****1OK"中的*的长度和大小不固定,但是字符串末尾一定有OK,怎么把1读出来
- 求把整型变量转化成字符串的代码?在线等!
- 如何提取datagrid中当前行的一个指定列的数据,求代码,急!!!!!
- 如何由两个表生成一个表?用sql语言?
- 哪位大侠能用vb求出汉字的拼音码来,请告诉我,在下不胜感激。
- VB 程序连接 双机热互备的 oracle数据库 一直死机 (程序未响应),急呀,有没有大虾遇到过这情况呀~小弟在线等!
- VBA+EXCEL
- 我的VB6每次关闭时都会死,怎么回事?
- 有人在研究,网络游戏,文字终端吗?
- 有关WORD的的文本替换方法?
Set mStream = New ADODB.Stream
mStream.Type = adTypeBinary
mStream.Open
mStream.LoadFromFile TextPath
rst.Fields("txt") = mStream.Read
'功能:将文本文件导入到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
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
Dim DB As New ADODB.Connection
Dim RD As New ADODB.Recordset
Dim szSql As String
Dim F1, F2, F3, F4
'打开 .MDB
DB.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\temp2.mdb"
DB.CursorLocation = adUseClient
DB.Open
DB.BeginTrans
Open "C:\temp1.txt" 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
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 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
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.CommitTransEnd Sub
'引用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.CommitTransEnd Sub
'引用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.CommitTransEnd Sub