ich habe ein Formular mit integriertem Kalendersteuerlement. Nach Auswahl des Zeitraums sollen per Klick auf einen zentralen Befehlsbutton (erst dann und nicht schon beim Öffnen des Formulars) jeweils verschiedene Felder mit den Ergebnissen verschiedener Abfragen gefüllt werden. Alle Abfragen sind schon mit den Formularparametern gefüllt.
Wie bekomme ich die Abfrageergebnisse in die vordefinierten Felder?
danke für den Code. Scheint auch zu klappen. Leider bekomme ich Laufzeitfehler 3061. Die Abfrage enthält zwei Parameter ‚Von‘ und ‚Bis‘ die vom Formular (Kalendersteuerelement) übergeben werden.
Wie kann ich diese Parameter in den Code einbinden?
die Parameter habe ich bereits in der Abfrage hinterlegt:
SELECT Count(*) AS Anzahl
FROM tblVerkauf
WHERE Buchungsdatum between [Formulare]![Formular1]![VonDatum] and [Formulare]![Formular1]![BisDatum];
Die enthaltenen Parameter werden über zwei Kalendersteuerelemente auf dem Formular ausgewählt. Das Ergebnis der Abfrage soll in das auf dem Formular integriertem Textfeld angezeigt werden.
Der Code hinter meinem Befehlsbutton auf dem Formular sieht jetzt wie folgt aus:
Dim db As Database
Dim rst As Recordset
Set db = CurrentDb
Set rst = db.OpenRecordset(„Abfrage1“, dbOpenDynaset)
OpenRecordsetOutput rst
Me![Text84] = rst![Anzahl]
Leider gibt’s immer noch die Laufzeitfehlermeldung 3061 (2 Parameter wurden erwartet, aber es wurden zuwenig Parameter übergeben).
funktioniert die Abfrage, wenn Du statt Parameter direkt Daten eingibst (im SQL-Code)? Meines Wissens müssen in Access-SQL die Datumswerte im amerikanischem Datumsformat angegeben werden und in Rauten (#) gesetzt werden. Ich habe hier mal auf die Schnelle eine Abfrage in einer meiner Datenbanken angelegt:
SELECT Count(Tabelle_Dienstwagen.BeauftragungsNr) AS [Anzahl von BeauftragungsNr]
FROM Tabelle_Dienstwagen
WHERE (((Tabelle_Dienstwagen.Beginn)=#1/1/2002#) AND ((Tabelle_Dienstwagen.Ende)=#12/31/2002#));
(Vielleicht solltest Du die Count-Funktion über ein beliebiges Feld aber nicht über das Sternchen (*) laufen lassen?)
Wegen Datumsformat: Du kannst zur Umwandlung die Funktion DateValue (DatWert) verwenden. Schau mal in der Hilfe nach.
Du kannst im Code hinter Deinem Befehlsbutton auch vor Öffnen der Abfrage mittels der MsgBox-Funktion die Werte aus den Kalendersteuerelementen ausgeben, natürlich nur mal zum debuggen.
Ulrich
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
die Abfrage funktioniert auch mit direkter Dateneingabe. Testhalber habe ich auch schon ein Formular-Textfeld direkt beim Öffnen mit dem Ergebnis der Abfrage befüülen lassen (als Parameter wurden dann die default-Werte des Kalendersteuerelements verwendet).
Der Laufzeitfehler mokiert offensichtlich das Codefragment:
Set rst = db.OpenRecordset(„Abfrage“, dbOpenDynaset).
Ciao
Kasak
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]