Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Variant как источник данных сводной таблицы
 
Подскажите, можно ли в качестве источника данных сводной таблицы использовать тип данных Variant?

Что я хочу сделать:
1. Получить данные из базы данных
2. Преобразовать набор данных в Variant (чтобы можно было изменить данные)
3. Изменить данные
4. Измененный набор указать в качестве источника данных в сводной таблице
Код
Private Sub CommandButton1_Click()
    

Dim CN   As ADODB.Connection
Dim rst  As ADODB.Recordset
Dim vDat As Variant

Set CN = CreateObject("ADODB.Connection")
CN.ConnectionString = "Driver={Oracle in OraClient11g_home1};Dbq=DBNAME;Uid=User;Pwd=Pass;"

CN.Open

sqlStr1 = "select * from mytable where id < 20 "

Set rst = CN.Execute(sqlStr1)
vDat = rst.GetRows

CN.Close

vDat(1, 4) = "12345"


Set ActiveSheet.PivotTables(1).PivotCache.Recordset = vDat 'Тут я застрял
ActiveSheet.PivotTables(1).PivotCache.Refresh

End Sub
Как объединить результаты двух sql запросов к разным БД?
 
Есть две базы данных, нужно выполнить запрос1 к БД1, затем полученные данные подставить в запрос2 к БД2 и результат запроса вывести в сводную таблицу. Нужно это все реализовать средствами VBA в Excel.

Заполнять данными сводную таблицу я научился, а вот с остальным нужна помощь.
Сводная таблица OLEDB, Заполнение сводной таблицы данными из sql server compact
 
Подскажите пожалуйста как получить данные из sql server compact 3.5 и засунуть их в сводную таблицу?

Пока научился только доставать данные в recordset:
Код
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim cmd As New ADODB.Command

Set conn = New ADODB.Connection
Set rs = New ADODB.Recordset

conn.ConnectionString = "Provider=Microsoft.SQLSERVER.CE.OLEDB.3.5; Data Source= c:\test\db.sdf;Persist Security Info=False"
conn.Open


cmd.ActiveConnection = conn
cmd.CommandText = "SELECT * FROM HISTORY"
Set rs = cmd.Execute

...

conn.Close
Заполнять сводную таблицу через ODBC я умею, а через OLEDB не получается...
Код
With ThisWorkbook.PivotCaches(1)
    If .CommandText = "SQL Запрос" Then
        .Connection = "ODBC строка подключения"
        .Refresh
    Else
        .EnableRefresh = True
        .CommandType = xlCmdSql
        .SavePassword = True
        .Connection = "ODBC строка подключения"
        .CommandText = "SQL Запрос"
        .RobustConnect = xlAlways
        .EnableRefresh = True
    End If
  
End With
Страницы: 1
Наверх