Podczas projektowania formularza w programie Access może być konieczne wyświetlenie wartości z tabeli lub zapytania innego niż ta, z którą formularz jest powiązany. Załóżmy na przykład, że masz formularz Produkty powiązany z tabelą Produkty. Jednak po zaprojektowaniu formularza należy określić, że w formularzu ma być wyświetlana nazwa kontaktu dostawcy dla każdego produktu — dane znajdujące się w tabeli o nazwie Dostawcy. W poniższej procedurze przedstawiono sposób wykonywania tego zadania za pomocą funkcji DLookup . Możesz zmienić wyrażenie w kroku 6, aby dopasować je do własnych danych.
Dodawanie pola tekstowego
-
W okienku nawigacji kliknij prawym przyciskiem myszy formularz, który chcesz zmienić, a następnie w menu skrótów kliknij polecenie Widok projektu .
-
Na karcie Projektowanie w grupie Kontrolki kliknij pozycję Pole tekstowe.
-
Zlokalizuj obszar w formularzu, w którym chcesz dodać kontrolkę, a następnie przeciągnij wskaźnik w formularzu, aby utworzyć pole tekstowe.
-
Kliknij prawym przyciskiem myszy to pole tekstowe, a następnie w menu skrótów kliknij polecenie Właściwości.
-
W arkuszu właściwości kliknij kartę Wszystkie .
-
Ustaw właściwość Źródło kontrolki na następującą wartość:
=DLookup("[Nazwa_kontaktu]";"[Dostawcy]";"[Identyfikator_dostawcy]=" & Forms! Produktów! ID_dostawcy)
-
Zapisz zmiany w formularzu, a następnie zamknij arkusz właściwości.
To wyrażenie przeszukuje tabelę Dostawcy i zwraca nazwę kontaktu dostawcy, którego identyfikator dostawcy odpowiada wartości kontrolki ID_dostawcy w formularzu Produkty. Zwróć uwagę, jak operator & służy do konstruowania trzeciego argumentu funkcji DLookup (trzeci argument to "[Identyfikator_dostawcy]=" & Forms! Produktów! ID_dostawcy). Typowym błędem, który należy unikać, jest umieszczanie cudzysłowów wokół całego argumentu, a nie wokół samego tekstu poprzedzającego operator & .
Uwaga: Alternatywą dla korzystania z funkcji DLookup jest utworzenie nowego zapytania źródłowego w celu uwzględnienia tylko potrzebnych informacji. Używanie zapytania jest często bardziej efektywne niż korzystanie z funkcji.