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

Вход

Регистрация

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

 

= Мир MS Excel/Получить значения из базы Access в Excel - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, китин  
Получить значения из базы Access в Excel
ant6729 Дата: Четверг, 28.12.2017, 20:48 | Сообщение № 1
Группа: Проверенные
Ранг: Ветеран
Сообщений: 533
Репутация: 2 ±
Замечаний: 40% ±

Excel 2010
Всем привет! Очередное нашествие меня на форум.
Снова сам себе режиссер и проект, называется...

Решил прокачаться с базами данных
Так как понял, что от них многое зависит... в том числе стройность моих бесчисленные vlookup s ов и вот теперь более высокого уровня, как я думаю sql-запросов
Продвинуться решил в эту сторону, вообщем...
Опять, аки котенок слепой не могу понять, как из Access вытянуть данные в Excel:
Что-то такое нашел... посмотрел... собрать не могу...

Включил птичку напротив библиотеки ActiveX(понимаете))
Вставил это чудо...

[vba]
Код
Sub GetData()
Dim cnn As New ADODB.Connection
Dim rs As ADODB.Recordset
Dim sqlstr As String
cnn.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=G:\01.accdb;"
cnn.Open
sqlstr = "SELECT "
Set rs = New ADODB.Recordset
rs.Open sqlstr, cnn
GetData = rs.Fields(0).Value
rs.Close
Set rs = Nothing
cnn.Close
Set cnn = Nothing
End Sub
[/vba]

Вообщем, хочу, чтобы оно в Лист1 Excel файла 02.xlsx начиная с ячейки A1 вставило все содержимое таблицы Access 01.accdb
Пользоваться запросами не хочу, хочу научиться как парсить на VBA..

Информации, как это делать, как-то маловато в большинстве случаев не могу подобрать примеры в открытом доступе.
А макрорекодером пробовал извлечь истину... Такого он мне написал... что, как писать запрос с Select точно не понять...

В очередной раз прошу помочь...

Не смог приложить access файл.

В нем просто
1 Москва 340
2 Пермь 445
3 Вологда 444

НО весит 620...

Или с Access мне не сюда уже...
К сообщению приложен файл: 02.xlsx (6.2 Kb)


Сообщение отредактировал ant6729 - Четверг, 28.12.2017, 21:03
 
Ответить
СообщениеВсем привет! Очередное нашествие меня на форум.
Снова сам себе режиссер и проект, называется...

Решил прокачаться с базами данных
Так как понял, что от них многое зависит... в том числе стройность моих бесчисленные vlookup s ов и вот теперь более высокого уровня, как я думаю sql-запросов
Продвинуться решил в эту сторону, вообщем...
Опять, аки котенок слепой не могу понять, как из Access вытянуть данные в Excel:
Что-то такое нашел... посмотрел... собрать не могу...

Включил птичку напротив библиотеки ActiveX(понимаете))
Вставил это чудо...

[vba]
Код
Sub GetData()
Dim cnn As New ADODB.Connection
Dim rs As ADODB.Recordset
Dim sqlstr As String
cnn.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=G:\01.accdb;"
cnn.Open
sqlstr = "SELECT "
Set rs = New ADODB.Recordset
rs.Open sqlstr, cnn
GetData = rs.Fields(0).Value
rs.Close
Set rs = Nothing
cnn.Close
Set cnn = Nothing
End Sub
[/vba]

Вообщем, хочу, чтобы оно в Лист1 Excel файла 02.xlsx начиная с ячейки A1 вставило все содержимое таблицы Access 01.accdb
Пользоваться запросами не хочу, хочу научиться как парсить на VBA..

Информации, как это делать, как-то маловато в большинстве случаев не могу подобрать примеры в открытом доступе.
А макрорекодером пробовал извлечь истину... Такого он мне написал... что, как писать запрос с Select точно не понять...

В очередной раз прошу помочь...

Не смог приложить access файл.

В нем просто
1 Москва 340
2 Пермь 445
3 Вологда 444

НО весит 620...

Или с Access мне не сюда уже...

Автор - ant6729
Дата добавления - 28.12.2017 в 20:48
ant6729 Дата: Четверг, 28.12.2017, 22:23 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 533
Репутация: 2 ±
Замечаний: 40% ±

Excel 2010
Все... вымучал

[vba]
Код
Sub ReadMDB()

'ïåðåìåííàÿ õðàíÿùàÿ ðåçóëüòàò çàïðîñà
Dim tbl As Recordset

'ñòðîêà çàïðîñà SQL
Dim SQLr As String

'ïåðåìåííàÿ õðàíÿùàÿ ññûëêó íà ïîäêëþ÷åííóþ ÁÄ
Dim dbs As Database

'ïîäêëþ÷àåìñÿ ê mdb
Set dbs = DAO.OpenDatabase("G:\price.mdb")
    
'ñîñòàâëÿåì ñòðîêó SQL çàïðîñà
SQLr = "SELECT * FROM tbl_ïðàéñ"

'îòïðàâëÿåì çàïðîñ îòêðûòîé ÁÄ
'ðåçóëüòàò â âèäå òàáëèöû ñîõðàíåí â tbl
Set tbl = dbs.OpenRecordset(SQLr)
   
'âñòàâëÿåì ðåçóëüòàò â ëèñò íà÷èíàÿ ñ ÿ÷åéêè A1
Cells(1, 1).CopyFromRecordset tbl

'Çàêðûâàåì âðåìåííóþ òàáëèöó
  tbl.Close
  
'Î÷èùàåì ïàìÿòü. Åñëè ýòîãî íå ñäåëàòü, òî òàáëèöà
'òàê è îñòàíåòñÿ âèñåòü â îïåðàòèâêå.
  Set tbl = Nothing
  
'Çàêðûâàåì áàçó
dbs.Close
  Set dbs = Nothing
End Sub
[/vba]

Единственное, что не могу найти замену метода открытия mdb на accdb и какую библиотеку в этом случае подключать...

Как будто бы космос летаю, открывая нюансы...
ADO не та библиотека... а нужна MO Access 15 engine
Теперь заработало


Сообщение отредактировал ant6729 - Четверг, 28.12.2017, 22:44
 
Ответить
СообщениеВсе... вымучал

[vba]
Код
Sub ReadMDB()

'ïåðåìåííàÿ õðàíÿùàÿ ðåçóëüòàò çàïðîñà
Dim tbl As Recordset

'ñòðîêà çàïðîñà SQL
Dim SQLr As String

'ïåðåìåííàÿ õðàíÿùàÿ ññûëêó íà ïîäêëþ÷åííóþ ÁÄ
Dim dbs As Database

'ïîäêëþ÷àåìñÿ ê mdb
Set dbs = DAO.OpenDatabase("G:\price.mdb")
    
'ñîñòàâëÿåì ñòðîêó SQL çàïðîñà
SQLr = "SELECT * FROM tbl_ïðàéñ"

'îòïðàâëÿåì çàïðîñ îòêðûòîé ÁÄ
'ðåçóëüòàò â âèäå òàáëèöû ñîõðàíåí â tbl
Set tbl = dbs.OpenRecordset(SQLr)
   
'âñòàâëÿåì ðåçóëüòàò â ëèñò íà÷èíàÿ ñ ÿ÷åéêè A1
Cells(1, 1).CopyFromRecordset tbl

'Çàêðûâàåì âðåìåííóþ òàáëèöó
  tbl.Close
  
'Î÷èùàåì ïàìÿòü. Åñëè ýòîãî íå ñäåëàòü, òî òàáëèöà
'òàê è îñòàíåòñÿ âèñåòü â îïåðàòèâêå.
  Set tbl = Nothing
  
'Çàêðûâàåì áàçó
dbs.Close
  Set dbs = Nothing
End Sub
[/vba]

Единственное, что не могу найти замену метода открытия mdb на accdb и какую библиотеку в этом случае подключать...

Как будто бы космос летаю, открывая нюансы...
ADO не та библиотека... а нужна MO Access 15 engine
Теперь заработало

Автор - ant6729
Дата добавления - 28.12.2017 в 22:23
  • Страница 1 из 1
  • 1
Поиск:

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