![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 06.08.2009
Сообщений: 26
|
![]()
Подскажите пожалуйста как правильно составить макрос, который позволит работать с определённым участком Excel-таблицы как с небольшой базой данных. И какой для этого нужно подключить дополнительный модуль? Допустим мне нужно обозначить Range("A1:E5") как источник данных, и с помощью SQL-запроса выбрать все записи, со значением "1" в поле "B1" (Типа "Select * from ??? where 'b1'=1"). Пытался читать про всякие объекты Recordset, но не совсем понимаю как это правильно использовать..
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
![]()
Примера нет(ленивый я),поэтому разбирайтесь сами.Во вложении 2 вариата
для 2003 и 2007.у них дрова разные. Библиотеку ADO подключите
Анализ,обработка данных Недорого
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 06.08.2009
Сообщений: 26
|
![]()
Разбираюсь, но немного запутался. Изначально осмелюсь предположить что для данного примера можно исключить эти константы:
Public Const sCn1 = "Provider=Microsoft.Jet.OLEDB.4.0;D ata Source=" Public Const sCn11 = "Provider=Microsoft.ACE.OLEDB.12.0; ;Data Source=" Public Const sCn2 = ";Extended Properties=""Excel 8.0;HDR=No"";" Public Const sCn12 = ";Extended Properties=""Excel 12.0;HDR=No"";" А также я немогу понять следущее: FROM [" & S_mame & "$A6:G65500]... S_mame что в этом примере означает? Вернее что мне надо в это место подставить, если я скажем беру таблицу из открытого текущего листа? Последний раз редактировалось Sanek_81; 14.04.2011 в 17:39. |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
![]()
Давайте файл,с какими то данными.и что хотите взять,так проще будет.
В примере я Код:
Анализ,обработка данных Недорого
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 06.08.2009
Сообщений: 26
|
![]()
Вот файлик, в нём таблица 5х5 мне нужно отобрать sql-запросом строки в которых стоблец "B" равен 1.
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 06.08.2009
Сообщений: 26
|
![]()
Я что-то наподобие пытаюсь делать а мне на строке "rs.Open sSql, cn, adOpenStatic, adLockReadOnly " выдаёт ошибку 'Run-time error 3709' невозможно использование подключения для выполнения операции. Оно закрыто или не допускается в данном контексте.
|
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,170
|
![]()
Я тут нарисовал такой Sanek_81.dqy
Код:
Работает, но вытягивает только данные-цифры. Т.е. выбрал такие две строки, если единичку к семёркам поставить: Код:
P.S. А почему именно SQL? Я как-то массивами обхожусь - и быстрее получается, и код как хочешь можно повернуть...
webmoney: E265281470651 Z422237915069 R418926282008
Последний раз редактировалось Hugo121; 14.04.2011 в 18:23. |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 06.08.2009
Сообщений: 26
|
![]()
Что-то я ещё больше запутался... как это "работает но цифры вытягивает".. мне надо чтобы работал как с текстовыми данными
![]() SQL мне удобен, много разных выборок в дальнейшем предстоит делать, поэтому хочу научиться именно этим методом работать. |
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
![]()
Послушайтесь совета Hugo121.У вас данные должны быть сохранены как текст,иначе возьмет только числа
Код:
Анализ,обработка данных Недорого
|
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 06.08.2009
Сообщений: 26
|
![]()
Спасибо большое, разобрался. В общем вся заминка у меня была в этом месте FROM [Лист3$A1:E5], тоесть не понимал что сюда надо прописать. А что означает буква T в запросе?
Последний раз редактировалось Sanek_81; 15.04.2011 в 16:32. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сортировка Recordset | Woodlin | Microsoft Office Access | 2 | 31.03.2011 07:51 |
Запросы SQL в Excel | clbman | Microsoft Office Excel | 2 | 15.06.2010 17:43 |
Update Recordset | Kveldulv | Microsoft Office Excel | 0 | 13.05.2010 16:42 |
Иморт данных из SQL в Excel при помощи QueryTable VBS, Иморт данных из SQL в Excel при помощи QueryTable | Valdocco | Microsoft Office Excel | 1 | 16.07.2009 21:50 |