MyTetra Share
Делитесь знаниями!
ADODB.Recordset Точное считывание с текстового файла - VBA
Время создания: 16.03.2019 23:43
Текстовые метки: ADO, Recordset
Раздел: !Закладки - VBA - Text
Запись: xintrea/mytetra_db_adgaver_new/master/base/1514555790hz32lytfvr/text.html на raw.githubusercontent.com

здравствуйте, на j:\ лежат файлы
С_помощью_ADO_и_SQL_опрашивать_текстовые_файлы.txt
ID;Name;Price;
1 ;Chairs ;$40.00 ;
2;Table;$75.00;
3;Fork;$1.50;
4;Lamp;$15.00;
5;Rug;$35.00;
Schema.ini
[С_помощью_ADO_и_SQL_опрашивать_текстовые_файлы.txt]
Format=Delimited(;) - здесь в скобках точка с запятой, на форуме отображает по другому, сорри
ColNameHeader=True
n=ColumnNametype [Text]
CharacterSet=ANSI
в ворде пользуюсь кодом


Visual BasicВыделить код

Option Explicit

 

Public Sub test()

 

'Connection - соединение с базой данных

'Command - команда DML

'Recordset - набор записей

'Stream - поток двоичных или текстовых данных

'Record -Запись

'нужно подключить библиотеку Microsoft ActiveX Data Object 2.x Library

 

    Dim cn As ADODB.Connection

    Set cn = New ADODB.Connection

    '"х:\" -  директория, где хранится файл

   'в каталоге, например "х:\" - директории, где хранится файл должен быть файл с именем Schema.ini, его задача дать нужную информацию программе

   'каждая запись Schema.ini указывает на один из пяти характеристик таблицы:

   'первая запись в Schema.ini - имя исходного текстового файла в квадратных скобках - [С_помощью_ADO_и_SQL_опрашивать_текстовые_файлы.txt]

   'вторая запись в Schema.ini - формат файла, поля в файле разделены Format=Delimited(;)

   'третья запись в Schema.ini - имена полей, ширина и типы, ColNameHeader = True - включить имена полей в первой строке таблицы

   'четвёртая запись в Schema.ini - набор символов

   'пятаая запись в С_помощью_ADO_и_SQL_опрашивать_текстовые_файлы#txt Schema.ini - преобразования данных специального типа

   'апостроф ' в Schema.ini как и в VBA, VB является началом коммента

 

    'HDR = YES указывает, что первая строка содержит columnnames, а не данные, HDR = NO; свидетельствует об обратном

   cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=j:\;Extended Properties=""text;HDR=YES;FMT=Delimited"""

    'открыть соединение с базой данных

   cn.Open

    Dim rs As ADODB.Recordset

    Set rs = New ADODB.Recordset

    'имя файла к которому идёт обращение "С_помощью_ADO_и_SQL_опрашивать_текстовые_файлы"

   rs.Open "select * from [С_помощью_ADO_и_SQL_опрашивать_текстовые_файлы#txt]", cn

    'пример обращений к столбцам выборки, можно менять сам запрос и тем самым получать столбец, строку

   Debug.Print "[" & rs.Fields("ID").Value & "]"

    Debug.Print "[" & rs.Fields("Name").Value & "]"

    Debug.Print "[" & rs.Fields("Price").Value & "]"

 

    rs.Close

    Set rs = Nothing

    cn.Close

    Set cn = Nothing

 

End Sub

в интермедии получаю
[1]
[Chairs]
[40.00]
как добиться более верного ответа
[1 ]
[Chairs ]
[40.00 ]
??, спасибо

Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования