DLookUp z kilkoma parametrami

0

Witajcie, siedzę nad tym od dwóch dni i już wymiękam. Taka sytuacja: w formularzu [F_formularz_1] w kontrolce wpisuję:

=DLookUp("[rozlicz_miesiac]";"T_rozliczenia";"[rozlicz_umowa_ID] =" & [Formularze]![F_formularz_1]![umowa_ID]) --> DZIAŁA

=DLookUp("[rozlicz_miesiac]";"T_rozliczenia";"[rozlicz_urzadzenie_ID] =" & [Formularze]![F_formularz_1]![urzadzenie_ID]) --> DZIAŁA

Ale jak to połączę razem:

=DLookUp("[rozlicz_miesiac]";"T_rozliczenia";"[rozlicz_umowa_ID] =" & [Formularze]![F_formularz_1]![umowa_ID] & " And [rozlicz_urzadzenie_ID] = ' & [Formularze]![F_formularz_1]![urzadzenie_ID] '")

---> NIE DZIAŁA, pokazuje #Błąd,

Załączam przykładową bazę z tym problemem aby szybko dało się zorientować o co chodzi. Będę wdzięczny za podpowiedzi...

1

=DLookUp("[rozlicz_miesiac]";"T_rozliczenia";"[rozlicz_umowa_ID] =" & Nz([Formularze]![F_formularz_1]![umowa_ID];0) & " And [rozlicz_urzadzenie_ID] = " & Nz([Formularze]![F_formularz_1]![urzadzenie_ID];0))

0

Wielkie dzięki i szacun! Działa wyboronie. Domyślam się o co chodzi ale muszę jeszcze zgłębić temat.

1

Rzeczywiście mogłem napisać więcej, więc nadrabiam.

  1. W wyrażeniach używaj angielskich nazw: formularze na -> forms, raporty -> raports itd. To nie jest błąd, ale czasem będziesz chciał skorzystać z VBA i będziesz poprawiał podczas ctrl+c i ctrl+v

  2. w swoim wyrażeniu:
    =DLookUp("[rozlicz_miesiac]";"T_rozliczenia";"[rozlicz_umowa_ID] =" & [Formularze]![F_formularz_1]![umowa_ID] & " And [rozlicz_urzadzenie_ID] = ' & [Formularze]![F_formularz_1]![urzadzenie_ID] '")
    w filtrze zastosowałeś apostrof na wyrażenie w polu urzadzenie_ID, ale nie domknąłeś prawidłow, powinno być tak:
    =DLookUp("[rozlicz_miesiac]";"T_rozliczenia";"[rozlicz_umowa_ID] =" & [Formularze]![F_formularz_1]![umowa_ID] & " And [rozlicz_urzadzenie_ID] = ' & [Formularze]![F_formularz_1]![urzadzenie_ID] & "'")

Zwróć uwagę na końcówkę. Generalnie filtry na wartości liczbowe nie potrzebują apostrofów, dlatego je pominąłem

  1. Jeżeli uzywasz pola na formularzu to musisz upewnić się, ze nie ma ono wartości null (funkcja NZ) i nie jest ona pusta (tego w tym wyrażeniu nie sprawdzam) . Tu podstawiam 0, bo w przeciwnym razie po przetworzeniu dla nullowych pól filtr przyjmie wartość:
    [rozlicz_umowa_ID] = And [rozlicz_urzadzenie_ID] =
    Co nie jest poprawne i to jest głównie przyczyna wyświetlania błędu w polu z funkcją
0
Panczo napisał(a):

=DLookUp("[rozlicz_miesiac]";"T_rozliczenia";"[rozlicz_umowa_ID] =" & Nz([Formularze]![F_formularz_1]![umowa_ID];0) & " And [rozlicz_urzadzenie_ID] = " & Nz([Formularze]![F_formularz_1]![urzadzenie_ID];0))

Po poprawieniu ostatniego członu na wzór Twojego przykładu działa również bez funkcji Nz :

=DLookUp("[rozlicz_miesiac]";"T_rozliczenia";"[rozlicz_umowa_ID] =" & [Formularze]![F_formularz_1]![umowa_ID] & " And [rozlicz_urzadzenie_ID] = " & [Formularze]![F_formularz_1]![urzadzenie_ID])

Jeszcze raz wielkie dzięki!

---> Dopiero doczytałem wyjaśnienie :) Wszystko teraz jasne THX!

1 użytkowników online, w tym zalogowanych: 0, gości: 1