Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: fred-neumann am Juli 15, 2016, 10:56:06

Titel: externe Operanten im Kriterium
Beitrag von: fred-neumann am Juli 15, 2016, 10:56:06
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?

Titel: Re: externe Operanten im Kriterium
Beitrag von: MaggieMay am Juli 15, 2016, 11:02:37
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?
Titel: Re: externe Operanten im Kriterium
Beitrag von: fred-neumann am Juli 15, 2016, 11:05:39
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
Titel: Re: externe Operanten im Kriterium
Beitrag von: fred-neumann am Juli 15, 2016, 11:08:33
... ich möchte nur -anstatt jedesmal die Operanten im Entwurf ändern - dies über das Formular machen.
Titel: Re: externe Operanten im Kriterium
Beitrag von: Lachtaube am Juli 15, 2016, 11:39:20
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.
Titel: Re: externe Operanten im Kriterium
Beitrag von: MaggieMay am Juli 15, 2016, 11:41:20
"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?
Titel: Re: externe Operanten im Kriterium
Beitrag von: fred-neumann am Juli 15, 2016, 12:05:10
... 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.
Titel: Re: externe Operanten im Kriterium
Beitrag von: MaggieMay am Juli 15, 2016, 13:38:20
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.
Titel: Re: externe Operanten im Kriterium
Beitrag von: fred-neumann am Juli 15, 2016, 13:59:58
.. das ist es!
Danke MaggieMay