Access, Abfrage mit Kriterium

möchte mit CurrentDB.Execute „meinegespeicherteabfrage“ eine Abfrage ausführen aber noch ein Kriterium angeben (entsprechend WHERE …). Wie geht das?
(DoCmd.RunSQL strSQL möchte ich nicht verwenden, da u.a. die SQL Anweisung viel zu lang ist)

Danke!

Moin

Äh… Womöglich verstehe ich Deine Frage nicht.

Sub x()
CurrentDb.Execute („DELETE t_plattform.platt_nr, t_plattform.Preis FROM t_plattform WHERE (((t_plattform.platt_nr)=3));“)
End Sub

’ funktioniert ohne Probleme

Soll das Kriterium variabel sein? Dann ginge folgendes:

Sub x2(iID As Integer)
CurrentDb.Execute („DELETE t_plattform.platt_nr, t_plattform.Preis FROM t_plattform WHERE (((t_plattform.platt_nr)=“ & iID & „));“)
End Sub
’ Geht auch.

Die Klammern im Where-Bereich müssen nicht sein, ich wollte nur zeigen, wie eine Abfrage von Access verwendet werden kann. Zur Lesbarkeit nutze ich üblicherweise eine Variable:

Sub x3(iID As Integer)
Dim sSQL As String
sSQL = "DELETE t_plattform.platt_nr, t_plattform.Preis FROM t_plattform WHERE platt_nr = " & iID
CurrentDb.Execute sSQL
End Sub

Wenn dies die Frage nicht beantwortet, einfach nachfragen.

Schöne Grüße

Leo
PS: Ich habe jetzt hier nicht auf die Zeilenumbrüche geachtet, bitte darüber hinwegsehen…

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

Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim qdf As DAO.QueryDef

Set db = CurrentDb
Set qdf = db.QueryDefs(„Meine_Parameter_Abfrage“)
qdf.Parameters!MeinParameter1 = „Wert_für_Parameter1_in_Anführungszeichen_falls_er_ein_Text_ist“
qdf.Parameters!MeinParameter2 = Wert_für_Parameter2
'usw.

qdf.execute
set qdf=Nothing
set db=Nothing

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

Genau so wollte ich es machen!! Hatte auch schon eine ähnliche Lösung gehabt, nur kommt hier wie da immer „Laufzeitfehler 3265, Element in dieser Auflistung nicht gefunden!“
MeinParameter1 ist doch ein Feldname in der Abfrage, oder?

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

Danke erst mal. Aber der SQL-Text soll halt gerade eben NICHT erscheinen, sondern wirklich eine vorhandene Abfrage genutzt werden.