Kriterium Abfrage per VBA ändern

Guten Tag
in einem Formular habe ich ein ungebundenes Feld „Auswahl“.
In dieses Feld soll eine Zahl geschrieben werden, die beim Klicken auf eine Befehlsschaltfläche darunter das Feld „VP“ der Tabelle „VP def“ in der Abfrage „Abfrage VP“ ändert und dann diese öffnet. Mein Code funktioniert nicht. Kann mir jemand helfen? Danke!

Private Sub Befehl30_Click()

Dim a As Variant

a = („Abfrage VP“, "SELECT * FROM VP def WHERE VP LIKE „Auswahl“)
DoCmd.OpenQuery „Abfrage VP“

End Sub

Private Sub Befehl4_Click()

End Sub

Hallo Peter,

du versuchst eine fertige Abfrage zu manipulieren. Das geht so nicht und ist auch nicht nötig.

  • Öffne die Abfrage im Bearbeitungsmodus

  • in der Spalte mit VB

  • gibst du als Kriterium einfach an:
    wie Formulare!DeinFORMULAR_NAME.DeinFeld_Name

  • speichern

  • fertig

immer wenn nun die Abfrage aufgerufen wird, wird nun der Inhalt des Feldes als Kriterium berücksichtigt.

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

Hallo,

was die eigentliche Aufgabe, bzw. was willst Du insgesamt erreichen?

So wie Du es machen willst, geht es gar nicht.

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Ich wollte es so wie in diesem Beispiel von access-home:
http://www.access-home.de/htm/dbs/97abfrageaendern.htm

aber nur der obere Teil! Leider bringe ich es nicht fertig, den Code so abzuändern, dass es in meiner Datenbank funktioniert. Eine Sortierung brauche ich nicht. Meine Objekte sind:
Tab: „VP Def“. Abfrage: „Abfrage VP“ Feld: „VP“

Hallo,

sorry, ich versteh immer noch nicht die Aufgabe.

Bitte beantworte meine Frage, sonst kann ich nicht helfen.

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Also ich habe eine Abfrage: „Abfrage VP“. Da gibt es ein Feld „VP“ von der Tab „VP def“ (und andere Felder natürlich). Im Feld „VP“ habe ich das Kriterium 15.
Ich will nun ein Formular, in dem ich ein neues Kriterium für das Feld „VP“ eingeben kann, z.B. 14. Dann sollte es ein Enter-Button geben, und wenn ich den anklicke, soll die „Abfrage VP“ mit allen Feldern mit dem neuen Kriterium 14 im Feld „VP“ starten.

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

Hallo,

Also ich habe eine Abfrage: „Abfrage VP“. Da gibt es ein Feld
„VP“ von der Tab „VP def“ (und andere Felder natürlich). Im
Feld „VP“ habe ich das Kriterium 15.

WO wird diese Abfrage verwendet??

Ich will nun ein Formular, in dem ich ein neues Kriterium für
das Feld „VP“ eingeben kann, z.B. 14. Dann sollte es ein
Enter-Button geben, und wenn ich den anklicke, soll die
„Abfrage VP“ mit allen Feldern mit dem neuen Kriterium 14 im
Feld „VP“ starten.

WARUM eine ABFRAGE starten??

Ich nehme mal an, Du willst die in einem Formular angezeigten Datensätze nach dem bestimmten Kriterium filtern.

Dann schreib in die Eigenschaft „Datenherkunft“ des Forms den Tabellennamen („VP def“) , aus deren Feldern die Daten im Form angezeigt werden. (btw: Sonder-und Leerzeichen in Tabellen- und sonstigen Objektnamen führen in den meisten Fällen zu Komplikationen, also auf solche Zeichen und auch auf reservierte Wörter verzichten)

Erstell ein zusätzliches ungebundenes Textfeld („txtSuchen“) und einen Button „btnSuchen“ mit dieser Ereignisprozedur („beim Klicken“):

Sub btnSuchen_Click()
Me.Filter="VP = " & nz(Me!txtSuchen,0)
Me.Filteron=true
End Sub

Soll statt einer Filterung die Datenherkunft des Forms manipuliert werden (Abfrage statt Tabelle), dann etwa so:

Sub btnSuchen_Click()
Me.Recordsource ="Select * from [VP def] Where VP = " & nz(Me!txtSuchen,0)
End Sub

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Hallo
Vielen Dank für deine ausführliche Antwort.
Du hast recht, warum eine Abfrage starten. Im Formular geht es viel einfacher.
Es funktioniert wie von dir beschrieben. Herzlichen Dank