открыл файл Excel через ADO - не понравилось

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
retiv
Новичок
Новичок
 
Сообщения: 31
Зарегистрирован: 15.09.2002 (Вс) 12:20
Откуда: Russia

открыл файл Excel через ADO - не понравилось

Сообщение retiv » 19.10.2004 (Вт) 18:33

Есть таблица в Excel со следущей структурой: первая строка – заголовки столбцов, остальные строки – числа.
Из VB я открываю этот файл используя ADO:

sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" + Me.sDataFileName + ";" & _
"Extended Properties=""Excel 8.0;HDR=No;"";"
extConn.ConnectionString = sConnectionString
extConn.ConnectionTimeout = 60
extConn.Open

Затем делаю выборку из первой страницы:

Set rs = extConn.Execute("select * from [" + sADOTable + "]")

В rs все поля (Field) числового типа, правильно заполнены числами, но первая строка заголовков в связи с этим теряется (первая строка rs пуста). Мне это не нравится!

Если я в эту же таблицу Excel добавляю строковые значения в ячейки последней строкой таблицы, то поля rs уже текстовые и содержат текстовые значения, но при этом числовые пропадают (заполнены только строка заголовков и последняя строка). Числовые значения почему-то не конвертируются автоматически. Что уже откровенная херня!

Можно ли сделать, чтобы rs содержал все значения таблицы Excel (и текстовые и числовые)?

ta_gena
Бывалый
Бывалый
 
Сообщения: 264
Зарегистрирован: 30.10.2002 (Ср) 12:18
Откуда: Russia

Сообщение ta_gena » 20.10.2004 (Ср) 11:39

А что будет, если поставить HDR = Yes

ta_gena
Бывалый
Бывалый
 
Сообщения: 264
Зарегистрирован: 30.10.2002 (Ср) 12:18
Откуда: Russia

Сообщение ta_gena » 20.10.2004 (Ср) 11:41

Нашел на www.connectionstrings.com

Standard:
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"""
"HDR=Yes;" indicates that the first row contains columnnames, not data
"IMEX=1;" tells the driver to always read "intermixed" data columns as text
TIP! SQL syntax: "SELECT * FROM [sheet1$]" - i.e. worksheet name followed by a "$" and wrapped in "[" "]" brackets.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5

    TopList