Formularz podręczny

Formularz podręczny to formularz, który  jest zawsze widoczny na pierwszym planie – takie okno pop-up. Nawet jeżeli jednocześnie są otwarte także inne formularze, formularz podręczny jest zawsze na wierzchu.
Na przykład w jednej z moich aplikacji do porządkowania różnych grafik i zdjęć mam formularz ciągły, w którym są również miniatury. czasem szukając jakiejś fotki (owszem, mam tu też formularz pojedynczy, ale przeklikiwanie się na kolejne zdjęcia trwa tu jednak znacznie dłużej) chcę się jej dokładnie przyjrzeć, więc pod przyciskiem mam makro otwierające formularz podręczny o takich wymiarach, ze szczegóły są widoczne.

kliknij, aby powiększyć

W tym przypadku jest to tylko drobiazg (choć w praktyce przydatny), jednak najczęściej formularze podręczne są stosowane wtedy, gdy wprowadzając/edytując dane w jednym formularzu, chcemy jednocześnie mieć podgląd danych w innym formularzu. Przydaje się, szczególnie w większych projektach. No i oczywiście nie musi być wcale taki duży jak u mnie – może to byc małe okienko – zawsze na wierzchu.

Jak utworzyć taki formularz? Jest to normalny formularz, może być pojedynczy, może być ciągły. Istotna jest tu właściwość formularza Podręczny w zakładce arkusza właściwości Inne.

kliknij, aby powiększyć

Po przestawieniu właściwości Podręczny na Tak – formularz będzie zawsze otwierany w tym trybie.

Czy można zrobić to kodem VBA? Niestety, nie da się to zrobić w prosty sposób, choć można sobie poradzić w ten sposób nieco kombinując. 
Taka procedura zmienia właściwość Podręczny formularza:

Sub UstawFormularzPopUp(NazwaFormularza As String, CzyPopUp As Boolean)
DoCmd.OpenForm nazwaFormularza, acDesign
Forms(nazwaFormularza).PopUp = czyPopUp
DoCmd.Close acForm, nazwaFormularza, acSaveYes
End Su

Chcąc zmienić sposób wyświetlania z podręcznego na zwykły lub odwrotnie – przed otwarciem formularza najpierw tą procedurą  otwieramy go w widoku projektu, zmieniamy właściwość i zamykamy zapisując, a następnie – otwieramy już w normalnym trybie.
Jest to jakieś rozwiązanie, choć mało mi się podoba. No i ma poważne ograniczenia – działa tylko w pełnej wersji bazy. Poza tym – jeżeli w bazie pracuje jednocześnie więcej użytkowników, może wywołać to problemy.
Ja w takim przypadku zastosowałabym raczej 2 identyczne formularza – jeden podręczny, drugi nie i w zależności od potrzeb uruchamiany mógłby być jeden z nich.


 

 

 

Opcje bieżącej bazy danych

Niezależnie od posiadanej wersji Accessa i ustawionych opcji ogólnych, dla każdej aplikacji stworzonej w tym programie można ustawić indywidualne ustawienia podstawowe.
Możliwości takie dostępne są w karcie
Plik –> Opcje –> Bieżąca baza danych

kliknij, aby powiększyć

Moim zdaniem najistotniejsze to:

    • formularz wyświetlany przy otwarciu bazy:

      kliknij, aby powiększyć

      Na ten temat pisałam już tu:
      Formularz startowy
      W ramach uzupełnienia – gdy czasem zdarza mi się jakiś bardziej skomplikowany projekt i na samym początku konieczne jest sprawdzenie np. ścieżki projektu, połączeń z innymi bazami czy synchronizacji danych – jako formularz startowy wstawiam pusty formularz, który przy otwarciu wykonuje procedurę wykonującą te prace, a następnie – automatycznie otwiera formularz z menu;

    • opcje okna dokumentu:
      do wyboru są tu 2 opcje:
         nakładające się okna:

           dokumenty kartotekowe

    • kompaktuj przy zamknięciu
      Bardzo przydatna opcja. Po zaznaczeniu przy każdym zamknięciu baza jest kompaktowana i zdecydowanie zmniejsza swój rozmiar. Warto to robić, ale jest jeden zasadniczy warunek: trzeba mieć wyłączny dostęp do bazy, nikt inny w tym momencie nie może mieć jej otwartej, gdyż pojawi się błąd.
      Dla aplikacji pracujących w wieloostępie – opcja ta musi być wyłączona.

    • nawigacja

      opcja decydująca o tym, czy okno nawigacji powinno być widoczne.Moim zdaniem w większość przypadków powinno być wyłączone – standardowy użytkownik nie musi (a nawet nie powinien) mieć bezpośredniego dostępu do obiektów. W wielu moich projektach zdarza mi się wprowadzać to i inne zabezpieczenia, aby to uniemożliwić.

To takie podstawy i najważniejsze opcje. Pozostałe mają raczej mniejsze znaczenie, przynajmniej dla większości aplikacji w Accessie.


Kurs Access 2013 od podstaw

 

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

Funkcja DSum()

Funkcja DSum() jest jedną z funkcji agregatu domeny Accessa.  Zwraca sumę wartości określonego pola tabeli/kwerendy, dla rekordów spełniających określone warunki.
Jest podobna do funkcji Excela Suma.Jeżeli() i Suma. Warunków()

Ma trzy argumenty:

    • wyrażenie – nazwa kolumny, w której będą sumowane wartości, argument obowiązkowy
    • domena – nazwa zestawu rekordów, z którego mają być zlczone kolumny (np.nazwa tabeli czy kwerendy), argument obowiązkowy
    • kryteria – kryteria, które rekordy mają być zliczone

Jeżeli argument kryteria zostanie pominięty – zwrócona zostanie suma wartości wszystkich rekordów w danym zestawie.

Przykład takiej formuły z zastosowaniem funkcji DSum():

Wartosc: DSum(„Cena”;”TabelaKsiazki”;”Tytul like'” & „*#*” & „'”)

W tym przypadku – zwracana jest wartość sumy tych pozycji, które w tytule mają cyfrę.
Wykorzystany jest też operator Like.

Ponieważ funkcje agregatu domeny działają bardzo podobnie – warto też zajrzeć do przykładów w innych funkcjach tej grupy:
Funkcje agregatu domeny

Funkcja DSum() występuje i działa tak samo w Accessie (czyli w kreatorze wyrażeń) jak i kodzie VBA.


Kurs Access 2010 esencja

 

Funkcja DCount()

Funkcja DCount() jest jedną z funkcji agregatu domeny Accessa.  Zwraca ilość rekordów z tabeli/kwerendy spełniających określone warunki.

Ma trzy argumenty:

    • wyrażenie – nazwa kolumny, w której będą zliczane rekordy, argument obowiązkowy
    • domena – nazwa zestawu rekordów, z którego mają być zlczone kolumny (np.nazwa tabeli czy kwerendy), argument obowiązkowy
    • kryteria – kryteria, które rekordy mają być zliczone

Jeżeli argument kryteria zostanie pominięty – zwrócona zostanie liczba wszystkich rekordów w danym zestawie.

Przykład takiej kwerendy z zastosowaniem funkcji DCount():

A sama funkcja:

LiczRek: DCount(„Numerkatalogowy”;”TabelaKsiazki”;”datap is null”)

Najczęściej stosuje się tę funkcję w kwerendach, w których jest wiele rekordów, a pole oparte o funkcję Dcount() wykorzystuje inne pola kwerendy jako parametry:

Kolumna IleKsiazekAutora wskazuje ile pozycji danego autora  jest w tabeli (bez wykorzystania kwerendy grupującej). Formuła wygląda tak:

IleKsiazekAutora: DCount(„Numerkatalogowy”;”TabelaKsiazki”;”Autor='” & [Autor] & „'”)

Warto zwrócić uwagę, że ponieważ pole Autor jest polem typu String – konieczne jest dodanie apostrofu górnego przed i po parametrze [Autor] (). Dla daty – byłby to znak #.

Funkcja DCount() występuje i działa tak samo w Accessie (czyli w kreatorze wyrażeń) jak i kodzie VBA.


Kurs Access 2013 od podstaw