powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / GetData
6 сообщений из 31, страница 2 из 2
GetData
    #36971852
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlТы из PivotCache одну запись прочитать можешь? ...
напишите как пожалуйста, а то я не въеду
...
Рейтинг: 0 / 0
GetData
    #36972651
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DeggasadWhite OwlТы из PivotCache одну запись прочитать можешь? ...
напишите как пожалуйста, а то я не въеду
Код: plaintext
1.
2.
3.
4.
5.
Dim rs as ADODB.Recordset, pc as PivotCache
Set pc = .... ' находишь свой PivotCache
Set rs = pc.Recordset
rs.MoveFirst
While Not rs.EOF
   .... 'etc
...
Рейтинг: 0 / 0
GetData
    #36972930
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlDeggasadпропущено...

напишите как пожалуйста, а то я не въеду
Код: plaintext
1.
2.
3.
4.
5.
Dim rs as ADODB.Recordset, pc as PivotCache
Set pc = .... ' находишь свой PivotCache
Set rs = pc.Recordset
rs.MoveFirst
While Not rs.EOF
   .... 'etc


Так это же только для случая когда исходником для построения пивота был рекодсет, а если диапазон, то Set rs = pc.Recordset не прокатит :)
...
Рейтинг: 0 / 0
GetData
    #36973090
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DeggasadТак это же только для случая когда исходником для построения пивота был рекодсет, а если диапазон, то Set rs = pc.Recordset не прокатит :)А тогда читай из SourceData.
С другой стороны, если источником был диапазон, то у тебя не будет сложностей и скопировать данные обратно...
...
Рейтинг: 0 / 0
GetData
    #36973410
Фотография Shamanus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlDeggasadТак это же только для случая когда исходником для построения пивота был рекодсет, а если диапазон, то Set rs = pc.Recordset не прокатит :)А тогда читай из SourceData.
С другой стороны, если источником был диапазон, то у тебя не будет сложностей и скопировать данные обратно...

поправочка - если диапазон "местный", то бишь из данной книги. А если данные из другой книги получается их не извлечешь.
Ну ладно, продолжу ликбез далее.

По идеям подкинутым выше сделал следующее

Создал на листе несколько сводных таблиц, с разными источниками данных и написал вот такой код
Код мониторинга сводных
Код: plaintext
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.
27.
28.
29.
Sub my()
Dim pc As PivotTable
Dim pcach As PivotCache
Dim rs As ADODB.Recordset

x = ActiveSheet.PivotTables.Count
For i =  1  To x
    On Error Resume Next
    Set pc = ActiveSheet.PivotTables(x +  1  - i)
    Set pcach = ActiveWorkbook.PivotCaches(pc.CacheIndex)
    Set rs = pcach.Recordset: If rs Is Nothing Then suc = False Else suc = True
    
            Debug.Print " Pivot" & i & " name:" & pc.Name
            Debug.Print " Pivot" & i & " source type:" & pcach.SourceType
            Debug.Print " Pivot" & i & " ConnFile:" & pcach.SourceConnectionFile
            Debug.Print " Pivot" & i & " DataFile:" & pcach.SourceDataFile
            Debug.Print " Pivot" & i & " source:" & pcach.SourceData
            Debug.Print " Pivot" & i & " cache:" & pc.CacheIndex
            Debug.Print " Pivot" & i & " recordset:" & suc
            Debug.Print " Pivot" & i & " recordset size:" & pcach.RecordCount
            
            
            Debug.Print " __________________________________________________"
    
    Set pc = Nothing
    Set pcach = Nothing
    Set rs = Nothing
Next i

End Sub
собсно итог запуска этого кода (в качестве имени пивота я указал тип подключения) Pivot1 name:ИсточникДиапазонДругаяКнига
Pivot1 source type:1
Pivot1 source:[Книга1]Лист1!R1C1:R40C4
Pivot1 cache:1
Pivot1 recordset:False
Pivot1 recordset size:39
__________________________________________________
Pivot2 name:ИсточникБДаксесс
Pivot2 source type:2
Pivot2 ConnFile:
Pivot2 DataFile:/ удалил путь к базе /
Pivot2 cache:2
Pivot2 recordset:False
Pivot2 recordset size:148511
Pivot2 ADO:Provider=Microsoft.ACE.OLEDB.12.0;Password="";User ID=Admin;Data Source=/ удалил путь к базе /;Mode=Share Deny Write
;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:
Engine Type=6;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;
Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:
Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;Jet OLEDB:
Support Complex Data=False
Pivot2 Querytype:5
__________________________________________________
Pivot3 name:ИсточникДиапазонЭтаКнига
Pivot3 source type:1
Pivot3 source:Лист1!R1C1:R40C4
Pivot3 cache:3
Pivot3 recordset:False
Pivot3 recordset size:39
__________________________________________________
Pivot4 name:ИсточникRecordsetADO
Pivot4 source type:2
Pivot4 ConnFile:
Pivot4 DataFile:
Pivot4 cache:4
Pivot4 recordset:False
Pivot4 recordset size:12
Pivot4 Querytype:7
__________________________________________________
Pivot5 name:ИсточникКубДанных
Pivot5 source type:2
Pivot5 ConnFile:
Pivot5 DataFile:E:\MyExcel.cub
Pivot5 cache:5
Pivot5 recordset:False
Pivot5 recordset size:0
Pivot5 ADO:Provider=MSOLAP.2;Persist Security Info=True;Data Source=E:\MyExcel.cub;Client Cache Size=25;Auto Synch Period=10000;
MDX Compatibility=1
Pivot5 Querytype:5
__________________________________________________
Pivot6 name:ИсточникMSSQLсервер
Pivot6 source type:2
Pivot6 ConnFile:/ удалил путь и имя файла /.odc
Pivot6 DataFile:
Pivot6 cache:6
Pivot6 recordset:False
Pivot6 recordset size:6226
Pivot6 ADO:Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=True;Initial Catalog=MD;Data Source=/ удалил имя сервера /;
Use Procedure for Prepare=1;
Auto Translate=True;Packet Size=4096;Workstation ID=/ удалил /;Use Encryption for Data=False;Tag with column collation when possible=False
Pivot6 Querytype:5
__________________________________________________
Pivot7 name:ИсточникДанныхOracleSQLServerЧерезMsQuery
Pivot7 source type:2
Pivot7 ConnFile:
Pivot7 DataFile:
Pivot7 cache:7
Pivot7 recordset:False
Pivot7 recordset size:6706
Pivot7 Querytype:1
__________________________________________________

какие выводы.
рекордсет в пивоткэше судя по всему только для записи, а не чтения.
SourceType малоинформативное само по себе свойство

последний вывод - можно конечно нафигачить парсер типа источника данных, но это не поможет эти данные получить во всех случаях кроме случая -источник эта книга

кажется тупик все глубже и глубже
...
Рейтинг: 0 / 0
GetData
    #36974020
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShamanusWhite Owlпропущено...
А тогда читай из SourceData.
С другой стороны, если источником был диапазон, то у тебя не будет сложностей и скопировать данные обратно...

поправочка - если диапазон "местный", то бишь из данной книги. А если данные из другой книги получается их не извлечешь.

+1 обычно пересылают сводную таблицу на отдельном листе в отдельной книге зачем ей данные если они и так хранятся с ней.

Shamanus...
кажется тупик все глубже и глубже
меня это тоже в свое время убивало, но:
- у вас остается Selection.ShowDetail = True
- можно заставить присылать людей исходные данные
...
Рейтинг: 0 / 0
6 сообщений из 31, страница 2 из 2
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / GetData
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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