Dodawanie nowego rekordu

W aplikacji Access dane są zapisywane w tabeli. Bezpośredni dostęp do tabel (zarówno w do jej projektu jak i zapisanych danych) powinien mieć jednak tylko administrator bazy. Normalny użytkownik zarówno edytować jak i dodawać/usuwać dane powinien tylko poprzez odpowiednio oprogramowane formularze.
Owszem, można normalny, oparty na kwerendzie lub tabeli formularz otworzyć w trybie dodawania, ale moim zdaniem nie jest to dobre wyjście. W takim formularzu dane trafiają od razu do tabeli, nie trzeba ich zapisywać i tracimy kontrolę nad poprawnością wprowadzanych danych. Oczywiście, można wstawić reguły poprawności, ale to, że w danym polu jakaś wartość nie da się wpisać, nie wyklucza wcale tego, że nowy rekord został dodany, choć z niepełnymi danymi. Bardzo szybko może spowodować to bałagan.

Zdecydowanie lepszym rozwiązaniem jest formularz bez źródła danych, z niezwiązanymi polami.
Na przykład dla takiej tabeli:

dobrym rozwiązaniem może być taki formularz dodawania

Warto każde pole odpowiednio sformatować i nadać własne nazwy. To ostatnie nie jest wprawdzie konieczne, ale standardowe nazwy typu Tekst123, Tekst378 utrudnią później pracę, nazwy typu TekstTytul, czy Dzial itp. zdecydowanie ułatwią odwoływanie się  do nich w kwerendach czy kodzie VBA. Można tu też wpisać wartości domyślne – np.Data przyjecia=Date() (czyli bieżąca data systemowa).

Oczywiście też przyciski Zapisz – do zapisania danych w tabeli oraz Anuluj – do zamknięcia formularza bez zapisywania.
A jak zapisać dane? Jest tu kilka sposobów. Można uruchomić np. taką kwerendę dołączającą:

kliknij obrazek, aby powiększyć kwerendę

Poszczególne pola kwerendy to np…:
Wyr1: [Formularze]![Formularz_DodajKiazke]![TAutor]
dołaczane do pola Autor i w analogiczny sposób – kolejne. Potem wystarczy uruchomić kwerendę i dane zostają zapisane w tabeli.
Np. przez takie makro:

Oczywiście wskazane jest tu dodanie sprawdzenia czy wszystkie pola obowiązkowe są wypełnione i ewentualnie jaki typ danych  jest wpisany. No i samo uruchomienie kwerendy dołączającej spowoduje wyświetlenie komunikatów ostrzegawczych – też powinny zostać wyłączone na czas uruchomienia kwerendy.

Zdecydowanie lepszym sposobem na zapisanie danych z takiego formularza jest jednak procedura VBA.
Przypisujemy wartości poszczególnych pul formularza do zmiennych, sprawdzamy ich poprawność, a następnie wykonujemy kod SQL oparty na kodzie kwerendy dołączającej.
Przykładowy kod w tym przypadku może wyglądać tak:

Private Sub PolecenieZapisz_Click()
Dim JAutor As String
Dim JTytul As String
Dim JDzial As Long
Dim JCena As Currency
Dim JDataP As Date
Dim JBest As Boolean
Dim Kwera As String
If IsNull(Me.TAutor) Then
MsgBox “Brak autora”, vbCritical, “Brak wymaganych danych”
Me.TAutor.SetFocus
Exit Sub
Else
JAutor = Me.TAutor
End If
If IsNull(Me.TTytul) Then
MsgBox “Brak tytułu”, vbCritical, “Brak wymaganych danych”
Me.TTytul.SetFocus
Exit Sub
Else
JTytul = Me.TTytul
End If
If IsNull(Me.TDzial) Then
MsgBox “Przypisz dział”, vbCritical, “Brak wymaganych danych”
Me.TDzial.SetFocus
Exit Sub
Else
JDzial = Me.TDzial
End If
JCena = Nz(Me.TCena, 0)
JDataP = Nz(Me.TData, Date)
JBest = Nz(Me.TBestseller, False)
Kwera = “INSERT INTO TabelaKsiazki ( Autor, Tytul, Dzial, Cena, DataP, Bestseller ) ” & _
“SELECT ‘” & JAutor & “‘ AS Wyr1, ‘” & JTytul & “‘ AS Wyr2, ” & JDzial & ” AS Wyr3, ” & JCena & ” AS Wyr4, #” & JDataP & “# AS Wyr5, ” & JBest & ” AS Wyr6;”
DoCmd.SetWarnings False
DoCmd.RunSQL Kwera
DoCmd.SetWarnings True
DoCmd.Close
End Sub

Moją ulubioną metodą dopisywania rekordów jest natomiast Recordset i Add.New. To już jednak temat na zupełnie oddzielną  notkę.

 

Pole kombi w formularzu

Pole kombi to istotny i często stosowany element formularza. Odpowiednio zdefiniowany pozwala na przypisanie do pola konkretnego elementu z listy, a tym samym zabezpiecza przed błędami przy wpisywaniu, literówkami itp. Poprzez pole kombi można także włączyć/przełączyć filtr i wyświetlić wybrane dane.

Pole kombi to obiekt, ma więc swój arkusz właściwości, a w kodzie VBA – metody i właściwości.

Można tu ustawić wszystkie parametry pola, zdefiniować go graficznie.
Z punktu widzenia funkcjonalności – najważniejsze parametry to:

    • źródło wierszy
      kolumna lub kolumny tabeli/kwerendy będąca źródłem wierszy widocznych po rozwinięciu pola kombi;
    • liczba kolumn
      w polu kombi może być wyświetlanych kilka kolumn każdego rekordu źródła danych. Standardowo jest to 1;
    • kolumna związana
      jeżeli liczba kolumn jest większa od 1, do dalszego zapisania/wykorzystania może być przekazana wartość tylko jednej z  nich. Tu wpisujemy numer kolumny związanej.

No i oczywiście cała lista zdarzeń związanych z polem kombi:

To już jednak temat na  zupełnie oddzielna notki. Tym bardziej, że każde z tych zdarzeń niesie sporo możliwości.


Kurs Access - formularze i raporty

Formularz ciągły

Formularz ciągły to formularz, w którym na jednym ekranie widoczne są  pola z wielu rekordów, nie tylko z jednego jak w przypadku formularza pojedynczego.
Jeżeli przy tworzeniu formularza korzystamy z Kreatora formularzy,  na karcie Tworzenie, w grupie opcji wybieramy Więcej formularzy → Wiele elementów.

Można też przestawić widok formularza na ciągły w Arkuszu właściwości, zmieniając widok domyślny formularza:

Tworzenie formularza ciągłego:

Efekt końcowy takiego formularza ciągłego może wyglądać np. tak:

Warto tu też zauważyć, że poszczególne rekordy na przemian mają odróżniające się kolory. Można je zmienić w widoku projektu na karcie Formatowanie, w grupie opcji Tło:

Można tam wybrać dowolny kolor lub w ogóle usunąć wyróżniania wierszy.


 

 

 

Widoki formularza

Każdy formularz może występować w jednym z  kilku widoków:

    • widok formularza
      W tym widoku formularz widoczny jest tak, jak widzi go użytkownik (jest to widok domyślny formularza). Można tu tylko wprowadzać wartości w dostępne pola, nie da się edytować jego struktury czy formantów

    • widok układu
      Widok układu formularza pozwala na obejrzenie go tak, jak widzi go użytkownik, ale jest możliwość ograniczonej zmiany jego układu. Poszczególne pola są wypełnione danymi, ale można zmienić ich format, rozszerzyć itp.

    • widok projektu
      Służy do projektowania formularza czyli wstawiania formantów, formatowania ich itd. W tym widoku nie są widoczne dane, a jedynie ich definicje czy nazwy pól źródła formularza.

Dla formularzy ciągłych dostępne są także widoki arkusza, tabeli i wykresu przestawnego.


 

 

 

Pole związane, niezwiązane

Każdy formularz i raport standardowo jest oparty o tabelę lub kwerendę. Widać to najlepiej w linii Źródło rekordówArkuszu właściwości.

Jeżeli źródło danych nie jest puste – poszczególne pola tego formularza/raportu odpowiadają konkretnym polom tego źródła.
W widoku projektu wygląda to tak:

Nie wszystkie jednak pola muszą być powiązane ze źródłem, mogą być również niezwiązane.

Pola mogą być też oparte o formułę wstawioną przez Konstruktora wyrażeń, np. data 

Warto tu pamiętać, że wstawiając czy edytując wartości w polach związanych, od razu zmieniamy je w tabeli, nic nie trzeba dodatkowo zapisywać jak na przykład w Excelu.

Edycja pola niezwiązanego nie wywołuje takiego efektu, ale jednocześnie wprowadzone zmiany widoczne są tylko na ekranie. Zamknięcie formularza powoduje ich utratę, chcąc je zachować, trzeba je dodatkowo zapisać w tabeli np.kodem VBA.
Ja stosuję to rozwiązanie przy dopisywaniu nowych rekordów. Umożliwia to jeszcze przed zapisaniem sprawdzenie, czy wszystkie wymagane pola są prawidłowo wypełnione, a jeżeli nie – zmuszenie użytkownika do ich uzupełnienia czy korekty. Najczęściej robię to na zupełnie oddzielnym, niezwiązanym formularzu


 

Kurs Access - formularze i raporty

 

Wstawianie przycisku polecenia do formularza lub raportu

Wstawianie pola tekstowego do formularza:

W identyczny sposób wstawia się przycisk polecenia do raportu, ale będzie on widoczny tylko w widoku Raportu.


 

 

 

Wstawianie pola tekstowego w formularzu lub raporcie

Wstawianie pola tekstowego do formularza:

W identyczny sposób wstawia się pole tekstowe w raporcie.


Egzamin Specjalista MS Access

 

 

Formularz startowy

Tworząc aplikację Accessa, z której będą korzystać inni użytkownicy (w tym także nieznający Access), musimy pamiętać, że aplikacja musi być przyjazna i łatwa w obsłudze.
Standardowy widok po otwarciu bazy to np.:

Tu akurat baza nie ma wielu obiektów, więc teoretycznie można otworzyć formularz bez parametrów wejściowych. Można jednak także otworzyć każdy inny obiekt np. tabelę lub kwerendę. Nie zawsze (a najczęściej nigdy) jest to jednak zalecane. Wprawdzie sam pasek nawigacji można schować czy ukryć, ale przy bardziej rozbudowanych bazach, z formularzami wymagającymi parametrów wejściowych, mogą pojawić się problemy.

Rozwiązaniem takiej sytuacji jest ustawienie formularza startowego, który będzie automatycznie otwierany po wejściu do bazy.
W karcie Plik wybieramy Opcje

Następnie wybieramy Bieżąca baza danych i wybieramy formularz, który ma się pojawiać po otwarciu bazy.

I już.


Kurs Access 2010 esencja

 

 

Kreator tworzenia formularzy

Kreator tworzenia formularzy to narzędzie tworzące nowy formularz w aplikacji.

Ja osobiście rzadko z niego korzystam – zdecydowanie bardziej wolę sama zdefiniować wszystkie elementy formularza. Na pewno jednak może się przydać początkującym użytkownikom Accessa – od czegoś trzeba zacząć.


Kurs Access - formularze i raporty

 

 

Formularze

Formularze Accessa służą o odczytu, edycji, wprowadzania i usuwania danych. Użytkownik aplikacji zbudowanej w Accessie nie powinien w zasadzie robić tego bezpośrednio w tabelach, a właśnie w formularzach. Tym bardziej, że pozwalają one nie tylko na znacznie przyjaźniejszą formę graficzną, ale przede wszystkim – umożliwiają wprowadzanie danych jednocześnie do kilku różnych, powiązanych z sobą tabel. Formularze można także oprogramować (czy to makrami czy procedurami VBA), dzięki czemu otwiera się cały szereg możliwości ułatwiających pracę w aplikacji.

Podstawowe typy formularzy:

    • formularz pojedynczy – na ekranie widoczny jest jeden rekord
    • formularz ciągły – na ekranie widocznych jest wiele rekordów
    • formularz dzielony – w jednej części formularza widoczne są pola jednego rekordu, w drugiej części – wszystkie rekordy

Tworząc formularze – z reguły nigdy nie opieram ich bezpośrednio o tabelę. Nigdy nie wiadomo, czy nie pojawi się potrzeba rozbudowy,  więc zdecydowanie lepszym rozwiązaniem jest wykorzystanie tu kwerend.
Formularz może być też niezwiązany czyli bez źródła danych. Taką formę stosuję bardzo często do wprowadzania nowych danych. Przed zapisaniem ich potem do tabel – mam możliwość dokładnego ich sprawdzenia i przy stwierdzeniu błędów, wyświetlenia komunikatu i przerwania procedury. Sprawdza się się w praktyce.


Kurs Access - formularze i raporty

%d bloggers like this: