PDA

Vollständige Version anzeigen : acc97 - sql-Programmierung - Anzahlerrechnung


tombi
23.09.2003, 15:07
Hallo,

ich habe eine Abfrage erstellt und in SQL laufen lassen, in der Abfrage läuft es - in der Modul-Programmierung nicht. Woran liegt das?

Hier der Code:

Private Sub HalterAutoRechnen_Click()

Dim int1 As Integer
Dim rst As Recordset
Dim db As Database

Set db = CurrentDb

Set rst = db.OpenRecordset("SELECT tblAuto.HalterID, Count(tblAuto.HalterID) AS [Anzahl von HalterID] FROM tblAuto WHERE (((tblAuto.Beendet) Is Null Or (tblAuto.Beendet)='') AND ((DatePart('m',[tblAuto].[BeginnDat]))= " & Val([Monat]) & ") AND ((DatePart('yyyy',[tblAuto].[BeginnDat]))= " & Val([Jahr]) & ")) GROUP BY tblAuto.HalterID HAVING (((tblAuto.HalterID) Is Not Null));")
int1 = rst![Anzahl von HalterID]
Me!txtAktivAutohalter = int1
rst.Close

...

End Sub

Es kommt immer das Ergebnis 1 raus, obwohl es mehrere Halter von Autos sein sollten.

Wer weiss eine Lösung?

tombi

Drachenlord
23.09.2003, 15:52
Hi tombi,

auf den ersten Blick ist das "tblAuto.HalterID," hinter dem SELECT überflüssig. Erstaunlich, dass Dir das in der Abfrage ein Ergebnis bringt. Hab es jetzt nicht selber probiert, stach mir halt ins Auge ...

Lothi
23.09.2003, 15:59
Hallo Tombi

Weiss nicht genau was du machen willst. Aber ein Recordset bring immer nur ein Datensatz.
Wenn du alle daten im Formular haben willst musst du die Abfrage an die Datenherkunft des Formulars binden. Ist am einfachsten. :)

Oder (habe es nicht getestet) :rolleyes:
beim Öffnen des Formulars dein SQL String.


Dim strSQl As String

strSQl = "SELECT tblAuto.HalterID, Count(tblAuto.HalterID) AS [Anzahl von HalterID] " & _
" FROM tblAuto " _ &
" WHERE (((tblAuto.Beendet) Is Null Or (tblAuto.Beendet)='') " & _
"AND ((DatePart('m',[tblAuto].[BeginnDat]))= ' & Val([Monat]) & ') " & _
" AND ((DatePart('yyyy',[tblAuto].[BeginnDat]))= " & Val([Jahr]) & ")) " & _
" GROUP BY tblAuto.HalterID " & _
"HAVING (((tblAuto.HalterID) Is Not Null))"

Me.RecordSource = strSQL
Me.Me!txtAktivAutohalter = "AnzahlvonHalterID"



Wenn doch mit Recordset musst du mit einer Schleife das Recordset durcharbeiten.

tombi
23.09.2003, 16:02
Die bemängelte Stelle, die Du meinst, ist für die Gruppierung notwendig.

Alles klar?

tombi