SQL WHERE Klausel in Makro

ACCESS 2003 unter Win XP prof

Liebe Experten,
ich möchte in einem Makro im Feld Bedingung folgendes angeben:

WHERE([UKU_ZUS]) = „aa“

Beim Ausführen bekomme ich die Fehlermeldung „Undefinierte Funktion WHERE in Ausdruck“

Wie ist das zu verstehen?

Vielen Dank,
Andreas

Hallo, Andreas!

Wie ist das zu verstehen?

Das Bedingungsfeld im Makro muss schon einen Wahrheitswert zurückliefern und darüberhinaus als Funktion bekannt sein. Mir ist nicht ganz klar, was Du machen willst. Entweder gehört die Bedingung in die entsprechende Abfrage, oder Du müsstest via DCOUNT o. ä. prüfen, ob Datensätze vorhanden sind, um eine andere Aktion durchzuführen.

Gruß, Manfred

Hallo Manfred,

ich möchte in einem Formular über einen Button ein Makro ausführen, das mir eine Abfrage öffnet, die nur die Datensätze anzeigt, die im Feld UKU_ZUS mit dem aktuellen Datensatz übereinstimmen…

Hab ich mich da vergaloppiert?

Gruß
Andreas

Hallo, Andreas!:

Das Bedingungsfeld im Makro muss schon einen Wahrheitswert
zurückliefern und darüberhinaus als Funktion bekannt sein. Mir
ist nicht ganz klar, was Du machen willst. Entweder gehört die
Bedingung in die entsprechende Abfrage, oder Du müsstest via
DCOUNT o. ä. prüfen, ob Datensätze vorhanden sind, um eine
andere Aktion durchzuführen.

Gruß, Manfred

Hallo, Andreas!

ich möchte in einem Formular über einen Button ein Makro
ausführen, das mir eine Abfrage öffnet, die nur die Datensätze
anzeigt, die im Feld UKU_ZUS mit dem aktuellen Datensatz
übereinstimmen…

Hab ich mich da vergaloppiert?

Jein. Wenn Dein Textfeld, das passen soll, UKU_ZUS heißt, kannst Du in der Abfrage direkt in der Bedingung für das entsprechende Feld [Formulare]![DeinFormularname]![UKU_ZUS] und dann das Makro ohne Bedingung aufrufen. Du könntest die Abfrage aber auch direkt per VBA öffnen…

Gruß, Manfred

Hallo Manfred,

das habe ich umgesetzt, vielen Dank! Nur wie erkennt das Makro nun, daß ich nur die Datensätze mit übereinstimmendem Feld [UKU_ZUS] sehen möchte? Beim Versuch bleibt das Formular nämlich leer…Wie wäre denn die Vorgehensweis emit VBA?

Gruß
Andreas

Jein. Wenn Dein Textfeld, das passen soll, UKU_ZUS heißt,

kannst Du in der Abfrage direkt in der Bedingung für das
entsprechende Feld [Formulare]![DeinFormularname]![UKU_ZUS]
und dann das Makro ohne Bedingung aufrufen. Du könntest die
Abfrage aber auch direkt per VBA öffnen…

Gruß, Manfred

Hallo Manfred,

das habe ich umgesetzt, vielen Dank! Nur wie erkennt das Makro
nun, daß ich nur die Datensätze mit übereinstimmendem Feld
[UKU_ZUS] sehen möchte? Beim Versuch bleibt das Formular
nämlich leer…Wie wäre denn die Vorgehensweis emit VBA?

Hallo,

wenn die Abfrageergebnisse in einem Formular (die Eigenschaft „Datenherkunft“ des Forms enthält den Abfragenamen) angezeigt werden sollen (was eh besser ist als eine Abfrage in der Abfrageansicht zu öffnen), dann schreib als Klick-Ereignisprozedur für den Button etwa folgenden Code (und vergiß die besch… Makros):

Sub btnButton1_Click()
Docmd.Openform „DeinFormular“,"[FeldInDerAbfrage]=" & nz(Me!UKU_ZUS,0)
End Sub

falls das Tabellen/Abfragefeld „FeldInDerAbfrage“ vom Datentyp Zahl, long ist.

Hat es den Datntyp Text , dann muß es so aussehen:

Sub btnButton1_Click()
Docmd.Openform „DeinFormular“,"[FeldInDerAbfrage]=’" & nz(Me!UKU_ZUS,"") & „’“
End Sub

Die nz()-Funktion dient zum Abfangen von Fehlern, die auftauchen, falls das Form-Feld Me!UKU_ZUS keinen Wert hat, also leer ist.

Hallo Andreas,

müsste wohl eher

WHERE([UKU\_ZUS] = "aa")

lauten.

MfG Georg V.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

in einem Makro im Feld Bedingung folgendes angeben:

WHERE([UKU_ZUS]) = „aa“

Beim Ausführen bekomme ich die Fehlermeldung „Undefinierte
Funktion WHERE in Ausdruck“

müsste wohl eher

WHERE([UKU_ZUS] =
„aa“)

lauten.

Hallo,
würde eher sagen, „Where“ kann nicht in einer Makro-Bedingung verwendet werden. „Where“ ist SQL-spezifisch. Der Bedingungsausdruck selber kann sich nur auf VBA-Umgebung beziehen und nicht als Kriterium für eine Abfrage verwendet werden.

Gruß
Franz, DF6GL

Hallo und danke!
Das klappt jetzt so, wie ich es wollte. Hatte mich erst noch bei den Anführungszeichen vertan, aber Umwandlung in Schriftart Courier hat das aufgedeckt…:smile:
Gruß
Andreas

Hallo,

wenn die Abfrageergebnisse in einem Formular (die Eigenschaft
„Datenherkunft“ des Forms enthält den Abfragenamen) angezeigt
werden sollen (was eh besser ist als eine Abfrage in der
Abfrageansicht zu öffnen), dann schreib als
Klick-Ereignisprozedur für den Button etwa folgenden Code (und
vergiß die besch… Makros):

Hat es den Datntyp Text , dann muß es so aussehen:

Sub btnButton1_Click()
Docmd.Openform „DeinFormular“,"[FeldInDerAbfrage]=’" &
nz(Me!UKU_ZUS,"") & „’“
End Sub

Die nz()-Funktion dient zum Abfangen von Fehlern, die
auftauchen, falls das Form-Feld Me!UKU_ZUS keinen Wert
hat, also leer ist.