PDA

Vollständige Version anzeigen : per vba auf linked form query zugreiffen


janis332
13.06.2012, 19:25
Fehlermeldung: 1 parameter wurden erwartet,aber es wurden zu wenig ü¨bergeben. hat jemand eine ahnung warum das so ist? habe stundenlange gepröbelt, aber habe wirklich keine ahnung.

tabelle1:
Feld1
Test

formular: textbox wert: test

abfrage1: SELECT * from tabelle1 where feld1 = forms!formular1!text1.value

abfrage2: SELECT * from abfrage1

makro:
jan = "SELECT * from abfrage2"
Debug.Print CurrentDb.OpenRecordset(jan).Fields(0).Value

EmiliaM
14.06.2012, 00:14
Hallo,

Hast du die Abfragen einzeln ausprobiert? Nämlich Formular öffnen, dann zu den Abfragen wechseln, abfrage1 öffnen? Danach abfrage2?

Vielleicht kannst du uns genauer beschreiben, wie genau die Abfrage aussieht, bzw. die SQL der Abfrage posten. Der erwähnte Fehler liegt nämlich meistens an der genauen Schreibweise, einen Tippfehler o.ä., was aus deinen minimalistischen abfrage1 usw. nicht ersichtlich ist.

Übrigens, wenn ich genau hinschaue, steht in der Tabelle der Wert Test (großgeschrieben), im Formular aber test (kleingeschrieben). In dem Fall ist der Recordset leer und müßte Debug.Print darüber stolpern.

Und was ist der Sinn, die gleiche Abfrage nochmal darüber stülpen, nämlich einmal "SELECT * ...", dann nochmal "SELECT * ..." aus der vorherigen? Da gibt es keinen Unterschied.

EmiliaM
14.06.2012, 00:52
Hallo nochmal,

zu später Stunde übersieht man die Dinge, sorry wg. vorhin.

Access meckert, weil du eine Referenz auf ein Textfeld in der Abfrage hast und nicht den Wert aus dem Textfeld. Das geht bei gespeicherten Abfragen, aber nicht, wenn man einen Recordset damit öffnen will. Und das gilt auch, wenn diese Abfrage in einer anderen verpackt ist.

Also müßte es heißen z.B.:

jan = SELECT * from tabelle1 where feld1 = '" & forms!formular1!text1 & "'"

Achte auf die Hochkommata, die sind nötig, wenn in text1 tatsächlich ein Text steht.