求一段txt文本导入access的代码,谢谢(最好是vb代码)

kangguiwen 2010-01-12 02:31:27
我的access数据库是2007 ,最好是vb语言,谢谢了
...全文
701 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2010-01-20
  • 打赏
  • 举报
回复

当工作时中需要用到大量的数据时,将数据从文件中写入或读取是较便利的方式。Open 语句让您直接的创建和访问文件。Open 语句提供三种文件访问类型:

顺序访问(Input、Output 和 Append 方式)被用来写入文本文件,比如错误登录和报告。


随机访问(Random 方式)被用来读取与写入数据到文件并且没有关闭文件。随机访问文件在记录中保留数据,如此可很快的找出信息所在。


二进制访问(Binary 方式)被用来读取或写入数据到文件中任何的字节位置,例如存储或显示一个位图图象。
注意 Open 语句不可以用来打开一个应用程序专属的文件类型。例如,不可使用 Open 去打开一个 Word 文档, a ,Microsoft Excel 的电子数据表,或是 Microsoft Access 数据库。若如此做的话会丢失文件的完整性,并造成文件的毁损。

当从文件读取数据和写入数据到文件时,下表列出了所使用的典型语句。

访问类型 写入数据 读取数据
顺序 Print #, Write # Input #
随机 Put Get
二进制 Put Get

ACMAIN_CHM 2010-01-20
  • 打赏
  • 举报
回复
如果这样,那你可以用 VBA的 Open pathname For mode [Access access] [lock] As [#]filenumber
Line Input # 语句
来处理这个TXT文件,然后通过ADO把读出来记录写入到表中。
wwwwb 2010-01-20
  • 打赏
  • 举报
回复
[Quote=引用 27 楼 kangguiwen 的回复:]
谢谢各位怎么热情的回答我的问题。
我调试过各位的代码,都可以实现我的要求。但是小弟的意思是有没有什么代码可以实现,不要通过schema.ini来实现txt问题导入,直接将想导入的txt文件导入的access,txt文件是有规则的用逗号隔开。


感谢高手的指导。

[/Quote]
没有,因为你要设置TXT中每列的类型
kangguiwen 2010-01-20
  • 打赏
  • 举报
回复
谢谢各位怎么热情的回答我的问题。
我调试过各位的代码,都可以实现我的要求。但是小弟的意思是有没有什么代码可以实现,不要通过schema.ini来实现txt问题导入,直接将想导入的txt文件导入的access,txt文件是有规则的用逗号隔开。


感谢高手的指导。
wwwwb 2010-01-18
  • 打赏
  • 举报
回复
简单示例:
Open "r:\temp\schema.ini" For Input As #1
Open "r:\temp\ZW1.TXT" For Output As #2
Do While Not EOF(1)
Line Input #1, fg
If InStr(fg, "BscKPIn20090605.txt") > 0 Then
fg = Replace(fg, "BscKPIn20090605.txt", "BscKPIn20090606.txt")
End If
Print #2, fg
Loop
Close #1
Close #2
Kill "r:\temp\schema.ini"
Name "r:\temp\ZW1.TXT" As "r:\temp\schema.ini"
ACMAIN_CHM 2010-01-18
  • 打赏
  • 举报
回复
利用DIR()函数得到指定目录中的文件名,然后再生成
SELECT * into newtt FROM [text;database=r:\temp\].[BscKPIn20090605.txt] 这个字符串。
birdzhyli 2010-01-18
  • 打赏
  • 举报
回复
问题问得有点乱
wwwwb 2010-01-18
  • 打赏
  • 举报
回复
1、
将上述内容插入到表中,修改[BscKPIn20090605.txt]中的内容,再生成INI文件;
2、用OPEN 打开TXT文件,修改内容,保存为新的schema.ini INI文件。
kangguiwen 2010-01-16
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 wwwwb 的回复:]
在TXT目录生成schema.ini文件
内容:
[BscKPIn20090605.txt]
ColNameHeader=True
CharacterSet=936
Format=CSVDelimited
Col1=date Char Width 255
Col2=bsc_name Char Width 255
Col3=bsc_id Integer
Col4=sd_acc_prb Float
Col5=sd_suc_lu Float
Col6=sd_suc_sdtch Float
Col7=tch_acc_prb Float
Col8=tch_acc_prb_q Float
Col9=tch_acc_prb_q_dr Float
Col10=tch_suc Float
Col11=tch_suc_re_est Float
Col12=sd_ava Float
Col13=sd_att Integer
Col14=sd_seiz Integer
Col15=sd_ho_seiz Integer
Col16=sd_blk Float
Col17=fcs Integer
Col18=loc Float
Col19=mtc Float
Col20=moc Float
Col21=re_est Float
Col22=emerg Float
Col23=detach Float
Col24=sup_serv Float
Col25=sd_1a Float

sql:
SELECT * into newtt
FROM [text;database=r:\temp\].[BscKPIn20090605.txt]


[/Quote]wwwb 首先感谢一下,按照你的方法实现了。
还有就是,加入BscKPIn20090605.txt 文件时名字是变化的,因为每天都在导入数据,有没有什么好的办法呀,假如昨天是20090605,今天是20090606,文件名变化了,
有没有什么办法直接导入,不管文件名字是变化的。
谢谢了wwwb
wwwwb 2010-01-15
  • 打赏
  • 举报
回复
在TXT目录生成schema.ini文件
内容:
[BscKPIn20090605.txt]
ColNameHeader=True
CharacterSet=936
Format=CSVDelimited
Col1=date Char Width 255
Col2=bsc_name Char Width 255
Col3=bsc_id Integer
Col4=sd_acc_prb Float
Col5=sd_suc_lu Float
Col6=sd_suc_sdtch Float
Col7=tch_acc_prb Float
Col8=tch_acc_prb_q Float
Col9=tch_acc_prb_q_dr Float
Col10=tch_suc Float
Col11=tch_suc_re_est Float
Col12=sd_ava Float
Col13=sd_att Integer
Col14=sd_seiz Integer
Col15=sd_ho_seiz Integer
Col16=sd_blk Float
Col17=fcs Integer
Col18=loc Float
Col19=mtc Float
Col20=moc Float
Col21=re_est Float
Col22=emerg Float
Col23=detach Float
Col24=sup_serv Float
Col25=sd_1a Float

sql:
SELECT * into newtt
FROM [text;database=r:\temp\].[BscKPIn20090605.txt]

kangguiwen 2010-01-14
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 kangguiwen 的回复:]
引用 16 楼 kangguiwen 的回复:
希望在各位高手能给一段准确的代码,我按照上述各位朋友的说法做了,都是不行的。

希望给一段代码出来了,谢谢了。

  谢谢您了,您的邮箱是多少呢,我给你发到你的邮箱里面。麻烦你帮我看看

[/Quote]已经上传了名字是bscKPIn20090605.txt
wwwwb 2010-01-13
  • 打赏
  • 举报
回复
ACCESS是否可以打开此MDB
kangguiwen 2010-01-13
  • 打赏
  • 举报
回复
我更改过数据库,还是会出现这种情况的
wwwwb 2010-01-13
  • 打赏
  • 举报
回复
检查MDB是否加密、被破坏
kangguiwen 2010-01-13
  • 打赏
  • 举报
回复
Dim cn As ADODB.Connection, rs As ADODB.Recordset

Set cn = New ADODB.Connection
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\test;Extended Properties=""TEXT;HDR=Yes;FMT=Delimited"";Persist Security Info=False"
cn.Execute "Select f1,f2,f3 into newtable in ""c:\db1.mdb"" from c:\test\test0.txt"


运行该段代码 会出现 c:\db1.mdb 会出现 不可识别数据库格式 。这种情况怎么处理呢。
ACMAIN_CHM 2010-01-13
  • 打赏
  • 举报
回复
可以上传到 http://www.access911.net/csdn

或者贴出一段你的TXT文本。
kangguiwen 2010-01-13
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 kangguiwen 的回复:]
希望在各位高手能给一段准确的代码,我按照上述各位朋友的说法做了,都是不行的。

希望给一段代码出来了,谢谢了。

[/Quote] 谢谢您了,您的邮箱是多少呢,我给你发到你的邮箱里面。麻烦你帮我看看
wwwwb 2010-01-13
  • 打赏
  • 举报
回复
如果可以的话,
上传你的TXT到www.access911.net/csdn
,用WINRAR压缩
kangguiwen 2010-01-13
  • 打赏
  • 举报
回复
希望在各位高手能给一段准确的代码,我按照上述各位朋友的说法做了,都是不行的。

希望给一段代码出来了,谢谢了。
kangguiwen 2010-01-13
  • 打赏
  • 举报
回复
希望在各位高手能给一段准确的代码,我按照上述各位朋友的说法做了,都是不行的。

希望给一段代码出来了,谢谢了。
加载更多回复(10)

7,729

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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