Moin,
ich habe ein gebundenes Formular und möchte die Anzahl der Datensätze die unten in der Datensatzleiste steht, gern in einem Textfeld auf dem Formular anzeigen lassen.
Bin auch nach langem Rumprobieren noch zu keiner besseren Lösung gekommen als:
Private Sub Form_Current()
Dim rs As Recordset
Dim lngCount As Long
Set rs = Me.RecordsetClone
If Not rs.RecordCount = 0 Then
With rs
.MoveFirst
.MoveLast
lngCount = .RecordCount
End With
Me.txtDSAnzahl = lngCount ' DS-Anzahl notieren
Else
Me.txtDSAnzahl = 0
End If
End Sub
Geht das auch irgendwie eleganter?
Gruß
Hallo,
schreibe in dein Textfeld:
=Anzahl(*)
ein VBA-Code ist nicht notwendig.
Gruß
Johann
Hallo hefoni,
ZitatGeht das auch irgendwie eleganter?
Unabhängig von Johanns Lösung.
Set rs = Me.RecordsetClone
'If Not rs.RecordCount = 0 Then
'Diese Zeile/Prüfung brauchst Du nicht
'weil .RecordCount hier u.U. noch nicht den korrekten Wert liefert
'besser
If rs.BOF And rs.EOF Then
'ist rs nicht leer
With rs
' .MoveFirst
'brauchst Du auch nicht, da DS-Zeiger nach Set rs eh auf dem 1. DS steht
'wenn rs nicht leer ist
.MoveLast
'damit kommst Du an den korrekten .RecordCount
lngCount = .RecordCount
End With
Me.txtDSAnzahl = lngCount ' DS-Anzahl notieren
Else
Me!txtDSAnzahl = 0
End If
rs.Close
Set rs = Nothing
End Sub
gruss ekkehard
und wieder was gelernt, dank euch!