Moin,- wieder so ne Frage ..
meine Abfrage selektiert u.a. aus einem Wert im geöffneten Formular "Blatt_1" folgend:
[Forms]![Blatt_1]![Wert1]
.. weiter habe ich im Formular "Blatt_1" ein Listenfeld "Liste1" mit zwei Einträgen (Operanten):
>=
<=
Frage:
Wie baue ich meinen Ausdruck auf, daß durch Auswahl im Formular, mein Abfrage entweder
>=[Forms]![Blatt_1]![Wert1]
oder
<=[Forms]![Blatt_1]![Wert1]
selektiert?
Hallo,
du kannst einen Vergleichsoperator nicht in Form eines Parameters in eine Abfrage integrieren, du kannst lediglich den SQL-Code der Abfrage zur Laufzeit ändern.
Was ist der Auslöser dieser Aktion? Gibt es bereits VBA-Code dazu?
Moin Maggy,
... "lediglich den SQL-Code der Abfrage zur Laufzeit ändern" < verstehe ich leider nicht. Maggy, was meinst du mit Auslöser??
Kein vba-code
... ich möchte nur -anstatt jedesmal die Operanten im Entwurf ändern - dies über das Formular machen.
Hallo,
schalte einmal die Abfrage in die SQL-Ansicht um. Dann siehst Du im Text auch den Vergleichsoperator.
Die Aufgabe lautet nun, durch geschicktes Parsen dieses Textes im Nach Aktualisierung Ereignis des Listenfelds den Text des Operators durch den ausgewählten Text im Listenfeld zu ersetzen. Das würde dem manuellen Editieren entsprechen.
Einfacher (nur Text aneinanderreihen; Parsen und Ersetzen entfällt) wäre es, den kompletten SQL-Text der Abfrage im o.g. Ereignis immer komplett neu zu schreiben.
"Auslöser" könnte bspw. der Klick auf eine Befehlsschaltfläche sein.
Beispiel:
Private Sub btnSetQuery_Click()
CurrentDB.Querydefs("deineAbfrage").SQL = "Select * From tabelle Where tabWert " & Me!liste & Me!Wert1
End Sub
Wo kommt denn diese Abfrage zum Einsatz?
... im Formular "Blatt_1" habe ich ein Unterformular "Blatt_2", welches sich auf die Abfrage "Abfrage_1" stützt.
.. dachte, wenn ich mein Listenfeld entsprechend ändere, dann aktualisier, daß das gewünschte Ergebnis erscheint.
PS: Anbei habe ich mal schnelle den Aufbau in die DB gelegt.
Das ist ja noch viel einfacher, da brauchst du nur das Unterformular zu filtern.
Private Sub Liste4_AfterUpdate()
Me.Blatt_2.Form.Filter = "Wert_1" & Me.Liste4 & Me.Wert_1
Me.Blatt_2.Form.FilterOn = True
End Sub
Das Textfeld zur Eingabe des Wertes fehlt allerdings noch im Hauptformular.
.. das ist es!
Danke MaggieMay