Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Обновление сводной таблицы в ОО. Что не правильно?
 
 автор: Dragon3376   (27.06.2013 в 12:36)   личное сообщение
 
 

из Access пишу код на обновление сводных таблиц в документе ОО (Calc)
сводная не обновляется
если вставляю код в макрос ОО все работает
что может быть не так?
не работает только последняя строка кода (обновление)

Sub MainVS1()
Dim oBook As Object
Dim cUrl As String
Dim oServiceManager As Object
Dim oCalcDoc As Object
Dim aNoArgs()
Dim oSheet As Object
Dim oCells  As Object

'создаем новый ServiceManager
Set oServiceManager = CreateObject("com.sun.star.ServiceManager")
Set oCalcDoc = oServiceManager.createInstance("com.sun.star.frame.Desktop")
'открываем файл
cUrl = ConvertToUrl("\\IVUSHKA-TWO\DB_Zakaz\Realiz\Реализация" + ".ods")
Set oBook = oCalcDoc.loadComponentFromURL(cUrl, "_blank", 0, aNoArgs())

Dim disp As Object
Set disp = CreateUnoService("com.sun.star.frame.DispatchHelper")

    Set oSheet = oBook.getSheets().getByIndex(0)
    Set oCell = oSheet.getCellByPosition(0, 4)
    Call oBook.CurrentController.Select(oCell)

    Call disp.executeDispatch(oCalcDoc, ".uno:RecalcPivotTable", "", 0, Array())
End Sub

Public Function ConvertToUrl(strFile) As String
'конвертирует путь MS Windows в URL (RFC 1738)
    strFile = Replace(strFile, "\", "/")
    strFile = Replace(strFile, ":", "|")
    strFile = Replace(strFile, " ", "%20")
    strFile = "file:///" + strFile
    ConvertToUrl = strFile
End Function

Public Function CreateUnoService(strServiceName) As Object
'Создание объекта UnoService
Dim oServiceManager As Object
    Set oServiceManager = CreateObject("com.sun.star.ServiceManager")
    Set CreateUnoService = oServiceManager.createInstance(strServiceName)
End Function

  Ответить  
 
 автор: osmor   (28.06.2013 в 14:07)   личное сообщение
 
 

положу сюда, вдруг еще кому надо

Set oEnum = oSheet.DataPilotTables.createEnumeration()
 Do While oEnum.hasMoreElements()
     Set oNext = oEnum.nextElement()
     Call oNext.Refresh
   Loop

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList