[SOLVED]Przycisk w formularzu otwierający kwerendę
[SOLVED]Przycisk w formularzu otwierający kwerendę
Witam.
Jak w temacie.
Nie mogę tego znaleźć w necie. Może ktoś podpowie. Jest pod przyciskiem możliwość definiowania Akcji lecz jest ograniczony wybór i nie ma otwórz kwerendę. Jest makro openqery ale jak z niego skorzystać.
Musi być możliwość wpisania nazwy kwerendy.
W Access było bardzo prosto zrobić taki przycisk aż dziw , że w Libre tego nie ma.
Pozdrawiam
Jak w temacie.
Nie mogę tego znaleźć w necie. Może ktoś podpowie. Jest pod przyciskiem możliwość definiowania Akcji lecz jest ograniczony wybór i nie ma otwórz kwerendę. Jest makro openqery ale jak z niego skorzystać.
Musi być możliwość wpisania nazwy kwerendy.
W Access było bardzo prosto zrobić taki przycisk aż dziw , że w Libre tego nie ma.
Pozdrawiam
Ostatnio zmieniony pn lip 24, 2023 8:17 am przez wbp, łącznie zmieniany 1 raz.
LibreOffice 7.37.2 Windows10
Re: Przycisk w formularzu otwierający kwerendę
Dokumentacja jest w http://www.access2base.com/access2base.html
A to prosty kod otwierający okno kwerendy o wskazanej nazwie:
Makro podpięte do przycisku musi być w tym przypadku bezparametrowe. Procedura
callq() powyżej spełnia to wymaganie. W porządnym projekcie nawiązanie połączenia powinno się odbyć raz, na początku.
Nazwa kwerendy jest daną String. Możesz ją wpisać na sztywno (jak w przykładzie), pobrać z formularza (np. z pola kombi), wpisać z palca etc.
Załączam plik testowy.
A to prosty kod otwierający okno kwerendy o wskazanej nazwie:
Kod: Zaznacz cały
Sub callq()
If GlobalScope.BasicLibraries.hasByName("Access2Base") Then
GlobalScope.BasicLibraries.loadLibrary("Access2Base")
End If
Call Application.OpenConnection(ThisDatabaseDocument)
qname = "q1"
DoCmd.OpenQuery(qname, 0)
End Sub
callq() powyżej spełnia to wymaganie. W porządnym projekcie nawiązanie połączenia powinno się odbyć raz, na początku.
Nazwa kwerendy jest daną String. Możesz ją wpisać na sztywno (jak w przykładzie), pobrać z formularza (np. z pola kombi), wpisać z palca etc.
Załączam plik testowy.
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Re: Przycisk w formularzu otwierający kwerendę
Dziękuję za szybka odpowiedź.
Pobrałem plik ale przycisk nie uruchamia otwarcie kwerendy. Być może .
coś źle robię. Wchodzę na Pana bazę , kliknięciem otwieram formularz , naciskam przycisk i nic się nie otwiera.
Może trzeba coś zrobić z makrami.
Pozdrawiam.
Pobrałem plik ale przycisk nie uruchamia otwarcie kwerendy. Być może .
coś źle robię. Wchodzę na Pana bazę , kliknięciem otwieram formularz , naciskam przycisk i nic się nie otwiera.
Może trzeba coś zrobić z makrami.
Pozdrawiam.
LibreOffice 7.37.2 Windows10
Re: Przycisk w formularzu otwierający kwerendę
Makro się nie otwierało była blokada w opcjach Bezpieczeństwo makr.
LibreOffice 7.37.2 Windows10
Re: Przycisk w formularzu otwierający kwerendę
Witam.
Jeszcze dopiszę , że miałem zamieszanie z lokalizacją makra. Musi być przypisane do mojej bazy.
Zaproponowane rozwiązanie powoduje , że do każdego przycisku trzeba tworzyć nowe makro callq1, callq2 ... podstawiając nazwę kwerendy .
Ale i tak dziękuję za rozwiązanie.
Sprawa rozwiązana
Jeszcze dopiszę , że miałem zamieszanie z lokalizacją makra. Musi być przypisane do mojej bazy.
Zaproponowane rozwiązanie powoduje , że do każdego przycisku trzeba tworzyć nowe makro callq1, callq2 ... podstawiając nazwę kwerendy .
Ale i tak dziękuję za rozwiązanie.
Sprawa rozwiązana
LibreOffice 7.37.2 Windows10
Re: Przycisk w formularzu otwierający kwerendę
No nie koniecznie. @Jan_J napisał przecież, że nazwę kwerendy możesz dostarczyć z np. pola kombi albo pola listy.
AOO 4.1.15, LO 24.8.2 (x64) na Windows 10 64bit
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Re: Przycisk w formularzu otwierający kwerendę
Otwierając formularz w trybie edycji, zyskasz dostęp do właściwości przycisku (od innych elementów również). Jest tam pole "Dodatkowe informacje......", tam możesz wpisać nazwę kwerendy, którą chcesz otworzyć a poniższe makro właśnie z tej właściwości będzie pobierać nazwę do otwarcia.
Kod: Zaznacz cały
Sub callq1(oEv)
If GlobalScope.BasicLibraries.hasByName("Access2Base") Then
GlobalScope.BasicLibraries.loadLibrary("Access2Base")
End If
Call Application.OpenConnection(ThisDatabaseDocument)
qname = oEv.Source.Model.Tag
DoCmd.OpenQuery(qname , 0)
End Sub
LibreOffice 7.4.6 (preferowany) oraz OpenOffice 4.1.6. Widows 10
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
Re: Przycisk w formularzu otwierający kwerendę
Witam.
Dziękuję za podpowiedź. Po ostatnim wyjaśnieniu przycisk działa tak jak chciałem.
Temat uważam za rozwiązany.
Dziękuję za podpowiedź. Po ostatnim wyjaśnieniu przycisk działa tak jak chciałem.
Temat uważam za rozwiązany.
LibreOffice 7.37.2 Windows10