Minimalizacja okna

Minimalizacja formularza czyli schowanie go w oknie aplikacji Access jest możliwa za pomocą metody docmdMinimize

  • kliknij, aby powiększyć

    Po minimalizacji formularz nadal jest załadowany, może nawet być aktywny, ale jest „spuszczony na belkę”. 

Ja jakoś nie pamiętam, żebym kiedyś stosowała tę metodę. Choć w niektórych sytuacjach może się przydać. 


Maksymalizacja okna

Jak spowodować, aby np. formularz czy raport otwierał się w pełnym oknie ekranu?  Możemy tu wykorzystać jedną z metod metod docmdMaximize
Stosuje się ją najczęściej przy otwarciu lub załadowaniu formularza. 

kliknij, aby powiększyć
  • W ten sposób – aktywny formularz będzie widoczny w całym oknie Accessa. 
    Moim zdaniem – warto stosować. 

 

Kurs Access - programowanie w VBA

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

Odświeżanie rekordu

Do odświeżania rekordów w bazie danych służy metoda obiektu docmd RefreshRecord
Metoda ta ma szczególne znaczenie w przypadku edycji danych za pomocą formularza, w którym jednocześnie mogą pracować inni użytkownicy albo w wyniku makr/procedur VBA. Powoduje ona zapisanie rekordu i odświeżenie danych w formularzu.

W praktycznym zastosowaniu – wykorzystuję je najczęściej w formularzach ciągłych. Szczególnie wtedy, gdy w ramach jednego rekordu np. w jednym polu zmieniam dane bezpośrednio, a w innej kolumnie tego samego rekordu za pomocą procedury VBA. Wówczas na ekranie pojawia się komunikat o konflikcie zapisu.

kliknij, aby powiększyć

Jeżeli jednak do pól formularza dodamy zdarzenie po aktualizacji:

Private Sub NazwaPola_AfterUpdate()
DoCmd.RefreshRecord
End Sub

wówczas konflikt się nie pojawi.
W ten sposób zabezpieczymy się również przed takim konfliktem, gdy zmiany wprowadzi jednocześnie inny użytkownik.

Polecam do praktycznego wykorzystania.


 

Egzamin Specjalista MS Access

Formularz modalny

Formularz modalny to formularz, z którego nie da się przenieść fokusa na inny obiekt przed jego zamknięciem. 
Ustawienie formularza jako modalny dostępne jest w Arkuszu właściwości, w zakładce Inne.

kliknij, aby powiększyć

Po otwarciu formularza modalnego, nawet jeżeli jednocześnie jest otwartych kilka formularzy czy raportów, nie można się do nich przełączyć, fokus pozostaje zawsze przy tym modalnym. Choć oczywiście można z niego (za pomocą przycisku lub zdarzenia) otworzyć inny formularz – po zamknięciu go, fokus wraca do naszego formularza modalnego.

W swoich projektach bardzo często korzystam z formularzy modalnych. Wykorzystuję je najczęściej do dodawania nowych rekordów do tabeli. W ten sposób mam większą kontrolę nad tym, czy wszystkie dane zostały wprowadzone, w razie potrzeby wyświetlany jest komunikat i możliwość korekty. Finalnie do tabeli nie trafiają śmieci.

Przykład takiego formularza:

Zamknięcie formularza poprzez jeden z dwóch przycisków:

    • Anuluj – zamyka formularz bez zapisu danych
    • Zapisz – sprawdza dane, zapisuje je do tabeli i zamyka formularz

A jak zrobić to kodem VBA? Najprościej wykorzystać metodę Docmd.Openform w trybie acDialog.
Przykład kodu:

Private Sub PolecenieNowaKsiazka_Click()
DoCmd.OpenForm „NowaKsiazka”, , , , , acDialog
End Sub

 


Kurs Access - formularze i raporty

 

 

Otwieranie formularza kodem VBA

Jedną z najczęściej wykorzystywanych metod obiektu docmd jest docmd.OpenForm. Metoda ta służy do otwierania formularza.

kliknij, aby powiększyć

Parametry to:

    • FormName – nazwa otwieranego formularza . Parametr obowiązkowy;
    • View as acFormView – tryb otwierania otwierania formularza, wartość domyślna to acViewNormal czyli po prostu wygląd formularza;
      kliknij, aby powiększyć
    • FilterName  – nazwa zdefiniowanego filtru do zastosowania przy wyborze rekordów do wyświetlenia w formularzu; argument opcjonalny;
    • WhereCondition – instrukcja SQL (bez słowa kluczowego WHERE) decydująca o tym, które rekordy mają zostać wyświetlone; argument opcjonalny;
    • DataMode  – tryb dostępu do danych:

      kliknij, aby powiększyć

      dostępne opcje to:

        • acFormAdd – tryb dodawania danych (nowy rekord)
        • acFormEdit – tryb edycji danych bez możliwości wstawiania nowych rekordów
        • acFormPropertySettings– tryb uzależniony od właściwości otwieranego formularza – wartość domyślna
        • acFormReadOnly– tryb odczytywania danych, bez możliwości edycji i dodawania/usuwania danych
      • WindowMode  – tryb okna otwieranego formularza:

        kliknij, aby powiększyć

        dostępne opcje to:

          • acDialog – tryb dialogu, przestawia całe sterowanie na otwierany formularz, blokując inne
          • acHidden– tryb otwarcia formularza i ukrycia go
          • acIcon– tryb otwarcia formularza i zminimalizowania go
          • acWindowNormal– tryb otwarcia zgodny z właściwościami otwieranego formularza,
            wartość domyślna
      • OpenArgs– argument otwarcia, przekazujący w razie potrzeby określoną wartość do otwieranego formularza.,
        argument opcjonalny

Metoda OpenForm ma faktycznie dużo możliwości wykorzystania, wszystko w zależności od potrzeb i struktury aplikacji.
W praktyce – nie ma aplikacji Access, w której nie stosowałabym tej metody. Korzystam też z ostatniego parametru czyli OpenArgs. Najczęściej za jego pomocą przekazuję do formularza podrzędnego numeru ID z tabeli nadrzędnej, choć czasami za jego pomocą przekazuję tez np.Login aktualnego użytkownika.
Sprawdza się. 


 

Egzamin Specjalista MS Access

Zamykanie Accessa

Metoda obiektu docmd Quit służy do zamknięcia bazy danych i wyjścia z Accessa.
Metoda Docmd.Quit ma jeden argument opcjonalny, który może przybierać jedną z trzech opcji:

    • acQuitPrompt – z monitem o zapis zmian
    • acQuitSaveAll – zapisuje wszystkie zmiany (wartość domyślna)
    • acQuitSaveNone – bez zapisu wszystkich zmian
kliknij, aby powiększyć

Często stosuję tę metodę do szybkiego zamykania Accessa z różnych miejsc bazy danych.


Kurs Access - programowanie w VBA