Как импортировать TXT-файл в базу данных доступа с помощью VB6 - PullRequest
1 голос
/ 28 февраля 2011

в моем текстовом файле есть 3 столбца, разделенных пробелом. В каждом столбце длина данных одинакова. Это как ниже -

OQ3900097 9383722662 2
OQ3900098 9383722663 2
OQ3900099 9383722664 2

В VB6 мы можем импортировать такой текстовый файл непосредственно в базу данных Access 2000 (без замены пробела в запятую)?

Ответы [ 2 ]

2 голосов
/ 04 марта 2011

Это довольно просто, и нет смысла переходить в текстовый драйвер ODBC для настольных ПК, потому что Jet 4.0 имеет установленный текст 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 в схему.ini по мере необходимости.

Ваша программа может даже при необходимости динамически записывать такой файл Schema.ini в папку, вставляя необходимое имя текстового файла, список полей и их имен, тип, размеры и т. д.

2 голосов
/ 28 февраля 2011

Я делал это раньше непосредственно в Access, используя Get External data и настраивая связанную таблицу.

В противном случае довольно просто использовать текстовый драйвер ODBC или непосредственно анализировать его и импортировать через соединение для передачи данных

...