Открытие таблицы (base) при помощи макроса

Автор vlad77, 3 ноября 2022, 21:28

0 Пользователи и 1 гость просматривают эту тему.

vlad77

Здравствуйте.
Есть ли возможность открыть таблицу (не Сalc, а созданную в base) при помощи макроса (по кнопке с формы), например на подобие такого:
 

ThisDataBaseDocument.FormDocuments.getByName("frm_grafik").Open ' открыть форму


Спасибо.

   

sokol92

Поиск ведет сюда. Работающие примеры открытия таблицы и запроса по нажатию кнопки в форме.
Владимир.

sokol92

Переработанная функция для вызова DataSourceBrowser - компоненты, позволяющей просмотреть записи, возвращаемые SQL-запросами.

' Открывает DataSourceBrowser для просмотра таблицы, query или SQL-запроса.
' - oConnection соединение
' - commandType тип команды (...sdb.CommandType)
' - command     текст команда
Sub OpenQueryDataView(ByVal oConnection, ByVal commandType As Long, ByVal command As String)
   Dim aURL as New com.sun.star.util.URL
   Dim oDispatchObject
   Dim aProps(5) as New com.sun.star.beans.PropertyValue
   
   aURL.Complete = ".component:DB/DataSourceBrowser"
   oDispatchObject = StarDesktop.queryDispatch(_
                        aURL, _
                        "_Blank",_
                        com.sun.star.frame.FrameSearchFlag.CREATE)
    aProps(0).Name = "ActiveConnection"
    aProps(0).Value = oConnection
    aProps(1).Name = "CommandType"
    aProps(1).Value = commandType
    aProps(2).Name = "Command"
    aProps(2).Value = command
    aProps(3).Name = "ShowMenu"
    aProps(3).Value = True
    aProps(4).Name = "ShowTreeView"
    aProps(4).Value = False
    aProps(5).Name = "ShowTreeViewButton"
    aProps(5).Value = False   
    oDispatchObject.dispatch(aURL, aProps)
End Sub

' Пример. Открываем результат SQL-запроса.
Sub TestOpenQueryDataView
  Dim oDBC, oDataSource, oConn
  oDBC=CreateUnoService("com.sun.star.sdb.DatabaseContext")
  oDataSource=oDBC.getByName(ConvertToUrl("C:\Temp\BirthNumber-To-BirthDate.odb"))
  oConn=oDataSource.getConnection("", "")  ' User, Password
  OpenQueryDataView  oConn, 2, "Select * From Employess"
End Sub

Если вызывать эту функцию из обработчика события нажатия кнопки формы, то ссылку на активное соединение можно получить, например, так:

oModel=oEvent.Source.Model    ' UnoControlButtonModel
oConnection=oModel.Parent.ActiveConnection
Владимир.