在我的txt文件中,有3列用空格分隔。在每列中,数据长度是相同的。就像下面一样 -
OQ3900097 9383722662 2
OQ3900098 9383722663 2
OQ3900099 9383722664 2
在VB6中,我们可以直接将这样的文本文件导入Access 2000数据库(不用空格替换成逗号)吗?
答案 0 :(得分:2)
我之前直接在Access中使用获取外部数据并设置链接表来完成此操作。
否则,使用ODBC文本驱动程序或直接解析它并通过数据连接导入是相当容易的
答案 1 :(得分:2)
这非常简单,并且没有理由进入桌面文本ODBC驱动程序,因为Jet 4.0具有可以执行此任务的Text Installable ISAM。
示例:将文本附加到现有表,将文本导入为新表。
Private Sub cmdAppend_Click()
Dim lngRows As Long
conDB.Execute _
"INSERT INTO ExistingTable SELECT * " _
& "FROM [Import.txt] IN '" & App.Path & "' 'TEXT;'", _
lngRows, _
adCmdText Or adExecuteNoRecords
MsgBox CStr(lngRows) & " rows appended to ExistingTable."
End Sub
Private Sub cmdImport_Click()
Dim lngRows As Long
conDB.Execute _
"SELECT * INTO NewTable " _
& "FROM [Import.txt] IN '" & App.Path & "' 'TEXT;'", _
lngRows, _
adCmdText Or adExecuteNoRecords
MsgBox CStr(lngRows) & " rows imported as NewTable."
End Sub
使这项工作的关键是将一个名为Schema.ini
的文件放在与文本文件相同的文件夹中(在这种情况下,我只是使用App.Path文件夹示范):
[Import.txt]
Format = Delimited( )
TextDelimiter = none
ColNameHeader = False
MaxScanRows = 0
Col1="Code" Text Width 9
Col2="Sequence" Text Width 10
Col3="Type" Integer Width 1
上面我编写了字段名称和数据类型,在实际情况下,它们将匹配数据库中的字段名称和数据类型。 请务必注意括号中的单个空格,这将是使用的分隔符。
如果要导入的同一文件夹中有多个文本文件,只需根据需要将其他INI部分添加到Schema.ini。
如果需要,您的程序甚至可以动态地将这样的Schema.ini写入文件夹,插入必要的文本文件名,字段列表及其名称,类型,大小等。