Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Abfragen mit Parametern ausführen

Begonnen von henfoni, April 12, 2012, 16:41:07

⏪ vorheriges - nächstes ⏩

henfoni

Moin,
ich habe folgendes Problem. Ich habe 5 Abfragen, die allesamt die gleichen 3 Parameter benötigen.
Ich möchte diese nun mit einem Formualar starten. Das Formular ist ganz simpel, 3 Textfelder (um die Parameter einzutragen) und 1 Ausführ-Button.
Ich hab versucht, die Abfragen nach Buttonklick mit dem Makro-Generator zu starten. Ohne Parameter klappt das alles natürlich kinderleicht, nur mit Parametern klappts irgendwie nicht!
Kann jmd helfen?
Wer nicht fragt, bleibt dumm.

Stapi

Hallo henfoni

Hier wurde ein fast gleiches Problem wie du angefragt hast schon gelöst.

http://www.access-o-mania.de/forum/index.php?topic=15642.msg90279#msg90279

schau mal
Grüße aus dem schönen NRW
Stefan

Beaker s.a.

Hallo Stefan,
Alternativ kannst Du auch mal hier nachlesen:
http://www.donkarl.com?FAQ6.16
hth
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

henfoni

Hey,
dank euch für die schnellen Antworten. Das Öffnen der Abfragen habe ich gestern auch noch ergoogelt ^^ Habs genau wie du es beschrieben hast gemacht: einfach die gewünschten Felder mit [Formulare]![Formular1]![txtName] belegt. Das klappt jetzt auch alles wunderbar.

Nun bin ich aber bei einem anderen Problem, ich versuch gerade zwei Dinge:
1. eine PassThrough-Abfrage mit VBA-Code erstellen
2. die Ergebnisse der PassThrough-Abfrage ggf. auf dem Formular wiedergeben.

Ich bin in Sachen VBA blutiger Anfänger. Ich habe versucht erstmal eine ganz einfache PassThrough-Abfrage zum SQL-Server via ODBC zu erstellen:

Private Sub btnSuchen_Click()
Dim db As DAO.Database
Dim qdExtData As QueryDef
Dim strSQL As String

Set db = CurrentDb
strSQL = "SELECT * FROM M_VERFAHREN"
Set qdExtData = db.CreateQueryDef("")
qdExtData.Connect = "ODBC;DSN=test-ODBC-KOPF;database=test;UID=test;PWD=test;"
qdExtData.SQL = strSQL
qdExtData.Execute

qdExtData.Close
db.Close
Set db = Nothing
End Sub

Wenn ich eine PassThrough-Abfrage über access mit dem obigen ODBC-String erstelle, klappt alles. Nur leider bekomme ich hier folgende Fehlermeldung: Fehler 3065 Eine Auswahlabfrage kann nicht ausgeführt werden.
Eine andere Frage: man kann Querys ja auch mit Namen erstellen, die dann gespeichert werden: db.CreateQueryDef("test")
Wo wird diese test-Query dann genau gespeichert!? In der currentdb, also der access-Datei/Projekt?

So, das wars erstmal ;) Ich würd mich über Hilfe sehr freuen!

Viele Grüße
Wer nicht fragt, bleibt dumm.

Beaker s.a.

Hallo henfoni,
ZitatNur leider bekomme ich hier folgende Fehlermeldung: Fehler 3065 Eine Auswahlabfrage kann nicht ausgeführt werden.
Nimm die Zeile
qdExtData.Execute
aus dem Code.
Wenn Du mit der Abfrage arbeiten willst öffne einen Recordset darauf.
.Execute funzt nur mit Aktionsabfragen (UDDATE, INSERT, DELETE),
will sagen, nur solche Abfragen können ausgeführt werden (execute).
gruss ekkehard
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

henfoni

Moin, ah danke für den Tipp. Habs nu mitm Recordset versucht:

Set rs = qdExtData.OpenRecordset

Nun kriege ich die Fehldermeldung, dass der ODBC-Aufruf fehlschlägt. Aber ich hab den ODBC-String ja aus einer PassThrough-Abfrage kopiert, in der alles funktioniert. Komisch!
Wer nicht fragt, bleibt dumm.