Abfragekriterium per VBA ändern (Access)

klausklausklaus, Sonntag, 24.10.2010, 09:58 (vor 3631 Tagen)

Hallo Community,
ich hab zwar schon gesucht, aber nicht die passende Antwort gefunden..
Hier nun mein Anliegen:
Ich möchte die Filterkriterien (WHERE) einer Auswahlabfrage per VBA aendern. Wenn ich mit zwei Abfragen arbeite, bekomme ich die richtigen Werte. Allerdings brauche ich die Werte der Auswahlabfrage für eine weitere Abfrage. Deshalb dachte ich mir, ändere die Kriterien per VBA und alles wird gut.

Hier nun die zwei Abfragen, mit den beiden Filterkriterien.

Abfrage mit allen Artikeln
SELECT tbl.Mat.MatoF, *
FROM tbl.Mat
WHERE (((tbl.Mat) Like „*“));

Abfrage mit den gefilterten Artikeln
SELECT tbl.Mat.MatoF, *
FROM tbl.Mat
WHERE (((tbl.Mat) Not In (select tbl_Verschleiss_MatoF from tbl_Verschleiss)));));

Wie kann ich jetzt die Kriterien per VBA ändern?

Gruß

Klaus

Abfragekriterium per VBA ändern

Martin Asal @, Sonntag, 24.10.2010, 17:43 (vor 3630 Tagen) @ klausklausklaus

Hallo,

Allerdings brauche ich die Werte der Auswahlabfrage für eine weitere Abfrage.

Wenn es nur darum geht, brauchst du kein VBA. Eine Abfrage muss ja nicht unbedingt auf einer Tabelle aufbauen, sondern auch auf einer anderen Abfrage, sofern diese gespeichert ist.

SELECT tbl.Mat.MatoF, *
FROM tbl.Mat

Die SELECT-Klausel scheint etwas umständlich. Entweder:

SELECT *


oder besser:

SELECT tbl.Mat.MatoF


Beschränkt man eine Abfrage nur auf die Felder, die man wirklich braucht, ist sie schneller.

Aber nun zu deiner eigentlichen Frage:

Ich möchte die Filterkriterien (WHERE) einer Auswahlabfrage per VBA aendern.

 
Dim txtSQL as String
Dim txtFilter as String
 
txtSQL = "SELECT * FROM tbl.Mat "
txtFilter = "WHERE (((tbl.Mat) Like „*“));"
 
DoCmd.RunSQL txtSQL & txtFilter
 

Jetzt musst du nur noch per VBA txtFilter ändern, was wohl kein Problem darstellen dürfte ;-) Grundsätzlich gilt aber: Eine gespeicherte Abfrage ist immer besser als eine Abfrage, die per VBA zusammengebastelt wird.

bis denn
Martin

Abfragekriterium per VBA ändern

klausklausklaus, Sonntag, 24.10.2010, 18:55 (vor 3630 Tagen) @ Martin Asal

Hallo Martin,
danke für Deine Antwort. Danke auch für den Tipp mit der gespeicherten Abfrage.

Kann ich denn nun direkt in der gespeicherten Abfrage das Filterkriterium ändern?

Wenn ich z.B. dem Filterkriterium über eine Funktion "*" zuweise, bekomme ich ja alle Werte ungefiltert. Mach ich ">1000" bekomme ich die Werte größer 1000.

Bei dem ungefilterten Fall ( WHERE (((tbl.Mat) Like „*“)) ) mit dem * ist das ja kein Problem.
Kann ich jetzt aber auch den zweiten Fall (WHERE (((tbl.Mat) Not In (select tbl_Verschleiss_MatoF from tbl_Verschleiss)));)) ) direkt dem Filterkriterium in der abgespeicherten Abfrage zuweisen?


Gruß

Klaus

Abfragekriterium per VBA ändern

Martin Asal @, Dienstag, 26.10.2010, 19:02 (vor 3628 Tagen) @ klausklausklaus

Kann ich denn nun direkt in der gespeicherten Abfrage das Filterkriterium ändern?

Ach so. Ja, am besten, indem du eine Parameterabfrage nutzt. Siehe Abfragekriterien, ganz unten. In deinem Fall dürfte es z.B. sinnvoll sein, ein Kombifeld als Steuerelement zu nehmen.

bis denn
Martin

RSS-Feed dieser Diskussion
powered by my little forum