powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Access wb.PivotCaches.Create(2)
4 сообщений из 4, страница 1 из 1
Access wb.PivotCaches.Create(2)
    #39627644
Фотография Focha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет, ребят.
Не могу понять, что не так, делаю выгрузку из access в EXCEL recordset, прописываю код в Access.
в excel все работает, а тут на моменте выгрузки recordset ошибка

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
Public Function go_merchandising()
Dim cn As Object:               Set cn = CreateObject("ADODB.Connection")
Dim rst As Object:              Set rst = CreateObject("ADODB.recordset")
Dim ex As Object:               Set ex = CreateObject("Excel.Application")

Dim wb, sh, pivot_cache As Object

cn.Provider = "Microsoft.ACE.OLEDB.12.0"
cn.ConnectionString = "Data Source=...DB.accdb"
cn.Open

rst.Open "SELECT top 100 * from table", cn

ex.Visible = True
Set wb = ex.workbooks.Add
Set sh = wb.ActiveSheet

Set pivot_cache = wb.PivotCaches.Create(2) 'пробовал и .add
Set pivot_cache.Recordset = rst 'вот тут ошибка!!!!!!!!!!! 1004 ошибка
    pivot_cache.CreatePivotTable sh.cells(1, 1), "pivot_temp"



End Function
...
Рейтинг: 0 / 0
Access wb.PivotCaches.Create(2)
    #39627649
Фотография Focha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
понял, что делал не так.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Public Function go_merchandising()
Dim cn As Object:               Set cn = CreateObject("ADODB.Connection")
Dim rst As Object:              Set rst = CreateObject("ADODB.recordset")
Dim ex As Object:               Set ex = CreateObject("Excel.Application")

rst.CursorLocation = adUseClient 'создать на клиенте

Dim wb, sh, pivot_cache As Object

cn.Provider = "Microsoft.ACE.OLEDB.12.0"
cn.ConnectionString = "Data Source=...DB.accdb"
cn.Open

rst.Open "SELECT top 100 * from table", cn

ex.Visible = True
Set wb = ex.workbooks.Add
Set sh = wb.ActiveSheet

Set pivot_cache = wb.PivotCaches.Create(2) 'пробовал и .add
Set pivot_cache.Recordset = rst 'rst.CursorLocation = adUseClient 'создать на клиенте - решило проблему
    pivot_cache.CreatePivotTable sh.cells(1, 1), "pivot_temp"



End Function
...
Рейтинг: 0 / 0
Access wb.PivotCaches.Create(2)
    #39627650
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Focha,

в принципе, все-таки надо .Add(2), а не Create.
А затем очень желательно проверить - что вообще в этом rst. Может в нем данных нет или он вообще Nothing. Проверяли? Пробовали его хотя бы просто на лист выгрузить?
Код: vbnet
1.
Range("A1").CopyFromRecordset rst
...
Рейтинг: 0 / 0
Access wb.PivotCaches.Create(2)
    #39627819
Фотография Focha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
The_PristFocha,

в принципе, все-таки надо .Add(2), а не Create.
А затем очень желательно проверить - что вообще в этом rst. Может в нем данных нет или он вообще Nothing. Проверяли? Пробовали его хотя бы просто на лист выгрузить?
Код: vbnet
1.
Range("A1").CopyFromRecordset rst



Конечно, проверка у меня есть и на лист выгружал.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Access wb.PivotCaches.Create(2)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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