Перевод кода с VBA в LibreOffice Basic

Автор demonterka, 14 сентября 2023, 15:55

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

demonterka

Здравствуйте!
Появилась необходимость перейти с MS Access на LibreOffice Base. Формы, таблицы и т.п. перенёс вручную, остались макросы. И тут начались проблемы. Пытаюсь переделать самостоятельно код старых макросов - не получается. Вот код:

Private Sub ОтборЗаписей_Click()
On Error GoTo Err_ОтборЗаписей_Click
Me.RecordSource = "SELECT TP.* FROM TP WHERE ((TP.[" & Me.КатегорияПоиска & "]) Like('*" & Me.СтрокаПоиска & "*')) WITH OWNERACCESS OPTION;"
     
Exit_ОтборЗаписей_Click:
    Exit Sub
 
Err_ОтборЗаписей_Click:
    MsgBox Err.Description
    Resume Exit_ОтборЗаписей_Click
End Sub
 
Private Sub ОчиститьПоиск_Click()
Me.RecordSource = "SELECT TP.* FROM TP WITH OWNERACCESS OPTION;"
   
Exit_ОтборЗаписей_Click:
    Exit Sub
 
Err_ОтборЗаписей_Click:
    MsgBox Err.Description
    Resume Exit_ОтборЗаписей_Click
End Sub

Суть кода такова - на форме есть таблица с данными. Нужно реализовать поиск (фильтр) по таблице. на форме присутствует поле со списком "КатегорияПоиска" и пустое поле для ввода необходимого значения для поиска "СтрокаПоиска". Данный макрос работает по кнопке. Вторая кнопка очищает поиск(фильтр). При выполнении данного кода появляется ошибка "Ошибка времени выполнения Basic.Объектная переменная не установлена." Помогите разобраться и сконвертировать код! Пожалуйста.

economist

В подобных ситуациях вижу три направления:

1) Изучить встроенную в LibreOffice Base большую библиотеку Access2Base и заменить неработающий метод на нее
2) Реализовать поиск самому, с нуля, на методах LO Basic
3) Использовать поиск и найти готовые решения: http://wiki.harlamenkov.ru/wiki/RU/kb/00000359

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...