Проблема с программным созданием сводной таблицы в Excel

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
abc
Обычный пользователь
Обычный пользователь
 
Сообщения: 85
Зарегистрирован: 09.07.2004 (Пт) 17:31
Откуда: Kiev

Проблема с программным созданием сводной таблицы в Excel

Сообщение abc » 15.06.2006 (Чт) 11:55

Пытаюсь из Access программно создать сводную таблицу в Excel
Dim objExcel As New Excel.Application
Dim wb As Excel.Workbook
NamePivot='СводнаяТаблица1'
objExcel.Workbooks.Add
objExcel.Visible = True
Set wb = objExcel.ActiveWorkbook
With wb.PivotCaches.Add(SourceType:=xlExternal)
.Connection = Array(Array("ODBC;DSN=База данных MS Access; DBQ=T:\DB\Source.mdb;DefaultDir=T:), Array("T:\DB;DriverId=25; FIL=MS Access;MaxBufferSize=2048; PageTimeout), Array("=5;"))
.CommandType = xlCmdSql
.CommandText = Array(sql)
.CreatePivotTable TableDestination:=ActiveSheet.Range("A3"), TableName:=NamePivotEnd With
И т.д.
При первом выполнении нормально строит сводную таблицу.
При повторном запуске выдают ошибку в выбеленной строке: Invalid procedure call or argument (что бы выполнилась процедура, нужно закрыть предыдущий Excel-файл)
В чем засада?

Al Khamid
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 274
Зарегистрирован: 11.02.2004 (Ср) 10:00
Откуда: Москва, Ховрино

Сообщение Al Khamid » 16.06.2006 (Пт) 8:29

8) 8)
Последний раз редактировалось Al Khamid 06.11.2007 (Вт) 15:39, всего редактировалось 1 раз.

abc
Обычный пользователь
Обычный пользователь
 
Сообщения: 85
Зарегистрирован: 09.07.2004 (Пт) 17:31
Откуда: Kiev

Сообщение abc » 16.06.2006 (Пт) 9:23

Думаю что нет. Открывается другая книга Workbook и соответственно активной является уже другая страничка. Пробовал, даже закрывать Excel, перед повторным запуском процедуры. Пробовал на каждый запуск генерить, новое имя TableName:=NamePivot & Time()… Помогает только полностью закрыть приложение и снова открыть.

Nicky
Постоялец
Постоялец
 
Сообщения: 519
Зарегистрирован: 12.08.2004 (Чт) 12:14

Re: Проблема с программным созданием сводной таблицы в Excel

Сообщение Nicky » 16.06.2006 (Пт) 11:09

abc писал(а):objExcel.Workbooks.Add
objExcel.Visible = True
Set wb = objExcel.ActiveWorkbook

=
Код: Выделить всё
objExcel.Visible = True
Set wb = objExcel.Workbooks.Add

И еще, ActiveSheet.Range("A3") - если книга новая, там же нет данных. Или я не прав?

abc
Обычный пользователь
Обычный пользователь
 
Сообщения: 85
Зарегистрирован: 09.07.2004 (Пт) 17:31
Откуда: Kiev

Сообщение abc » 16.06.2006 (Пт) 11:34

Проблема решилась сама собой.
Максимально однозначно все прописал, как советовали, и заработало.
Добавил:
Dim ws As Excel.Worksheet, pt As Excel.PivotTable

Set ws = wb.ActiveSheet
Set pt = ws.PivotTables(NamePivot)

Спасибо, за участие.
:D


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

    TopList