Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

DLOOKUP mit Textfeld als Kriterium (Access 2007)

377 views
Skip to first unread message

rwe-medi...@gmx.de

unread,
Jun 13, 2016, 9:05:11 AM6/13/16
to
Hallo zusammen.

Seit Tagen durchsuche ich schon das Internet nach einer Lösung, konnte aber bis jetzt nicht das finden was mir geholfen hätte, deshalb jetzt ein eigenes Posting:

Ich möchte feststellen ob mein in ein Textfeld eines Formulars eingegebener Wert (eine Zahl) schon existiert.

Tabelle heißt: Sonderausweise
Das Tabellenfeld das durchsucht werden soll heißt: Sonderausweisnummer

Das Formular in dem das Textfeld steht heißt: Frm_POP_Sonderausweisnummer_manuell
und schließlich das Textfeld: SAWAM

Jetzt habe ich versucht das auf alle möglichen Wege abzufragen, aber ich komme mit der Syntax des DLOOKUP Befehls oder auch DCOUNT nicht zurecht.

If DCount([Sonderausweisnummer], "[Sonderausweise]", "[Sonderausweisnummer] = '" & Forms!Frm_POP_Sonderausweisnummer_manuell.SAWMA.Value & "'") > 0 Then

geht nicht Laufzeitfehler kann Ausdruck nicht finden.

If Not IsNull(DLookup("Forms!Frm_POP_Sonderausweisnummer_manuell!SAWMA", "Sonderausweise", "Forms!Frm_POP_Sonderausweisnummer_manuell!SAWMA = " & Forms!Frm_POP_Sonderausweisnummer_manuell!SAWMA)) Then

geht auch nicht.

Kann mir jemand das so schreiben daß es geht? Die Sache mit den " und ' habe ich echt noch nicht wirklich verstanden.

Ralf

Karl Donaubauer

unread,
Jun 13, 2016, 9:39:35 AM6/13/16
to
Hallo!

Rwe-medienservice ha scritto:
> ...
> If DCount([Sonderausweisnummer], "[Sonderausweise]", "[Sonderausweisnummer] = '" & Forms!Frm_POP_Sonderausweisnummer_manuell.SAWMA.Value & "'") > 0 Then
>
> geht nicht Laufzeitfehler kann Ausdruck nicht finden.

> ...


Das erste Argument (Feldname) gehört auch in Anführungszeichen:

If DCount("Sonderausweisnummer", "Sonderausweise", "Sonderausweisnummer
= '" & Forms!Frm_POP_Sonderausweisnummer_manuell!SAWMA & "'") > 0 Then

--
Servus
Karl
*********
Access FAQ: http://www.donkarl.com

rwe-medi...@gmx.de

unread,
Jun 13, 2016, 10:08:59 AM6/13/16
to
Danke erst mal für die schnelle Antwort.
Deine Seite ist mir wohlbekannt, war da schon öfter, nur diesmal hats nicht geholfen.

Jetzt schreibt er
Laufzeitfehler 3464 Datentypenkonflikt im Kriteriumsausdruck

Also schein noch was mit den vielen Hochkommas nicht zu stimmen:

Hier der Code:

If DCount("[Sonderausweisnummer]", "[Sonderausweise]", "[Sonderausweisnummer] = '" & Forms!Frm_POP_Sonderausweisnummer_manuell.SAWMA.Value & "'") > 0 Then

Hast du die eckigen Klammern mit Absicht weggemacht?

Auch dieser Code zeigt den gleichen Fehler:

If DCount("Sonderausweisnummer", "Sonderausweise", "Sonderausweisnummer = '" & Forms!Frm_POP_Sonderausweisnummer_manuell!SAWMA & "'") > 0 Then


Kann allerdings erst morgen wieder antworten, muß leider für heute aufhören.
Danke erst mal für deine Hilfe

Gruß
Ralf

Karl Donaubauer

unread,
Jun 13, 2016, 10:37:52 AM6/13/16
to
Hallo!

Rwe-medienservice ha scritto:
> ...
> Laufzeitfehler 3464 Datentypenkonflikt im Kriteriumsausdruck
>
> Also schein noch was mit den vielen Hochkommas nicht zu stimmen:
> ...
> Hast du die eckigen Klammern mit Absicht weggemacht?

Joo. Die braucht man nicht, wenn man Feldnamen in Anführungszeichen
setzt, solange sie keine Leer- oder Sonderzeichen enthalten.

> Auch dieser Code zeigt den gleichen Fehler:
>
> If DCount("Sonderausweisnummer", "Sonderausweise", "Sonderausweisnummer = '" & Forms!Frm_POP_Sonderausweisnummer_manuell!SAWMA & "'") > 0 Then
>
> Kann allerdings erst morgen wieder antworten, muß leider für heute aufhören.
> Danke erst mal für deine Hilfe

Kann es sein, dass dein Feld Sonderausweisnummer in der Tabelle einen
nummerischen Datentyp hat und daher gar keine Hochkommas braucht (die
brauchen nur Texte)? In dem Fall einfach weglassen, also:

If DCount("Sonderausweisnummer", "Sonderausweise", "Sonderausweisnummer
= " & Forms!Frm_POP_Sonderausweisnummer_manuell!SAWMA) > 0 Then


Falls das Feld doch ein Texttyp ist, dann teste mit konkreten Werten wie:

If DCount("Sonderausweisnummer", "Sonderausweise", "Sonderausweisnummer
= '" & "xyz" & "'") > 0 Then

... um zu sehen, ob es am Formularbezug liegt.

rwe-medi...@gmx.de

unread,
Jun 14, 2016, 4:02:25 AM6/14/16
to
Danke das wars HEREKA es geht!
Klasse, nach vielen Tagen recherche funktioniert es endlich.

DANKE für deine Hilfe!

If DCount("Sonderausweisnummer", "Sonderausweise", "Sonderausweisnummer = " & Forms!Frm_POP_Sonderausweisnummer_manuell!SAWMA) > 0 Then

diese Zeile hat endlich funktioniert.


Gruß
Ralf
0 new messages