Applies ToAccess dla Microsoft 365 Access 2021 Access 2019

Wybierz dowolny temat poniżej, aby dowiedzieć się więcej o pracownikach w wersji Northwind Developer Edition. 

Pracownicy mają jeden formularz dzielony, który działa jako formularz listy i szczegółów. 

Użyj pozycji Pracownicy, aby dodawać nowych pracowników i aktualizować informacje o istniejących pracownikach. 

Wybierz kartę Pracownicy na Wstążce, aby wyświetlić pracowników w formularzu Lista pracowników (frmEmployeeList), który jest formularzem dzielonym z następującymi funkcjami: 

  • Górna część formularza to jeden widok jednego pracownika.

  • Dolna część formularza to widok arkusza danych dla wszystkich pracowników.

  • Wybranie pracownika w dowolnej części powoduje również ustawienie fokusu na tego pracownika w drugiej części formularza dzielonego.

  • Możesz dodawać, edytować lub usuwać pracowników w dowolnej części formularza dzielonego.

  • Użycie formularza dzielonego ze częścią widoku arkusza danych zakłada, że źródło rekordów formularza zawiera wiele rekordów.

Potencjalny wpływ formularza dzielonego na wydajność 

Większość deweloperów woli nie ładować niefiltrowanej tabeli lub zapytania jako źródła rekordów dla formularza. Filtrowanie formularza do jednego rekordu minimalizuje ilość danych do przeniesienia z tabeli do formularza. W przypadku lokalnej tabeli programu Access różnica między załadowaniem filtrowanego źródła rekordów a małym niefiltrowanym źródłom rekordów może być ledwo zauważalna. Ta wydajność zostanie jednak utracona, gdy tabele programu Access zostaną zastąpione zdalną bazą danych opartą na serwerze, taką jak SQL Server. 

Tabela pracowników w Northwind nie powinna rosnąć bardzo duże, więc jest kandydatem do niefiltrowanego źródła rekordów. Jednak formularze powiązane z innymi tabelami, takie jak szczegóły zamówień, które mogą zostać rozroszone do wielu tysięcy rekordów, nie są kandydatami do niefiltrowanego źródła rekordów.  

EDYTOWANIE PRACOWNIKÓW

Podczas dodawania lub edytowania rekordów w formularzu dzielonym użytkownicy mogą wprowadzać wartości w widoku formularza lub w widoku arkusza danych. Niektóre pola są wymagane, inne opcjonalne. Formularz sprawdza obecność wartości w wymaganych polach. Zobacz sekcję Wymagane sprawdzanie poprawności pola poniżej.

Tabele odnośników, listy wartości i kontrolki listy rozwijanej

  • Lista rozwijana Tytuły ogranicza wpisy do listy wstępnie wybranych tytułów. Tytuły znajdują się w tabeli odnośnika o nazwie Tytuły.

  • Niektóre oczekiwane opcje są już przechowywane w tabeli odnośnika, ale użytkownicy mogą dodawać nowe tytuły do tabeli odnośnika przy użyciu domyślnego zachowania programu Access dla pola kombi lub kontrolek listy rozwijanej.

    • Właściwość Ogranicz do listy pola kombi Tytuł jest ustawiona na wartość Tak, a formularz edycji tytułów jest identyfikowany we właściwości Formularz edycji elementów listy. Wybranie listy rozwijanej w formularzu spowoduje wyświetlenie ikony edycji na dolnej krawędzi.  ...

Kliknięcie ikony edycji powoduje otwarcie formularza edycji Tytuły (frmEmployeeTitles), w którym można zmieniać lub dodawać tytuły do listy zatwierdzonych tytułów. 

UWAGA:W większości środowisk produkcyjnych edytowanie lub dodawanie tytułów mogłoby być ograniczone do użytkowników z rozszerzonymi uprawnieniami.  

Self-Referential pola odnośników

Funkcja pracownika przedstawia koncepcję pola identyfikatora Self-Referential. Aby można było wspierać wyznaczenie przełożonego pracownika, tabela zawiera pole Identyfikator Nadzorczy z identyfikatorami pracownikówdla innych pracowników. Aby wyznaczyć przełożonego, w tym polu jest wprowadzany identyfikator pracownika dla innego pracownika. Program Access wymusza więzy integralności dla tej relacji.

Identyfikator Nadzorczy jest implementowany w formularzu pracownika jako lista rozwijana lub pole kombi; jego źródło_wierszy to filtrowany zestaw rekordów z tabeli Pracownik. Ponieważ jest to samoodwołanie, zapytanie musi wykluczyć własny identyfikator pracownika wybranego pracownika. Na przykład źródło wiersza identyfikatora nadzoru dla pracownika Karen Finster nie zawiera własnego identyfikatora pracownika Karen. Ona nie może być jej własnym przełożonym.

Pola i kontrolki załączników

Obrazy pracowników są przechowywane w polu załącznika w tabeli. Dodawanie nowych obrazów lub zmienianie istniejących obrazów przy użyciu domyślnego zachowania programu Access dla pól załączników.  ...

UWAGA: W tabeli Pracownik dodaliśmy pole załącznika, aby zilustrować tę funkcję w programie Access. Osadzone obrazy zwiększają rozmiar accdbs i dlatego nie są uważane za najlepsze rozwiązanie. Starannie oceń środowisko przed zaimplementowaniem go w aplikacji produkcyjnej. Preferowaną alternatywą jest folder sieciowy przechowujący wszystkie obrazy i link w polu tekstowym w tabeli zawierającej ścieżkę do obrazu, a nie pole Załącznik.

Podformularz z informacjami pokrewne

Podformularz Zamówienia (po prawej stronie formularza Pracownik) wyświetla ostatnie zamówienia (jeśli istnieją) obsługiwane przez pracownika. Podformularz zawiera listę zamówień w widoku arkusza danych, posortowanych od najnowszych do najstarszych. Aby edytować istniejące zamówienie dla tego pracownika, kliknij hiperlink Identyfikator zamówienia # w podformularzu Zamówienia.

Źródło rekordów formularza pracownika

Zapytanie o nazwie qryEmployees zwraca rekordy w formularzu. Używanie zapytania, a nie tabeli, jest zwykle uważane za najlepsze rozwiązanie. Zapytanie zwraca rekordy tylko z jednej tabeli. Ponadto zapytanie można parametralizować w celu ograniczenia liczby zwracanych rekordów. 

  • W klauzuli Select tego zapytania jest używany symbol wieloznaczny "*", który zwraca wszystkie pola z tabeli Pracownik.

  • Dwa pola obliczeniowe w zapytaniu zwracają pola Imię Nazwisko i Nazwisko, Imię.  

Obliczone wartości w kontrolkach

UWAGA: Pola obliczeniowe nie są przechowywane w tabeli. one jednak dostępne w źródle rekordów formularza.

Większość kontrolek w formularzu Pracownik jest włączona , więc można je zaznaczyć za pomocą myszy lub karty i nie są zablokowane , więc można je edytować. 

Oprócz wbudowanych zachowań programu Access, pod i funkcje języka VBA w formularzach, w kontrolkach formularzy i w modułach autonomicznych wykonują podstawową logikę wymaganą dla pracowników. W poniższej sekcji opisano funkcje i kod, który implementuje te funkcje. 

Akcja wbudowanej kontrolki

Domyślne zachowanie selektora rekordów formularza: 

  • Kliknięcie lewym przyciskiem myszy selektora rekordu z lewej strony formularza w widoku pojedynczym powoduje zapisanie bieżącego rekordu z wszelkimi zmianami. Zapisywanie przez kliknięcie lewym przyciskiem myszy selektora rekordu powoduje wyzwolenie odpowiednich pod i funkcji języka VBA.

  • Kliknięcie prawym przyciskiem myszy selektora rekordu z lewej strony formularza w widoku pojedynczym powoduje wyświetlenie menu umożliwiającego wykonywanie akcji, takich jak Wytnij, Kopiuj lub Wklej rekord. Usunięcie lub wycięcie rekordu powoduje uruchomienie funkcji EmployeeCanBeDeleted opisanej poniżej.

  • Selektory rekordów muszą być włączone dla formularza, aby to zachowanie domyślne było dostępne.  

Więzy integralności dla rekordów w formularzu

Więzy integralności zapobiegają usuwaniu pracowników, którzy mają rekordy podrzędne w powiązanych tabelach. Dlatego program Access zgłasza błąd, jeśli użytkownik próbuje usunąć rekord z rekordami podrzędnymi. W programie Access formularza Northwind employee program Access zastępuje ogólne, domyślne komunikaty o błędach dotyczące więzów integralności wiadomościami niestandardowymi.

Kod w procedurze usuwania formularza odpowiada na próby wycięcia rekordu z menu otwieranego prawym przyciskiem myszy lub usunięcia rekordu za pomocą klawisza Delete

Funkcja prywatna (EmployeeCanBeDeleted) sprawdza rekordy pokrewne tego pracownika w tabelach Zamówienia, Zamówienia zakupu, Pracownicy i Uprawnienia pracowników

Jeśli zostaną znalezione, ta funkcja pomija domyślny komunikat o błędzie i informuje użytkownika o przyczynie, dla którego nie można usunąć rekordu za pomocą tego samego ogólnego okna dialogowego, którego używa formularz Klient , aby powiadomić użytkownika o przyczynie, dla którego nie można usunąć klienta.

Sprawdzanie poprawności

Pracownicy wdrażają weryfikację i standardową obsługę błędów. Istnieją dwa typy sprawdzania poprawności kontrolek.

  • Wymagane pola

  • Formaty standardowe

Wymagane sprawdzanie poprawności pola

 Dla wszystkich pracowników są wymagane trzy pola:

  • Imię

  • Nazwisko

  • Stanowisko

W tej wersji dla dewelopera zdarzenie Formularza Przed aktualizacją sprawdza poprawność wymaganych pól. Jeśli użytkownik spróbuje zapisać rekord pracownika bez wartości dla co najmniej jednego wymaganego pola, które nie ma sprawdzania poprawności wartości, anuluje zapisywanie i wyróżni wszystkie wymagane pola, które nie mają wartości. W formularzu Pracownik w northwind wymagane sprawdzanie poprawności pola jest obsługiwane przez zdarzenie Przed aktualizacją formularza, a nie przez poszczególne kontrolki.

Zdarzenie Przed aktualizacją formularza pracownika sprawdza obecność wartości dla trzech wymaganych pól. Zapisanie nowego lub edytowanego rekordu pracownika powoduje wywołanie zdarzenia Przed aktualizacją formularza, które wywołuje funkcje publiczne, które sprawdzają obecność wymaganych wartości i reagują na nie oraz reagują na nie.

Moduł modValidation zawiera następujące funkcje:

  • Sprawdzanie poprawnościformatu

  • IsValidForm

  • HighlightInvalidControls

  • HighlightControl

  • ValidateForm_RemoveHighlights

Zarządzanie nowymi pracownikami

Kliknięcie przycisku Dodaj pracownika powoduje użycie btnNewEmployee_Click Private Sub w celu wykonania następujących czynności: 

  • zapisanie bieżącego rekordu i

  • ustawianie fokusu formularza na nowym rekordzie '

Symbol wieloznaczny a nazwane pola w zapytaniu wybierającym

Klauzula SELECT w klauzuli qryEmployees używa symbolu wieloznacznego "*" do zaznaczania wszystkich pól w tabeli. Projekt zapytania wieloznacznego automatycznie uwzględnia wszystkie nowo dodane pola z tabeli źródłowej, co nie jest możliwe w przypadku listy określonych pól. Z drugiej strony można wyświetlić określone pola, aby na przykład ograniczyć zwracany zestaw rekordów tylko do tych pól potrzebnych w formularzu tylko do wyświetlania.

Odpowiednie opcje projektu

Projekty powinny opierać się na odpowiednim podejściu do twoich wymagań. Chociaż, jeśli jest to możliwe, preferencje zwykle przejść do podejścia najmniej prawdopodobne, aby wymagać przyszłej konserwacji (czyli podejście symbol wieloznaczny). 

Skrzynki kombi powiązane z tabelami odnośników — dwie metody

Elementy pokrewne, takie jak przełożony pracownika, są wyświetlane w listach rozwijanych lub w polach kombi w formularzach. W zapytaniu źródłowym rekordów formularza potrzebny jest tylko klucz obcy dla identyfikatora nadzoru, ponieważ to pole jest powiązane z polem Klucz obcy (SupervisorID). W polu kombi jest również wyświetlana odpowiadająca jej wartość tekstowa.

Dwukolumnowa skrzynka kombi z ukrytą kolumną identyfikatora i widoczną kolumną Opis umożliwia pracę. W formularzu pracownika pole kombi Supervisor jest powiązane z prostym zapytaniem dwukolumnowym. Zobacz właściwość RowSource (ŹródłoNarzędzie dla inspektora).

W niektórych przypadkach jednak tabela odnośnika nie ma oddzielnego klucza podstawowego, dlatego sama wartość tekstowa jest kluczem podstawowym.

Jeśli lista możliwych wartości jest niewielka i wysoce stabilna, na przykład stanowisko pracownika, jest często nazywana domeną zamkniętą. Zmienianie lub dodawanie wartości w polu Tytuł nie jest typowe. Tabele odnośników zamkniętej domeny są kandydatami do jednokolumnowego podejścia do zapytania.

W formularzu Pracownik pole kombi Tytuł jest powiązane z jednokolumnowym zapytaniem w obszarze Tytuły. Zobacz właściwość RowSource (Źródło Wierszy ) dla pozycji Titles (Tytuły). 

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.

Społeczności pomagają zadawać i odpowiadać na pytania, przekazywać opinie i słuchać ekspertów z bogatą wiedzą.