Добавить/изменить сохраненный запрос во встроенной БД hsqldb макросом. Как?

Автор dndn, 1 августа 2014, 10:37

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

dndn


vasyun

Можно сделать форму в ней таблицу которая отображает результат SQL-запроса и через макрос менять в этой таблице SQL-запрос.
Примерно так:
Sub Ceh5_Tabel_ListDay
oDoc = StarDesktop.CurrentComponent 'Текущий объект или форма
oForm=oDoc.DrawPage.Forms() 'Получить список форм
sDate=oForm.getByName("Form1").getByName("Список календарных дней").CurrentValue
IF sDate="" Then
sDate=CDate(DATE)
End IF
'Формируем запрос
SQLQuery="SELECT Это ваш запрос ;"
oForm5=oForm.getByName("Form5") 'Получаем с формы таблицу
oForm5.CommandType = 2 'Меняем свойства формы (Тип содержимого)
oForm5.Command = SQLQuery 'Меняем свойства формы (Содержимое)
oForm5.execute 'Выполнить изменение свойств таблицы
End Sub
LibreOffice 5.0.4.2
Apache OpenOffice 4.1.2

Hasim

Ну а изменить запрос можно вообще одной строкой кода:
db.Queries.getByName("Запрос_xy").Command = query_new

rami

Цитата: Hasim от 28 августа 2014, 14:47Ну а изменить запрос можно вообще одной строкой кода:
Код:
db.Queries.getByName("Запрос_xy").Command = query_new
Вместо имени запроса: "query_new" должна быть команда: sSQL Sub Main
db=ConnectToDataBase("IT")                      'подключение к БД
sSQL="SELECT * FROM ""Активы"" "                'строка команды
db.Queries.getByName("Запрос_xy").Command=sSQL  'замена команды
End Sub
Как-то так.

Hasim

Цитата: rami от 28 августа 2014, 16:57Вместо имени запроса: "query_new" должна быть команда: sSQL
Это не имя запроса, это строковая переменная с текстом запроса, вот так можно задать ее значение:
query_new = "SELECT * FROM ""Активы"" "

Я и не подумал, что можно их перепутать, хотя внешне (текстуально) они совпадают.

Тогда так:
db.Queries.getByName("Запрос_xy").Command = stringSQL_new