Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.03.2015, 20:55   #1
Red Fox
Пользователь
 
Регистрация: 24.02.2014
Сообщений: 14
По умолчанию Cводная таблица в MS Excel из MS Access с помощью VBA

Товарищи форумчане,

Помогите, пожалуйста, исправить VBA код. Необходимо из MS Access создать в MS Excel сводную таблицу.

Ошибка возникает в следующем отрезке кода:

Код HTML:
Set PTCache = .ActiveWorkbook.PivotCaches.Add _
      (SourceType:=xlDatabase, _
      SourceData:=.ActiveWorkbook.Sheets("Raw_Data").Range(SourcePivot))
Файл приложен.
Вложения
Тип файла: zip Report.zip (57.0 Кб, 13 просмотров)
Red Fox вне форума Ответить с цитированием
Старый 04.03.2015, 05:30   #2
AndVGri
Форумчанин
 
Регистрация: 10.02.2012
Сообщений: 109
По умолчанию

И вам здравствуйте
Цитата:
Ошибка возникает в следующем отрезке кода:
А где собственно код?
Создать cache напрямую к базе данных по запросу можно так
Код:
Public Function GetCache() As PivotCache
    Const aceConn = "OLEDB;Provider=Microsoft.ACE.OLEDB.12.0;Mode=1;Data Source=$1"
    Dim pConn As WorkbookConnection
    Set pConn = ThisWorkbook.Connections.Add("QueryAll" & CStr(Int(Timer)), "Подключение к Report", _
                                             Replace$(aceConn, "$1", ThisWorkbook.Path & "\Report.accdb"), _
                                             "Select * From QueryAll", XlCmdType.xlCmdSql)
    Set GetCache = ThisWorkbook.PivotCaches.Create(xlExternal, pConn)
End Function
AndVGri вне форума Ответить с цитированием
Старый 04.03.2015, 19:25   #3
Red Fox
Пользователь
 
Регистрация: 24.02.2014
Сообщений: 14
По умолчанию

Спасибо за содействие!

VBA код большой, поэтому я его не стал весь показывать. Его можно посмотреть в редакторе VBA.

Cache создается на основании выгрузки из MS Access в MS Excel. Предварительно записи выгружаются из MS Access в MS Excel, а затем на основе этой выгрузки создается сводная таблица в MS Excel. Для этого нужно загрузить форму "ReportForm" и сформировать отчет. И на указанном месте возникает ошибка: Run-Time error '5' Invalid procedure call or argument.

Последний раз редактировалось Red Fox; 04.03.2015 в 19:30.
Red Fox вне форума Ответить с цитированием
Старый 05.03.2015, 03:03   #4
AndVGri
Форумчанин
 
Регистрация: 10.02.2012
Сообщений: 109
По умолчанию

Доброе время суток
А смысл создавать выгрузку на лист Excel, что бы по ней создавать сводную таблицу?
А в коде выше у вас просто ошибка.
Коллекция PivotCaches не имеет метода Add. Используйте метод
Код:
Create(1, .ActiveWorkbook.Sheets("Raw_Data").Range(SourcePivot))
Вы же используете позднее связывание, зачем же указывать имя перечисления, о значении которого код ничего не знает?
AndVGri вне форума Ответить с цитированием
Старый 06.03.2015, 20:03   #5
Red Fox
Пользователь
 
Регистрация: 24.02.2014
Сообщений: 14
По умолчанию

Спасибо большое!

Последний раз редактировалось Red Fox; 07.03.2015 в 19:40.
Red Fox вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
MS Excel, MS Access, MS Jet и VBA mdn001 Фриланс 2 17.06.2013 22:42
Ошибка 1004 при обновлении данных из Access (VBA EXCEL) Kycaka Microsoft Office Excel 7 07.12.2012 10:30
Вопрос по Excel, Access бд и Vba, Создание мини проги. Sserega Microsoft Office Excel 3 19.06.2012 16:01
Таблица в Excel или Access Сергей_95 Помощь студентам 1 17.11.2011 13:18
Проект!VBA(Excel+Access)-анализ фин.сост-ия пр-ия!Срочно!!! s_k Фриланс 5 17.12.2009 20:17