VB如何将文本文件(TXT)写入ACCESS的表中?

baichunlei 2009-11-09 08:26:13
这是一个时常能用到的方法,解高手解答,最好附上源码,谢谢!!
...全文
553 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
vbman2003 2009-11-10
  • 打赏
  • 举报
回复
示例:

文本文件:price.txt
其中3个字段:ItemID,cost,price
字段之间制表符分隔

建立一个名称为schema.ini的文件,作用是提供文本文件中记录的构架信息。输入内容:
[price.txt]
Format=TabDelimited

代码:

Private Sub Command1_Click()
Dim cn As Connection
Dim sql As String
Dim n As Long

'连接ACCESS
Set cn = New Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & App.Path & "\db.mdb;"
  '表存在,追加数据
sql = "INSERT INTO tb_test(ItemID,cost,price) SELECT ItemID,cost,price FROM [price.txt] IN """ & App.Path & " "" ""text;HDR=Yes;FMT=Delimited"""
'表不存在
  'sql = "SELECT ItemID,cost,price INTO tb_test FROM [price.txt] IN """ & App.Path & " "" ""text;HDR=Yes;FMT=Delimited"""

cn.Execute sql, n

MsgBox "成功插入:" & n & "行数据"
Set cn = Nothing
End Sub

baichunlei 2009-11-10
  • 打赏
  • 举报
回复
太感谢各位了?
能解释一下这句的意思吗?
sql = "INSERT INTO tb_test(ItemID,cost,price) SELECT ItemID,cost,price FROM [price.txt] IN """ & App.Path & " "" ""text;HDR=Yes;FMT=Delimited"""
  

特别 2009-11-10
  • 打赏
  • 举报
回复
再加一个,在ACCESS中操作SQL SERVER数据库,网上搜来的
原作者 wangtiecheng(不知不为过,不学就是错!)
参考这里
http://topic.csdn.net/u/20071112/12/cd53e973-e6f8-41e0-831e-64da4672f463.html

IN [ODBC][ODBC;Driver=SQL Server;Server=服务器;Uid=用户名;Pwd=密码;database=数据库名]


特别 2009-11-10
  • 打赏
  • 举报
回复
ACCESS数据库可以直接操作外部数据源
使用方法是表名后面加 IN 进行指定,
下面列些常用的使用方法
1、EXCEL
IN 'EXCEL文件路径'[Excel 8.0;]

2、文本文件
IN '文件所在目录'[Text;]

3、ACCESS文件
IN 'ACCESS文件路径'

4、Dbase、Fox即DBF文件
IN '文件所在路径'[dBASE IV;]
特别 2009-11-10
  • 打赏
  • 举报
回复

'测试数据,这里是规则的表形式数据,如果不是规则的数据不要使用该方法
'数据如下

'使用ADO进行操作,第一行为字段名
' name,sex,birthday,weight
' 张三,TRUE,1987-10-23,68.5
' 李四,FALSE,1975-1-1,51.25
' 王小花,FALSE,1990-2-18,46.5

'定义连接
Dim conn As New ADODB.Connection

'打开ACCESS数据库
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\My Documents\Test_CodeSmith.mdb;"

'导入数据
' Tab1 为新生成的表名,自行变换
' test#csv 为要导入的文本文件名,
' 原文件名为 test.txt,这里使和时要将 . 换成 #
' 自行变换
' D:\ 为文件文件路径,自行变换
' [Text;] 为数据源类型,不可更改
conn.Execute "SELECT * INTO Tab1 FROM test#txt IN 'D:\'[Text;]"

'关闭连接
conn.Close
贝隆 2009-11-09
  • 打赏
  • 举报
回复
Text 转换为 Access MDB
Text 文件类型在很多软件中都为一般应用程序与数据库之间架起一座桥梁。你可以使用 Text ISAM
驱动程序和 SQL 来把 Text 文件转换成 Access MDB 数据库文件,首先,为文本文件创建一个 SCHEMA.INI
文件。然后,你可以使用下面的代码来实现转换:
Dim db As Database, tbl as TableDef
Set db = DBEngine.CreateDatabase(App.Path & "/mymdb.mdb", dbLangGeneral, dbVersion_0)
Set tbl = db.CreateTableDef("Temp")
tbl.Connect = "Text;database=c:\vbpj\data"
tbl.SourceTableName = "Customer#txt"
db.TableDefs.Append tbl
db.Execute "Select Temp.* into NewTable from Temp"
db.TableDefs.Delete tbl.Name
db.Close
Set tbl = Nothing
Set db = Nothing
golden8510 2009-11-09
  • 打赏
  • 举报
回复
需要指定Access字段;
孤独剑_LPZ 2009-11-09
  • 打赏
  • 举报
回复
'假设有一个字段,多列字段的情况照者修改即可
MDB_ZD = InputBox("请输入数据库中欲存号码的字段名")
'假设文本文件有一列数据,循环取得存入数组 JGHaoMa(i)
'执行下面的过程,要引用ado
Sub Xr_ACCESS() '写入数据库
Dim i As Long
Dim cn As ADODB.Connection
Set cn = New ADODB.Connection
cn.Open "dbq=" & MDB_Path & ";driver={microsoft access driver (*.mdb)}"
For i = 1 To UBound(JGHaoMa)
cn.Execute "insert into * (" & MDB_ZD & ") values('" & JGHaoMa(i) & "')"
Next
MsgBox "导入完毕"
End Sub

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧