powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Vba+Excel - обработка ячеек аля SQL
13 сообщений из 13, страница 1 из 1
Vba+Excel - обработка ячеек аля SQL
    #34889978
avdj
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ, кто сталкивался с решением такой задачи:
на листе выделен диапазон. Необходимо в другой диапазон
записать строки сгруппированные по 2 столбцам.
Куда смотреть? Есть подозрение, что хорошо применить SQL
выражение к данным....
...
Рейтинг: 0 / 0
Vba+Excel - обработка ячеек аля SQL
    #34890645
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
возможно сводная таблица подойдет
или все же SQL

I Have Nine Lives You Have One Only
THINK!
...
Рейтинг: 0 / 0
Vba+Excel - обработка ячеек аля SQL
    #34890900
avdj
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Куда копать по сводным таблицам?
...
Рейтинг: 0 / 0
Vba+Excel - обработка ячеек аля SQL
    #34891057
Belkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avdjНарод, кто сталкивался с решением такой задачи:
на листе выделен диапазон. Необходимо в другой диапазон
записать строки сгруппированные по 2 столбцам.
Куда смотреть? Есть подозрение, что хорошо применить SQL
выражение к данным....
А через цикл не пробывал прогнать цикл по всему диапазону, записывать значенияв массив, ноаое значение сравнивать с значениями массива, если нет совпадений, то добавлять в конец массива.

А как в Excel работать с помощью SQL я не знаю. И можно ли вобще???

Андрей.
...
Рейтинг: 0 / 0
Vba+Excel - обработка ячеек аля SQL
    #34891177
avdj
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Через массив будет медленно по-мойму...
Да и надо не просто уникальные, нужна группировка по полям 1,2 с суммированием по полям 3,4
Буду посмотреть на сводные таблицы...
...
Рейтинг: 0 / 0
Vba+Excel - обработка ячеек аля SQL
    #34891212
Belkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avdjЧерез массив будет медленно по-мойму...
Да и надо не просто уникальные, нужна группировка по полям 1,2 с суммированием по полям 3,4
Буду посмотреть на сводные таблицы...
Если бы это была таблица БД, то с помощью SQL элементарно. А так можно обойтись циклами и массивами.
Я НЕ ЗНАЮ как работать с таблицей Excel с помощью языка запросов SQL.
Если это и можно, то не факт, что это будет проще.


Андрей.
...
Рейтинг: 0 / 0
Vba+Excel - обработка ячеек аля SQL
    #34891575
avdj
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Belkin
Если бы это была таблица БД, то с помощью SQL элементарно. А так можно обойтись циклами и массивами.
Я НЕ ЗНАЮ как работать с таблицей Excel с помощью языка запросов SQL.
Если это и можно, то не факт, что это будет проще.

Андрей.

Я и не настаиваю, что знаешь. Разберусь расскажу.
...
Рейтинг: 0 / 0
Vba+Excel - обработка ячеек аля SQL
    #34891904
Belkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
avdj
Я и не настаиваю, что знаешь. Разберусь расскажу.
Ловлю на слове !!! Отпишешься здесь.

Андрей.
...
Рейтинг: 0 / 0
Vba+Excel - обработка ячеек аля SQL
    #34892761
Letter_D
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собственно, тут вопрос в том, как получить какой-то лист текущей книги, как, например, DAO.table
Дальше работать просто.
Выложу вариант (он был для работы с другими книгами, не активной), переписанный для текущей.
Но книга все равно должна быть предварительно сохранена под каким-то именем, и работать приходится с ней, как с чужой...
Неудобно.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Sub bb()
Dim ws As DAO.Workspace
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim tb As DAO.TableDef

Set ws = CreateWorkspace("", "admin", "", dbUseJet)
Set db = ws.OpenDatabase(ActiveWorkbook.Name, False, True, "Excel 8.0;HDR=NO;IMEX=1")
Set tb = db.TableDefs( 0 )
Set rs = db.OpenRecordset("SELECT [F1], [F2] FROM [" & tb.Name & "] GROUP BY [F1], [F2]")

ActiveWorkbook.Sheets( 2 ).Range("A1").CopyFromRecordset rs

Set rs = Nothing
Set tb = Nothing
Set db = Nothing
Set ws = Nothing
End Sub
А вот вопрос в первой строчке моего письма остался нерешенным.
Как?
Возможно, это элементарно.
...
Рейтинг: 0 / 0
Vba+Excel - обработка ячеек аля SQL
    #34893731
Belkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Letter_D
Спасибо хороший примерчик.
Теперь с Excel будет проще работать.
Для начинающих добавлю, чтобы не было вопросов, типо не работает:
Необходимо подключить библиотеку Microsoft DAO 3.6 Object Library


-----------
Андрей.
...
Рейтинг: 0 / 0
Vba+Excel - обработка ячеек аля SQL
    #34896870
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelkinНеобходимо подключить библиотеку Microsoft DAO 3.6 Object Library

Можно и через ADO:

Код: plaintext
1.
2.
3.
4.
    Set cn = New ADODB.Connection
    cn.CursorLocation = adUseClient
    cn.Mode = adModeRead
    cn.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=""" & sXLS & """;Mode=Read;Extended Properties=""Excel 8.0;HDR=No;IMEX=1"""
    r.Open "SELECT F1, F3, F4, F5, F6, F7, F8, F9, F10, F12, F15 FROM [" & ListName & "$a13:s65536]", cn, adOpenStatic, adLockReadOnly
...
Рейтинг: 0 / 0
Vba+Excel - обработка ячеек аля SQL
    #34896932
Belkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndrF BelkinНеобходимо подключить библиотеку Microsoft DAO 3.6 Object Library

Можно и через ADO:

Код: plaintext
1.
2.
3.
4.
    Set cn = New ADODB.Connection
    cn.CursorLocation = adUseClient
    cn.Mode = adModeRead
    cn.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=""" & sXLS & """;Mode=Read;Extended Properties=""Excel 8.0;HDR=No;IMEX=1"""
    r.Open "SELECT F1, F3, F4, F5, F6, F7, F8, F9, F10, F12, F15 FROM [" & ListName & "$a13:s65536]", cn, adOpenStatic, adLockReadOnly

Не понял, и не работает может протестируешь и подскажешь что не так. Бидлиотеку Microsoft ActiveX Data Object 2.1. Library подключил, но ошибка в 4 строке.
Может протестируешь и приведешь полный код с объявлением переменных.
Заранее благодарен.


Андрей.
...
Рейтинг: 0 / 0
Vba+Excel - обработка ячеек аля SQL
    #34900242
avdj
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Belkin avdj
Я и не настаиваю, что знаешь. Разберусь расскажу.
Ловлю на слове !!! Отпишешься здесь.

Андрей.

Посмотрел предложенное решение - все ок - так и сделал не много подпилив.... Но первоначально идея была сложить все в базу и из неё уже селектом данные тянуть. Из екселя намного проще.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Vba+Excel - обработка ячеек аля SQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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