如何用vb把txt文件的数据导入access数据库?

如何用vb把txt文件的数据导入access数据库?,第1张

编写一个Schema.ini放在Txt文件的目录下

[customer.txt] //Txt文件名

ColNameHeader=True

format=Delimited(",") //指定分隔符

MaxScanRows=0

CharacterSet=ANSI

Col1="字段1" Char Width 20 //指定字段的数据类型

Col2="字段2" Char Width 20

然后在程序中执行SQL:

Select * Into customer From [TextDatabase=c:\temp].customer.txt

直接用SQL语句将文本内容插入到表,注意:表的字段需要与文本中分割的字段相同

--插入到临时表

BULK INSERT #temp FROM 'c:\test.txt'

WITH

(

FIELDTERMINATOR = ',',--逗号分割

ROWTERMINATOR = '\n' --换行符

)

select * from #temp

drop table #temp

恩,你这错误可能和声明对象相关,VBA和VB还是不同的,要加adodb:

dim cn as adodb.connection

set cn=new adodb.connection

你再试下,VBA不熟悉,许多对象搞不明白,或许有更简单的方法

我把一个名称为test.txt文件也放入了C:\Documents and Settings\Desktop\1文件夹下,在这个文件夹下建立了一个schema.ini文件,ini文件的内容:

[test.txt]

Format=TabDelimited

因为我这个文件是用tab分隔的,所以用TabDelimited

同时,我的数据库文件db.mdb中,存在一个tt表,字段对应test.txt文件中的字段名称

以下代码测试通过:

Dim cn As Connection

Dim sql As String

Dim n As Long

Set cn = New Connection

cn.Open "Provider=Microsoft.Jet.OLEDB.4.0" &_

"Data Source=" &App.Path &"\db.mdb"

sql = "insert into tt select * from [test.txt] in ""C:\Documents and Settings\Desktop\1"" ""textHDR=YesFMT=Delimited"""

'如果表tt不存在:

'sql = "select * into tt from [test.txt] in ""C:\Documents and Settings\Desktop\1"" ""textHDR=YesFMT=Delimited"""

cn.Execute sql, n

MsgBox "成功插入:" &n &"行数据"

Set cn = Nothing


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6642894.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存