powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как без заголовков выполнить SQL-запрос к рабочему листу Excel
8 сообщений из 8, страница 1 из 1
Как без заголовков выполнить SQL-запрос к рабочему листу Excel
    #39709922
Sema9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем,
Задача: выполнить SQL-запрос к рабочему листу Excel.
В мануалах сказано, что запрос можно выполнять с заголовками (по умолчанию HDR=Yes), или без заголовков (в "Extended Properties" добавить ;HDR=Yes) - при этом заголовки назначаются автоматически по номерам полей: F1, F2, F3, и т.д.
Офис у меня 2010, версия Эксцеля 14.0.7212.5000 64-разрядная.
С заголовками работает на ура. Без заголовков выдает ошибку
Run-time error '-2147217904 (80040e10)'
Отсутствует значение для одного или нескольких требуемых параметров
Исходник и скриншоты прилагаются

Подскажите, пожалуйста, что не так делаю ?
...
Рейтинг: 0 / 0
Как без заголовков выполнить SQL-запрос к рабочему листу Excel
    #39709942
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поставьте брейкпойнт на Set oRs = oConn.Execute . Нажмите кнопку. Посмотрите oConn.ConnectionString... HDR=No там тупо отсутствует.
...
Рейтинг: 0 / 0
Как без заголовков выполнить SQL-запрос к рабочему листу Excel
    #39710068
Sema9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,
Пардон, в мануалах написано, что HDR=No надо писать в "Extended Properties" - у меня так и есть:
Код: vbnet
1.
2.
3.
4.
5.
6.
With oConn
    .Provider = "Microsoft.ACE.OLEDB.12.0"
    .Properties("Extended Properties").Value = "Excel 12.0;HDR=No"   ' Без заголовков
    .Open ActiveWorkbook.FullName

End With


А куда в SQL-запрос прилепить ;HDR=No - ума не приложу
...
Рейтинг: 0 / 0
Как без заголовков выполнить SQL-запрос к рабочему листу Excel
    #39710105
Sema9
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извиняюсь, в первом посте 3 предложение должно звучать так:

В мануалах сказано, что запрос можно выполнять с заголовками (по умолчанию HDR=Yes), или без заголовков (в "Extended Properties" добавить ;HDR=No) - при этом заголовки назначаются автоматически по номерам полей: F1, F2, F3, и т.д.
...
Рейтинг: 0 / 0
Как без заголовков выполнить SQL-запрос к рабочему листу Excel
    #39710786
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sema9в мануалах написано, чтоВ мануалах дохрена чего написано, наплюй.
Просто вместо заполнения полей (Provider, Properties) по отдельности сразу формируй полный ConnectionString, вместе с HDR=No. Оттуда не пропадёт.
...
Рейтинг: 0 / 0
Как без заголовков выполнить SQL-запрос к рабочему листу Excel
    #39710884
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sema9
А куда в SQL-запрос прилепить ;HDR=No - ума не приложу
HDR=No - это настройки соединения и они только там и задаются (в блоке Extended Properties)
В запросе Вы просто пишете
Код: sql
1.
Select F1, F2 From ...




PS: не надо лепить непонятно что, непонятно куда
...
Рейтинг: 0 / 0
Как без заголовков выполнить SQL-запрос к рабочему листу Excel
    #39710898
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HandKotHDR=No - это настройки соединения и они только там и задаются (в блоке Extended Properties)См. 21689220 .
...
Рейтинг: 0 / 0
Как без заголовков выполнить SQL-запрос к рабочему листу Excel
    #39711411
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaSema9в мануалах написано, чтоВ мануалах дохрена чего написано, наплюй.
Просто вместо заполнения полей (Provider, Properties) по отдельности сразу формируй полный ConnectionString, вместе с HDR=No. Оттуда не пропадёт.
пропадет

Sema9 А куда в SQL-запрос прилепить ;HDR=No - ума не приложу
а нафига Вы уже в открытом соединении к книге, указываете имя книги, уберите лишнее

Код: sql
1.
2.
3.
Set oRs = oConn.Execute("SELECT F1, SUM(F2), SUM(F3), F4 FROM `" + _
                                ActiveWorkbook.FullName + _
                                "`.[SQLex$A3:D10] GROUP BY F1, F4")



должно быть
Код: sql
1.
Set oRs = oConn.Execute("SELECT F1, SUM(F2), SUM(F3), F4 FROM [SQLex$A3:D10] GROUP BY F1, F4")
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как без заголовков выполнить SQL-запрос к рабочему листу Excel
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]