Hallo,
ich möchte meine Datenbank von DAO nach ADO umstellen. Dort bin ich beim
Zählen von Datensätzen in einer Tabelle auf ein Problem gestosen. Bei
rs.RecortCount gibt er mir nur -1 aus, wobei er mir bei DAO immer alle
Records gezählt hat. Was mache ich falsch.
Anbei habe ich mal meinen Code mit angefügt:
Private Sub Form_Current()
Dim cn As ADODB.Connection ’ Deklaration der DB-Objektvariale
Connection -Objekt
Dim rs1 As ADODB.Recordset ’ Recordset-Objekt
Dim rs2 As ADODB.Recordset ’ Recordset-Objekt
Dim rs3 As ADODB.Recordset ’ Recordset-Objekt
Dim rs4 As ADODB.Recordset ’ Recordset-Objekt
Dim i As Integer
Dim j As Integer
Dim anz
Dim anz3 As Integer
Dim anz4 As Integer
Dim Offen As Single
Dim Umsatz As Single
Dim gezahlt As Single
Set cn = New ADODB.Connection ’ Instanzierung des Objekts
Set rs1 = New ADODB.Recordset ’ Recordset erstellen
Set rs2 = New ADODB.Recordset ’ Recordset erstellen
Set rs3 = New ADODB.Recordset ’ Recordset erstellen
Set rs4 = New ADODB.Recordset ’ Recordset erstellen
cn.ConnectionString = „DRIVER={MySQL ODBC 3.51
Driver};SERVER=localhost;DATABASE=ALL2002;UID=lke:stuck_out_tongue_winking_eye:WD=lkkl; OPTION=3“
cn.Open
rs1.Open „SELECT * FROM Rabatte“, cn, adOpenDynamic, adLockReadOnly ’ Jetzt
kann es losgehen…, z.B. eine Abfrage erstellen…
rs2.Open „SELECT * FROM Kunden_Stammdaten“, cn, adOpenDynamic,
adLockOptimistic ’ Jetzt kann es losgehen…, z.B. eine Abfrage
erstellen…
rs3.Open „SELECT * FROM OP_Verwaltung“, cn, adOpenDynamic, adLockOptimistic
’ Jetzt kann es losgehen…, z.B. eine Abfrage erstellen…
rs4.Open „SELECT * FROM OP_Verwaltung_Details“, cn, adOpenDynamic,
adLockOptimistic ’ Jetzt kann es losgehen…, z.B. eine Abfrage
erstellen…
Rem rs3.MoveLast
Rem anz3 = rs3.RecordCount
Rem rs3.MoveFirst
Rem rs4.MoveLast
Rem anz4 = rs4.RecordCount
Rem rs4.MoveFirst
Rem If Not rs2.RecordCount = 0 Then
rs2.MoveLast
anz = rs2.RecordCount 'hier sollten die Datensätze gezählt
werden. Es wird aber nur -1 ausgegeben!!!
Rem Forms![Kunden Stammdaten]![Kundenanzahl] = anz
Rem anz = „Select COUNT(*) from Kunden_Stammdaten“
Rem Else
Rem anz = 0
Rem End If
Forms![Kunden Stammdaten]![Kundenanzahl] = anz
If Not IsNull([RID]) Then
rs1.MoveFirst
Rem rs1.Find
rs1.Find „[RID]=“ & Forms![Kunden Stammdaten].Rabattstaffel, ,
adSearchForward
Me.Rabatt = rs1(„Rabatt“)
Else
Me.Rabatt = „“
End If
For j = 1 To anz4
If rs3(„OPID“) = rs4(„OPID“) Then
If gezahlt = 0 Then
gezahlt = rs4(„Betrag“)
Else
gezahlt = gezahlt + rs4(„betrag“)
End If
End If
rs4.MoveNext
Next j
For i = 1 To anz3
If rs3(„Kunden-Nr“) = Me.[Kunden-Nr] Then
If Umsatz = 0 Then
Umsatz = rs3(„Betrag“)
Else
Umsatz = Umsatz + rs3(„betrag“)
End If
End If
rs3.MoveNext
Next i
Me.Umsätze = Umsatz
Me.Offen = Umsatz - gezahlt
End Sub
Vielen Dank für Eure Mühe.
Mit freundlichen Grüßen
Matthias Köstler