将文本导入Access数据库的问题

LastLoop 2006-09-04 03:02:03
文本文件中记录比较规范,比如:
Begin
dagdsaghdsag

A: sdgdj
B: asdgd
C: dsgdasasdha
ahadshafhafh

A: sdgdas
B: dgkdsj
C: gasdghd
adsgdasg

END

每个文档以BEGIN(Begin后面还有几行,也不用导入,只需要A:、B:、C:开头的这种)开始,END结束。可能某些条纪录B或者C,这时候数据库中这列字段为空,C字段中的内容也有可能有几行,这个该怎样导入呢?这样的文件有几百个,请教怎样使用Access的导入工具批处理?求具体细节,谢谢
...全文
468 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
changechange 2006-09-08
  • 打赏
  • 举报
回复
用 程序直接循环每一行即可。

不写程序也完全可以,用 EXCEL 排序以后再导入
OracleRoob 2006-09-05
  • 打赏
  • 举报
回复

参考Access的几个操作文件语句:


Input 函数

Input # 语句

Line Input # 语句

Open 语句



Line Input # 语句示例
本示例使用 Line Input # 语句从顺序文件中读入一行数据,并将该行数据赋予一个变量。本示例假设 TESTFILE 文件内含数行文本数据。

Dim TextLine
Open "TESTFILE" For Input As #1 ' 打开文件。
Do While Not EOF(1) ' 循环至文件尾。
Line Input #1, TextLine ' 读入一行数据并将其赋予某变量。
Debug.Print TextLine ' 在立即窗口中显示数据。
Loop
Close #1 ' 关闭文件。

----------------------------------------------------------------------------------------------------


Input # 语句


从已打开的顺序文件中读出数据并将数据指定给变量。

语法

Input #filenumber, varlist

Input # 语句的语法具有以下几个部分:

部分 描述
filenumber 必要。任何有效的文件号。
varlist 必要。用逗号分界的变量列表,将文件中读出的值分配给这些变量;这些变量不可能是一个数组或对象变量。但是,可以使用变量描述数组元素或用户定义类型的元素。



说明

通常用 Write # 将 Input # 语句读出的数据写入文件。该语句只能用于以 Input 或 Binary 方式打开的文件。

在读出数据时不经修改就可直接将标准的字符串或数值数据指定给变量。下表说明如何处理其它输入数据:

数据 指定给变量的值
分隔逗号或空白行 Empty
#NULL# Null
#TRUE# or #FALSE# True 或 False
#yyyy-mm-dd hh:mm:ss# 用表达式表示的日期与/或时间
#ERROR errornumber# errornumber(此变量是一个 Variant,用来标记错误)



输入数据中的双引号符号 (" ") 将被忽略。

注意 不能写入包含了内嵌引号的字符串,例如,用Input # 语句写入 "1,2""X" :Input # 会把这个字符串当作两个完全分开的字符串。

文件中数据项目的顺序必须与 varlist 中变量的顺序相同,而且与相同数据类型的变量匹配。如果变量为数值类型而数据不是数值类型,则指定变量的值为零。

在输入数据项目时,如果已到达文件结尾,则会终止输入,并产生一个错误。

注意 为了能够用 Input # 语句将文件的数据正确读入到变量中,在将数据写入文件时,要使用 Write # 语句而不使用 Print # 语句。使用 Write # 语句可以确保将各个单独的数据域正确分隔开。


----------------------------------------------------------------------------------------------------
Input 函数


返回 String,它包含以 Input 或 Binary 方式打开的文件中的字符。

语法

Input(number, [#]filenumber)

Input 函数的语法具有以下几个部分:

部分 描述
number 必要。任何有效的数值表达式,指定要返回的字符个数。
filenumber 必要。任何有效的文件号。



说明

通常用 Print # 或 Put 将 Input 函数读出的数据写入文件。Input 函数只用于以 Input 或 Binary 方式打开的文件。

与 Input # 语句不同,Input 函数返回它所读出的所有字符,包括逗号、回车符、空白列、换行符、引号和前导空格等。

对于 Binary 访问类型打开的文件,如果试图用 Input 函数读出整个文件,则会在 EOF 返回 True 时产生错误。在用 Input 读出二进制文件时,要用 LOF 和 Loc 函数代替 EOF 函数,而在使用 EOF 函数时要配合以 Get 函数。

注意 对于文本文件中包含的字节数据要使用 InputB 函数。对于 InputB 来说,number 指定的是要返回的字节个数,而不是要返回的字符个数。
wwwwb 2006-09-04
  • 打赏
  • 举报
回复
思路:
Open "d:\zz\123.TXT" For Input As #1 ' 打开输出文件。
Open "d:\zz\456.TXT" For Output As #2
Do While Not EOF(1)
Line Input #1, fg
If Len(fg) <> 0 Then
if mid(fg,1,2)="A:" then
Print #2, fg '具体处理,再考虑有A,而无B、C的情况
End If
end if
Loop
Close #1
Close #2
LastLoop 2006-09-04
  • 打赏
  • 举报
回复
每个文档以BEGIN(Begin后面还有几行,也不用导入,只需要A:、B:、C:开头的这种)开始,END结束。可能某些条纪录没有B或者C,这时候数据库中这列字段为空,C字段中的内容也有可能有几行,这个该怎样导入呢?这样的文件有几百个,请教怎样使用Access的导入工具批处理?求具体细节,谢谢

7,712

社区成员

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

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