Макрос для кнопки, открывающей запрос

Автор Stud73, 11 марта 2019, 20:26

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

Stud73

Здравствуйте, уважаемые форумчане. Помогите, пожалуйста, найти метод (команду), который открывает запрос (для просмотра результата) в Base аналогично команде
ThisDatabaseDocument.ReportDocuments.GetByName("Отчет").open
Спасибо.

rami

Открыть компонент LibreOffice Base для просмотра запроса можно так:
Sub Main
Dim args(5) As New com.sun.star.beans.PropertyValue
args(0).Name = "Command"
args(0).Value = "ИмяСуществующегоЗапроса"                   ' <— заполнить
args(1).Name = "CommandType"
args(1).Value = com.sun.star.sdb.CommandType.QUERY
args(2).Name = "DataSourceName"
args(2).Value = "ИмяВашейБазы"                              ' <— заполнить
args(3).Name = "ShowTreeView"
args(3).Value = false
args(4).Name = "ShowTreeViewButton"
args(4).Value = false
args(5).Name = "ShowMenu"
args(5).Value = true

StarDesktop.LoadComponentFromUrl(".component:DB/DataSourceBrowser", "_blank", 0, args())
End Sub

Stud73

Спасибо... Очень сложно.. Может, я не так написала, что мне нужно.. Открыта база. В ней есть запрос...Есть форма, на которой есть кнопка.. Нужен макрос, который по нажатию на кнопку открывает запрос в режиме просмотра результата. Для формы и отчета такая команда есть - в первом сообщении привела образец.. Для запроса не могу найти аналогичную команду..

rami

#3
Форма и отчёт это фактически текстовые документы внутри архива базы, а запрос это всего лишь код выполняемый на лету. Для запросов нет такой команды. Результат запроса можно отобразить либо в компоненте, либо в форме или отчёте. Сделайте форму с таблицей показывающей результат запроса.

Stud73

Спасибо большое за ответ. Мысль о том, что для запросов нет такой команду меня посещала, но я рне была уверена. Смутило то, что в Акцессе такая команда есть. Еще вопрос. Вы написали "Результат запроса можно отобразить либо в компоненте". Я не совсем поняла - что это значит " в компоненте". Если есть возможность - поясните. Еще раз спасибо.

rami

Посмотрите на ранее представленный мною код, там в конце есть строка: StarDesktop.LoadComponentFromUrl(".component:DB/DataSourceBrowser", "_blank", 0, args()) — загружается компонент DataSourceBrowser и в нём отображается результат запроса.

Stud73