Discussion:
VBA SQL Abfrage in Recordset object aufrufen
(zu alt für eine Antwort)
Wolfgang Weitzel
2004-06-02 09:19:37 UTC
Permalink
Hallo NG,

ich habe bisher mit SQL nicht gearbeitet.
Nun möchte ich ich eine Auswertung durchführen, bei der mir als
einfachste Lösung eine Steuerung über SQL vorgeschlagen wurde.
Ich möchte für eine Statistik aus mehreren Tabellen ca. 50 Werte
ermitteln. Dazu wollte ich über ein Recordset Object die
entsprechende Anzhal der Datensätze zählen und in einer Schleife
die Parameter für die Abfrage verändern. Den SQL String habe ich
aus einer Abfrage nach VBA kopiert.
Ich weis nun aber nicht, wie ich diese SQL Abfrage für mein
recordset Object verwende.

Der Anfang Code lautet:
Public Function Daten_ermitteln()
Dim db As dao.Database, rsdb As dao.Recordset, qdf As
dao.QueryDef, SQLstr As String
Dim v_gesamt As Single, v_bestanden As Single, v_Note1 As
Single, v_Note2 As Single

SQLstr = "SELECT Abitur.Prüfungsfachqual,
Abitur.Prüfungsfachpkt, Abitur.Gesamtpkt, Abitur.Note,
Schüler.kennummer, Schüler.klasse , [Leistungsnachweise
WG].Halbjahr, [Leistungsnachweise WG].Jahr) FROM (Schüler INNER
JOIN Abitur ON Schüler.kennummer = Abitur.Kennummer) INNER JOIN
[Leistungsnachweise WG] ON (Schüler.kennummer =
[Leistungsnachweise WG].Kennummer) AND (Schüler.kennummer =
[Leistungsnachweise
WG].Kennummer) WHERE (((Schüler.klasse) <> "Abgeg.") And
(([Leistungsnachweise WG].Halbjahr) =
Eval("Forms![Übersicht]![Halbjahr]")) And
(([Leistungsnachweise WG].Jahr) =
Eval("Forms![Übersicht]![Jahrv]")))

Set db = CurrentDb
Set qdf = ???
Set rsdb = ????

v_gesamt = rsdb.RecordCount
MsgBox (v_gesamt)

<<Statistikauswertung

qdf.Close: Set qdf = Nothing
rsdb.Close: Set rsdb = Nothing
db.Close: Set db = Nothing
End Function


Gruß Wolfgang Weitzel
Mark Doerbandt
2004-06-02 09:22:16 UTC
Permalink
Hallo, Wolfgang,
SQLstr = "SELECT Abitur.Pruefungsfachqual, ...
Set db = CurrentDb
Set qdf = ???
Set rsdb = ????
Du brauchst nicht unbedingt qdf und rsdb. Mir wuerde letzteres
reichen. Schau Dir mal in der Online-Hilfe das Stichwort
"OpenRecordset" an, da kannst Du Deinen SQLstr verwenden und auf qdf
verzichten.

Gruss - Mark
--
Informationen fuer Neulinge in den Access-Newsgroups unter
http://www.doerbandt.de/Access/Newbie.htm

Bitte keine eMails auf Newsgroup-Beiträge senden.
Henry Habermacher [MVP Access]
2004-06-03 12:13:57 UTC
Permalink
Hallo Wolfgang
Post by Wolfgang Weitzel
(([Leistungsnachweise WG].Halbjahr) =
Eval("Forms![Übersicht]![Halbjahr]")) And
(([Leistungsnachweise WG].Jahr) =
Eval("Forms![Übersicht]![Jahrv]")))
Wieso lässt Du das Eval() nicht endlich sein, wie ich Dir das bereits im
anderen Thread geschrieben habe?!?

Gruss
Henry
--
Keine E-Mails auf Postings in NGs senden!
Don't send e-mails to postings in newsgroups!
KB: http://support.microsoft.com/default.aspx
FAQ: http://www.donkarl.com/AccessFAQ.htm
OH: Online Hilfe von Microsoft Access (Taste F1)
Downloads: http://www.dbdev.org
Loading...