Pole menu sterowania w formularzu

Pole menu sterowania formularza to pole, w którym można wyłączyć jednocześnie Przycisk Zamknij oraz przyciski Min i Maks

Właściwość tę można zmienić w zakładce Format Arkusza właściwości formularza.

Wartość domyślna –Tak


Przyciski Min i Maks w formularzu

Przyciski  Min i Maks znajdują się w jego prawym górnym rogu i działają tak jak wszystkie tego typu przyciski w różnych aplikacjach czyli albo „zrzucają formularz na belkę” albo maksymalizują go do wypełnienia całego okna aplikacji Access. 

Właściwość tę możemy zmienić w zakładce Format Arkusza właściwości formularza.

Wartość domyślna –Oba włączone

Jakie ustawienie jest optymalne? Ja osobiście wyłączam je. Nigdy nie wiadomo co zrobi użytkownik, lepiej ograniczyć możliwości niekontrolowanego „chowania” formularzy. 
Często maksymalizuję widok formularza, ale robię to kodem VBA. 


Przycisk Zamknij w formularzu

Przycisk Zamknij w formularzu to krzyżyk  (właściwie znak x) w prawym górnym rogu formularza.

Przycisk ten służy do zamykania formularza.

Właściwość tę możemy zmienić w zakładce Format Arkusza właściwości formularza.

Wartość domyślna – Tak.

Jakie ustawienie jest optymalne? Moim zdaniem lepiej przestawić go na wyłączony, w swoich projektach zawsze to stosuję. Zamykanie krzyżykiem jest często stosowane przez użytkowników w wielu różnych aplikacjach, więc dlaczego? Jeżeli aktywny formularz jest jedynym w danym momencie otwartym i zamkniemy go krzyżykiem – na ekranie zobaczymy puste szare pole Accessa. I co użytkownik ma zrobić dalej? 
Oczywiście, można się zabezpieczyć dodając makro lub procedurę uruchamianą automatycznie przy zamknięciu formularza, ale to już temat na osobną notkę. 


SearchForRecord czyli przechodzenie do rekordu

Docmd.SearchForRecord to metoda obiektu docmd służąca do przechodzenia do wybranego rekordu formularza/raportu, tabeli czy kwerendy.
Najczęściej jest wykorzystywana w formularzach.

kliknij, aby powiekszyć

Parametry to:

    • ObjectType – typ obiektu:
      kliknij, aby powieszyć

      wartością domyślną jest acActiveDataObject czyli aktywny obiekt (tzn.jeżeli uruchamiamy procedurę w formularzu, to ten formularz)
    • ObjectName – nazwa obiektu, argument opcjonalny
    • Record  – rekord i kierunek wyszukiwania. Argument opcjonalny, możliwe opcje:
      • acFirst – pierwszy
      • acLast – ostatni 
      • acNet – pierwszy
      • acPreview– ostatni 

        uwaga: nie działa tu acGoto – szczegóły: Błąd 2505.

    • WhereCondition – instrukcja SQL (bez słowa kluczowego WHERE) decydująca o tym, które rekordy mają zostać wyświetlone

Przykładowy kod:

Private Sub PolecenieSzukaj_Click()
DoCmd.SearchForRecord acDataForm, „SpisKsiazek”, acFirst,”[autor] like '” & „*aga*” & „'”
End Sub

W praktyce raczej rzadko stosuję tą metodę, choć zdarza mi się w przypadkach, gdy szukam konkretnego rekordu, raczej bez Like i symboli wieloznacznych.


 

Egzamin Specjalista MS Access

Błąd wykonania 2505

kliknij, aby powiększyć

Błąd wykonania 2505 – wyrażenie ma nieprawidłową wartość

Przejrzałam dokładnie internet, przepytałam AI i wygląda na to, że jest to bardzo nietypowy błąd i właściwie nic o nim nie wiadomo.
U mnie wystąpił w takiej banalnie prostej procedurze

Private Sub PolecenieSzukaj_Click()
DoCmd.SearchForRecord acDataForm, „SpisKsiazek”, acGoto,”[autor] like '” & „*aga*” & „'”
End Sub

Podpowiedzi do wartości tego argumentu wyglądają tak:

kliknij, aby powiększyć

Formularz otwarty, aktywny, bez blokad. Podobny efekt występuje w przypadku innych wartości parametru 3, prawidłowo działa tylko przy użyciu acFirst i acLast, acNext, acPreview. Sprawdzałam to przy różnych konfiguracjach. Jedyną satysfakcjonująca i logiczną odpowiedź otrzymałam od ChatGPT: w podpowiedziach jes   t błąd. Odnoszą się one bardziej do możliwości acRecord, ale w połączeniu z SearchForRecord – nie pasują i wywołują ten błąd.

Inne błędy wykonania VBA (Run-time) są tu:
Błędy wykonania VBA