Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Использование SQL. Работа с MSQuery. - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, китин  
Мир MS Excel » Вопросы и решения » Excel и другие приложения » Использование SQL. Работа с MSQuery. (Высокоскоростная обработка данных)
Использование SQL. Работа с MSQuery.
AndreTM Дата: Среда, 05.06.2013, 23:58 | Сообщение № 1
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
Зашёл у нас разговор о том, как строить запросы, аналогичные функционалу, имеющемуся в Excel (например, сводные).
Или такие, результат которых в Excel очевидным и быстрым образом не получишь.


Skype: andre.tm.007
Donate: Qiwi: 9517375010


Сообщение отредактировал AndreTM - Четверг, 06.06.2013, 01:07
 
Ответить
СообщениеЗашёл у нас разговор о том, как строить запросы, аналогичные функционалу, имеющемуся в Excel (например, сводные).
Или такие, результат которых в Excel очевидным и быстрым образом не получишь.

Автор - AndreTM
Дата добавления - 05.06.2013 в 23:58
AndreTM Дата: Четверг, 06.06.2013, 01:03 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
Автоматизатор выражается в терминах Excel, а я - SQL.

Задача звучит так: есть две (три...сорок) таблиц. Ключевое поле - [Столбец 1]. Нужно просуммировать значения поля [Столбец 2] во всех таблицах по совпадению ключа.

Пишем запрос (в Jet использование [] аналогично заключению в апострофы - это строковая константа; * используем, поскольку известно, что количество столбцов в таблицах - одинаковое):
[vba]
Код
SELECT * FROM `Лист 1$` t1
UNION ALL
SELECT * FROM `Лист 2$` t2
[/vba]
Этим мы получим полное объединение строк двух таблиц, как если бы скопировали их друг за другом.
В Jet проблематично использовать вложенные запросы, поэтому промежуточный результат выгружаем на Лист4.

Пишем второй запрос - уже к объединённым данным. Сгруппируем данные по [Столбец 1], применим к [Столбец 2] групповую операцию "Сумма":
[vba]
Код
SELECT t.Столбец1 AS [Столбец 1], Sum(t.Столбец2) AS [Столбец 2]
FROM `Лист4$` t
GROUP BY t.Столбец1
[/vba]Обратите внимание, что пришлось:
- обозначить источник через алиас "t", для удобства работы с полями
- дать определенное имя агрегатному полю (мы присвоили заново то, что было)
- обращаться к имени поля можно, исключив пробелы и без апострофов - но лучше поля со спецсиволами в имени явно заключать в ограничители
Ну и возвращаем результат запроса на Лист3.

Итоговые данные в той же таблице - это отдельная тема. Но при поддержке провайдером (OLE DB или ODBC) соответствующих фраз в выражении SELECT - это не представляет труда сделать в том же запросе. Или дописать отдельно уже формулами листа

(Обязательно при первом открытии файла нажмите на "Init" - инициализация источников повешена на кнопочку, не стал её прикручивать на WB_Open)
К сообщению приложен файл: Multisheets_.xlsm (34.3 Kb)


Skype: andre.tm.007
Donate: Qiwi: 9517375010


Сообщение отредактировал AndreTM - Четверг, 06.06.2013, 12:16
 
Ответить
СообщениеАвтоматизатор выражается в терминах Excel, а я - SQL.

Задача звучит так: есть две (три...сорок) таблиц. Ключевое поле - [Столбец 1]. Нужно просуммировать значения поля [Столбец 2] во всех таблицах по совпадению ключа.

Пишем запрос (в Jet использование [] аналогично заключению в апострофы - это строковая константа; * используем, поскольку известно, что количество столбцов в таблицах - одинаковое):
[vba]
Код
SELECT * FROM `Лист 1$` t1
UNION ALL
SELECT * FROM `Лист 2$` t2
[/vba]
Этим мы получим полное объединение строк двух таблиц, как если бы скопировали их друг за другом.
В Jet проблематично использовать вложенные запросы, поэтому промежуточный результат выгружаем на Лист4.

Пишем второй запрос - уже к объединённым данным. Сгруппируем данные по [Столбец 1], применим к [Столбец 2] групповую операцию "Сумма":
[vba]
Код
SELECT t.Столбец1 AS [Столбец 1], Sum(t.Столбец2) AS [Столбец 2]
FROM `Лист4$` t
GROUP BY t.Столбец1
[/vba]Обратите внимание, что пришлось:
- обозначить источник через алиас "t", для удобства работы с полями
- дать определенное имя агрегатному полю (мы присвоили заново то, что было)
- обращаться к имени поля можно, исключив пробелы и без апострофов - но лучше поля со спецсиволами в имени явно заключать в ограничители
Ну и возвращаем результат запроса на Лист3.

Итоговые данные в той же таблице - это отдельная тема. Но при поддержке провайдером (OLE DB или ODBC) соответствующих фраз в выражении SELECT - это не представляет труда сделать в том же запросе. Или дописать отдельно уже формулами листа

(Обязательно при первом открытии файла нажмите на "Init" - инициализация источников повешена на кнопочку, не стал её прикручивать на WB_Open)

Автор - AndreTM
Дата добавления - 06.06.2013 в 01:03
PowerBoy Дата: Четверг, 06.06.2013, 06:14 | Сообщение № 3
Группа: Проверенные
Ранг: Участник
Сообщений: 100
Репутация: 31 ±
Замечаний: 0% ±

2003
Просматривая форум последнии несколько недель, обратил внимание, что действительно много задач можно решить используя запросы. Возникла идея написать надстройку для excel для автоматизации этого. Идея такая, задаются несколько областей данных между которыми устанавливаютя связи, затем по "волшебной" кнопке данные переносятся, попутно фильтруясь, сортируясь, группируясь и т.д. Несколько дней назад начал реализацию, как Вы думаете взлетит такая идея?


Excel + SQL = ActiveTables (http://vk.com/ExcelSQL)
 
Ответить
СообщениеПросматривая форум последнии несколько недель, обратил внимание, что действительно много задач можно решить используя запросы. Возникла идея написать надстройку для excel для автоматизации этого. Идея такая, задаются несколько областей данных между которыми устанавливаютя связи, затем по "волшебной" кнопке данные переносятся, попутно фильтруясь, сортируясь, группируясь и т.д. Несколько дней назад начал реализацию, как Вы думаете взлетит такая идея?

Автор - PowerBoy
Дата добавления - 06.06.2013 в 06:14
AndreTM Дата: Четверг, 06.06.2013, 09:40 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
PowerBoy,

Nerv недавно опубликовал свой класс-обёртку для ADODB.
Используя её, вам остается только написать сам текст запроса (естественно, "несколько областей и связи" при этом можно передать в один запрос обычным для синтаксиса JetSQL порядком).


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
Сообщение PowerBoy,

Nerv недавно опубликовал свой класс-обёртку для ADODB.
Используя её, вам остается только написать сам текст запроса (естественно, "несколько областей и связи" при этом можно передать в один запрос обычным для синтаксиса JetSQL порядком).

Автор - AndreTM
Дата добавления - 06.06.2013 в 09:40
PowerBoy Дата: Четверг, 06.06.2013, 10:17 | Сообщение № 5
Группа: Проверенные
Ранг: Участник
Сообщений: 100
Репутация: 31 ±
Замечаний: 0% ±

2003
Я делаю на DAO, невижу между ADO и DAO большой разницы, все равно запрос будет передан JetSQL. Я хочу написать свой построитель запросов, так как многие пользователи не знают SQL.


Excel + SQL = ActiveTables (http://vk.com/ExcelSQL)
 
Ответить
СообщениеЯ делаю на DAO, невижу между ADO и DAO большой разницы, все равно запрос будет передан JetSQL. Я хочу написать свой построитель запросов, так как многие пользователи не знают SQL.

Автор - PowerBoy
Дата добавления - 06.06.2013 в 10:17
Gustav Дата: Четверг, 06.06.2013, 10:34 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2748
Репутация: 1137 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
Поделюсь сокровенным, так сказать, ИМХО.

Я обычно использую SQL к данным в Excel, чтобы поразить воображение собеседника - такого, который не подозревал о такой возможности smile И это в основном на уровне развлекухи или совсем несложного, но эффектного, боевого запроса к данным пользователя, когда сделал один раз, помог пользователю и забыл.

Я использую Range.CopyFromRecordset, когда мне надо вставить в Excel данные, полученные SQL-запросом из других, не Excel, источников. И это на уровне повседневной тиражируемой профессиональной работы для пользователей.

Более-менее серьезную работу с данными Excel в Excel посредством SQL-запросов считаю экономически нецелесообразной. Для этих целей существует Access, в который можно либо импортировать нужные таблицы Excel, сделав их "родными" таблицами Access, либо связать оригинальные таблицы Excel c файлом Access - способы работы при этом не отличаются от способов работы с родными таблицами.

На этом фоне пытаться писать свой движок для работы с данными Excel посредством SQL - будь ты хоть гений VBA или даже больше - выглядит донкихотством в борьбе с ветряными мельницами. И в конце концов напишется, грубо говоря, "еще один Access". НО! Пользователям по-любому имело бы смысл познакомиться именно с оригинальным (и официальным) Access - это увеличит их стоимость на рынке.

Переубедить меня могло бы появление SQL-запросов к НЕСОХРАНЕННЫМ книгам Excel - вот это была б сила! Но этого пока нет...


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал Gustav - Пятница, 07.06.2013, 09:55
 
Ответить
СообщениеПоделюсь сокровенным, так сказать, ИМХО.

Я обычно использую SQL к данным в Excel, чтобы поразить воображение собеседника - такого, который не подозревал о такой возможности smile И это в основном на уровне развлекухи или совсем несложного, но эффектного, боевого запроса к данным пользователя, когда сделал один раз, помог пользователю и забыл.

Я использую Range.CopyFromRecordset, когда мне надо вставить в Excel данные, полученные SQL-запросом из других, не Excel, источников. И это на уровне повседневной тиражируемой профессиональной работы для пользователей.

Более-менее серьезную работу с данными Excel в Excel посредством SQL-запросов считаю экономически нецелесообразной. Для этих целей существует Access, в который можно либо импортировать нужные таблицы Excel, сделав их "родными" таблицами Access, либо связать оригинальные таблицы Excel c файлом Access - способы работы при этом не отличаются от способов работы с родными таблицами.

На этом фоне пытаться писать свой движок для работы с данными Excel посредством SQL - будь ты хоть гений VBA или даже больше - выглядит донкихотством в борьбе с ветряными мельницами. И в конце концов напишется, грубо говоря, "еще один Access". НО! Пользователям по-любому имело бы смысл познакомиться именно с оригинальным (и официальным) Access - это увеличит их стоимость на рынке.

Переубедить меня могло бы появление SQL-запросов к НЕСОХРАНЕННЫМ книгам Excel - вот это была б сила! Но этого пока нет...

Автор - Gustav
Дата добавления - 06.06.2013 в 10:34
AndreTM Дата: Четверг, 06.06.2013, 11:14 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
Цитата (Gustav)
Я обычно использую SQL к данным в Excel, чтобы поразить воображение собеседника
Ага biggrin
Цитата (Gustav)
На этом фоне пытаться писать свой движок для работы с данными Excel посредством SQL - ...
Тоже полностью согласен. Писать движок - смысла нет. Сделать несколько небольших удобных обёрток для запросов - смысл есть. И не обучать "массы пользователей" работе с запросами, а просто использовать их в собственном коде, по принципу "вот я вам сделал так, пользуйтесь, разбирать код по косточкам не обязательно".
Что же касается направления пользователей по адресу Access... Подавляющее большинство [юзеров] на нём разработку делать не будет, поэтому использование Jet в Excel, вообще-то, целесообразно. Да и юзеры обычно пользуют в повседневной практике только "малый набор" (Word, Excel (+ Outlook, OneNote)), акцесса может и просто не быть.

Цитата (PowerBoy)
Я хочу написать свой построитель запросов, так как многие пользователи не знают SQL.
А чем пользователей перестал устраивать MSQuery? smile


Skype: andre.tm.007
Donate: Qiwi: 9517375010


Сообщение отредактировал AndreTM - Четверг, 06.06.2013, 11:16
 
Ответить
Сообщение
Цитата (Gustav)
Я обычно использую SQL к данным в Excel, чтобы поразить воображение собеседника
Ага biggrin
Цитата (Gustav)
На этом фоне пытаться писать свой движок для работы с данными Excel посредством SQL - ...
Тоже полностью согласен. Писать движок - смысла нет. Сделать несколько небольших удобных обёрток для запросов - смысл есть. И не обучать "массы пользователей" работе с запросами, а просто использовать их в собственном коде, по принципу "вот я вам сделал так, пользуйтесь, разбирать код по косточкам не обязательно".
Что же касается направления пользователей по адресу Access... Подавляющее большинство [юзеров] на нём разработку делать не будет, поэтому использование Jet в Excel, вообще-то, целесообразно. Да и юзеры обычно пользуют в повседневной практике только "малый набор" (Word, Excel (+ Outlook, OneNote)), акцесса может и просто не быть.

Цитата (PowerBoy)
Я хочу написать свой построитель запросов, так как многие пользователи не знают SQL.
А чем пользователей перестал устраивать MSQuery? smile

Автор - AndreTM
Дата добавления - 06.06.2013 в 11:14
PowerBoy Дата: Четверг, 06.06.2013, 11:36 | Сообщение № 8
Группа: Проверенные
Ранг: Участник
Сообщений: 100
Репутация: 31 ±
Замечаний: 0% ±

2003
Цитата
А чем пользователей перестал устраивать MSQuery?


Он собирает данные с внешних источников и в качестве таблиц показывает листы, я же хочу данные брать с текущей книги и в качестве таблиц хочу задавать произвольные области. Также не нашел в нем поддержки новых форматов книг excel.


Excel + SQL = ActiveTables (http://vk.com/ExcelSQL)
 
Ответить
Сообщение
Цитата
А чем пользователей перестал устраивать MSQuery?


Он собирает данные с внешних источников и в качестве таблиц показывает листы, я же хочу данные брать с текущей книги и в качестве таблиц хочу задавать произвольные области. Также не нашел в нем поддержки новых форматов книг excel.

Автор - PowerBoy
Дата добавления - 06.06.2013 в 11:36
AndreTM Дата: Четверг, 06.06.2013, 12:09 | Сообщение № 9
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
PowerBoy, странный вы человек... "Если вы не нашли - значит этого нет".

В моем первом посте лежит файл, сделанный в Excel10 и тестируемый с помощью MSQuery. Конечно, в текущем виде запрос графически не отображается... ну так откройте построитель, исправьте команду запроса на, например, "SELECT * FROM `Лист3$A10:B12`" и посмотрите, что получится... smile


Skype: andre.tm.007
Donate: Qiwi: 9517375010


Сообщение отредактировал AndreTM - Четверг, 06.06.2013, 12:14
 
Ответить
Сообщение PowerBoy, странный вы человек... "Если вы не нашли - значит этого нет".

В моем первом посте лежит файл, сделанный в Excel10 и тестируемый с помощью MSQuery. Конечно, в текущем виде запрос графически не отображается... ну так откройте построитель, исправьте команду запроса на, например, "SELECT * FROM `Лист3$A10:B12`" и посмотрите, что получится... smile

Автор - AndreTM
Дата добавления - 06.06.2013 в 12:09
PowerBoy Дата: Четверг, 06.06.2013, 13:22 | Сообщение № 10
Группа: Проверенные
Ранг: Участник
Сообщений: 100
Репутация: 31 ±
Замечаний: 0% ±

2003
Выборку то он сделает, но графически MSQuery показывать отказывается.


Excel + SQL = ActiveTables (http://vk.com/ExcelSQL)
 
Ответить
СообщениеВыборку то он сделает, но графически MSQuery показывать отказывается.

Автор - PowerBoy
Дата добавления - 06.06.2013 в 13:22
AndreTM Дата: Четверг, 06.06.2013, 16:10 | Сообщение № 11
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
Цитата (PowerBoy)
Выборку то он сделает, но графически MSQuery показывать отказывается.

Как бы так про вас сказать... Неверно утверждаете:
К сообщению приложен файл: 2935629.gif (25.5 Kb)


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
Сообщение
Цитата (PowerBoy)
Выборку то он сделает, но графически MSQuery показывать отказывается.

Как бы так про вас сказать... Неверно утверждаете:

Автор - AndreTM
Дата добавления - 06.06.2013 в 16:10
Формуляр Дата: Четверг, 06.06.2013, 16:46 | Сообщение № 12
Группа: Друзья
Ранг: Ветеран
Сообщений: 832
Репутация: 255 ±
Замечаний: 0% ±

Excel 2003, 2013
Товарищи, тема весьма любопытная (не знаю уж насколько практически применимая).
Я к ней тоже некоторое время назад приложился.
Основные проблемы из-за которых не пошло, это различия между разными версиями SQL-движков, а также их общая скудость (может, конечно, мало покопал), плюс привязка к абсолютному пути к источнику (с чем и попытался бороться макросами).
Но и преимуществ хватает: половина проблем заявляемых на форуме решается простейшим запросом с одним JOIN'ом.
Применимость запросов через ADO сильно ограничена, из-за того, что макросы надо включать, т.е. применимы практически только для внутреннего пользования (да и библиотеки могут не найтись).
Так что, если б разобраться совместными усилиями со встроенными средствами очень былоб пользительно.

ЗЫ. И почему вся эта красота в "Общении"? Давайте её хотя б в "Другие приложения" переселим.


Excel 2003 EN, 2013 EN
 
Ответить
СообщениеТоварищи, тема весьма любопытная (не знаю уж насколько практически применимая).
Я к ней тоже некоторое время назад приложился.
Основные проблемы из-за которых не пошло, это различия между разными версиями SQL-движков, а также их общая скудость (может, конечно, мало покопал), плюс привязка к абсолютному пути к источнику (с чем и попытался бороться макросами).
Но и преимуществ хватает: половина проблем заявляемых на форуме решается простейшим запросом с одним JOIN'ом.
Применимость запросов через ADO сильно ограничена, из-за того, что макросы надо включать, т.е. применимы практически только для внутреннего пользования (да и библиотеки могут не найтись).
Так что, если б разобраться совместными усилиями со встроенными средствами очень былоб пользительно.

ЗЫ. И почему вся эта красота в "Общении"? Давайте её хотя б в "Другие приложения" переселим.

Автор - Формуляр
Дата добавления - 06.06.2013 в 16:46
AndreTM Дата: Четверг, 06.06.2013, 17:54 | Сообщение № 13
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
Я был немного неправ насчёт вложенных запросов. Уже стал подзабывать ограничения Jet, и поспешил просто - лень было перечислять все столбцы и т.п. Выкладываю новый пример - получение сводных данных из нескольких источников - листов книг Excel одним запросом.

Заодно:
Цитата (Формуляр)
Основные проблемы из-за которых не пошло, это различия между разными версиями SQL-движков, а также их общая скудость (может, конечно, мало покопал), плюс привязка к абсолютному пути к источнику (с чем и попытался бороться макросами). Но и преимуществ хватает: половина проблем заявляемых на форуме решается простейшим запросом с одним JOIN'ом. Применимость запросов через ADO сильно ограничена, из-за того, что макросы надо включать, т.е. применимы практически только для внутреннего пользования (да и библиотеки могут не найтись).

Различий в синтаксисе самих команд запроса нет, поскольку выполняются они одним движком - Jet. Может быть, вы имели в виду различие в запросах при обращении к различным по форматам источникам данных, особенно к серверным СУБД? - тогда да.
Привязка к абсолютному пути в источнике? - так это фича, а не бага, просто нужно это знать и учитывать. Кроме того, существуют такая вещь, как DSN - и при их использовании проблема источника выходит за рамки Excel-таблицы, что и позволяет создавать запросы без привязки к физическому пути smile
Что касается "применимости запросов через ADO" и "библиотеки могут не найтись" - вообще не понял... ADO запросы не выполняет, он только организует адаптер (коннект к источнику данных), запрос же исполняется соответствующим движком. "Библиотеки" же - это проблема не Excel, а ОС или преинсталляции соответствующего драйвера...
К сообщению приложен файл: Multisheets_2.xlsm (41.7 Kb)


Skype: andre.tm.007
Donate: Qiwi: 9517375010


Сообщение отредактировал AndreTM - Пятница, 07.06.2013, 06:22
 
Ответить
СообщениеЯ был немного неправ насчёт вложенных запросов. Уже стал подзабывать ограничения Jet, и поспешил просто - лень было перечислять все столбцы и т.п. Выкладываю новый пример - получение сводных данных из нескольких источников - листов книг Excel одним запросом.

Заодно:
Цитата (Формуляр)
Основные проблемы из-за которых не пошло, это различия между разными версиями SQL-движков, а также их общая скудость (может, конечно, мало покопал), плюс привязка к абсолютному пути к источнику (с чем и попытался бороться макросами). Но и преимуществ хватает: половина проблем заявляемых на форуме решается простейшим запросом с одним JOIN'ом. Применимость запросов через ADO сильно ограничена, из-за того, что макросы надо включать, т.е. применимы практически только для внутреннего пользования (да и библиотеки могут не найтись).

Различий в синтаксисе самих команд запроса нет, поскольку выполняются они одним движком - Jet. Может быть, вы имели в виду различие в запросах при обращении к различным по форматам источникам данных, особенно к серверным СУБД? - тогда да.
Привязка к абсолютному пути в источнике? - так это фича, а не бага, просто нужно это знать и учитывать. Кроме того, существуют такая вещь, как DSN - и при их использовании проблема источника выходит за рамки Excel-таблицы, что и позволяет создавать запросы без привязки к физическому пути smile
Что касается "применимости запросов через ADO" и "библиотеки могут не найтись" - вообще не понял... ADO запросы не выполняет, он только организует адаптер (коннект к источнику данных), запрос же исполняется соответствующим движком. "Библиотеки" же - это проблема не Excel, а ОС или преинсталляции соответствующего драйвера...

Автор - AndreTM
Дата добавления - 06.06.2013 в 17:54
PowerBoy Дата: Пятница, 07.06.2013, 07:17 | Сообщение № 14
Группа: Проверенные
Ранг: Участник
Сообщений: 100
Репутация: 31 ±
Замечаний: 0% ±

2003
Цитата
Как бы так про вас сказать... Неверно утверждаете:


Сильно извиняюсь, видимо проблема все таки у меня с тем что Excel 2007, и при открытии файла пишет что, что там повреждено.

Так, что это еще один плюс моей надстройке, которая бедет работать на любом офисе.

Кстати попутный вопрос как передать параметр в MSQuery, скажем значение из ячейки листа?


Excel + SQL = ActiveTables (http://vk.com/ExcelSQL)
 
Ответить
Сообщение
Цитата
Как бы так про вас сказать... Неверно утверждаете:


Сильно извиняюсь, видимо проблема все таки у меня с тем что Excel 2007, и при открытии файла пишет что, что там повреждено.

Так, что это еще один плюс моей надстройке, которая бедет работать на любом офисе.

Кстати попутный вопрос как передать параметр в MSQuery, скажем значение из ячейки листа?

Автор - PowerBoy
Дата добавления - 07.06.2013 в 07:17
AndreTM Дата: Пятница, 07.06.2013, 07:56 | Сообщение № 15
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
PowerBoy, не буду даже уточнять, что и где повреждено... cool

"Ваша надстройка" имеет право на существование, как и любая другая. В этой теме ещё ни одной "надстройки" не было показано, с чем вы сравниваете свою - непонятно.

Если вы не знали, то MSQuery - это построитель запросов. Зачем ему параметры "из ячейки листа" - неясно, ведь конечным продуктом работы MSQuery все равно будет либо объект коллекции Application.Connections, либо plain-text, описывающий параметры подключения и строку запроса. Нет, конечно, можно сделать запрос параметров - достаточно указать фразу [?имяпараметра] в любом месте инcтрукции SQL. Можно изменить текст запроса (который - обычная строка), дополнив его подстановкой нужного вам значения. Можно вообще поступить "по-взрослому" - т.е. организовать подзапрос к нужной ячейке листа прямо в запросе...

Может, вы всё же прочитаете что-либо на тему "JetSQL"?


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
Сообщение PowerBoy, не буду даже уточнять, что и где повреждено... cool

"Ваша надстройка" имеет право на существование, как и любая другая. В этой теме ещё ни одной "надстройки" не было показано, с чем вы сравниваете свою - непонятно.

Если вы не знали, то MSQuery - это построитель запросов. Зачем ему параметры "из ячейки листа" - неясно, ведь конечным продуктом работы MSQuery все равно будет либо объект коллекции Application.Connections, либо plain-text, описывающий параметры подключения и строку запроса. Нет, конечно, можно сделать запрос параметров - достаточно указать фразу [?имяпараметра] в любом месте инcтрукции SQL. Можно изменить текст запроса (который - обычная строка), дополнив его подстановкой нужного вам значения. Можно вообще поступить "по-взрослому" - т.е. организовать подзапрос к нужной ячейке листа прямо в запросе...

Может, вы всё же прочитаете что-либо на тему "JetSQL"?

Автор - AndreTM
Дата добавления - 07.06.2013 в 07:56
Gustav Дата: Пятница, 07.06.2013, 09:50 | Сообщение № 16
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2748
Репутация: 1137 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
[offtop]тема переехала, а количество сообщений у участвующих пользователей будет пересчитано?

P.S. увы... получилось, что это сообщение с оффтопом сосчиталось счётчиком, а вчерашнее про "сокровенное" (№6 ) - нет...


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал Gustav - Пятница, 07.06.2013, 09:54
 
Ответить
Сообщение[offtop]тема переехала, а количество сообщений у участвующих пользователей будет пересчитано?

P.S. увы... получилось, что это сообщение с оффтопом сосчиталось счётчиком, а вчерашнее про "сокровенное" (№6 ) - нет...

Автор - Gustav
Дата добавления - 07.06.2013 в 09:50
Serge_007 Дата: Пятница, 07.06.2013, 10:09 | Сообщение № 17
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
[offtop]
Цитата (Gustav)
количество сообщений у участвующих пользователей будет пересчитано?
Пересчитал

Цитата (Gustav)
получилось, что это сообщение с оффтопом сосчиталось счётчиком, а вчерашнее про "сокровенное" (№6 ) - нет
Даже если было бы наоборот - общее количество не изменилось бы smile
[/offtop]


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение[offtop]
Цитата (Gustav)
количество сообщений у участвующих пользователей будет пересчитано?
Пересчитал

Цитата (Gustav)
получилось, что это сообщение с оффтопом сосчиталось счётчиком, а вчерашнее про "сокровенное" (№6 ) - нет
Даже если было бы наоборот - общее количество не изменилось бы smile
[/offtop]

Автор - Serge_007
Дата добавления - 07.06.2013 в 10:09
Gustav Дата: Пятница, 07.06.2013, 10:14 | Сообщение № 18
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2748
Репутация: 1137 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
[offtop]
Цитата (Serge_007)
Пересчитал

спасибо! ого, подросло... это теперь мое актуальное кол-во сообщений, сосчитанное по тем разделам, где ведётся учёт? или абсолютно все мои сообщения форума?


МОИ: Ник, Tip box: 41001663842605
 
Ответить
Сообщение[offtop]
Цитата (Serge_007)
Пересчитал

спасибо! ого, подросло... это теперь мое актуальное кол-во сообщений, сосчитанное по тем разделам, где ведётся учёт? или абсолютно все мои сообщения форума?

Автор - Gustav
Дата добавления - 07.06.2013 в 10:14
Serge_007 Дата: Пятница, 07.06.2013, 10:30 | Сообщение № 19
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
[offtop]Все[/offtop]


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение[offtop]Все[/offtop]

Автор - Serge_007
Дата добавления - 07.06.2013 в 10:30
nerv Дата: Пятница, 07.06.2013, 19:01 | Сообщение № 20
Группа: Редакторы
Ранг: Обитатель
Сообщений: 431
Репутация: 193 ±
Замечаний: 0% ±

Цитата (Формуляр)
Применимость запросов через ADO сильно ограничена

что вы говорите smile


Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


YM 41001156540584 / WM WMR R21924176233

https://github.com/nervgh/vba
 
Ответить
Сообщение
Цитата (Формуляр)
Применимость запросов через ADO сильно ограничена

что вы говорите smile

Автор - nerv
Дата добавления - 07.06.2013 в 19:01
Мир MS Excel » Вопросы и решения » Excel и другие приложения » Использование SQL. Работа с MSQuery. (Высокоскоростная обработка данных)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!