Hallo Leute,
ich habe ein Problem mit meiner Datenbank. Ich möchte gern im Unterformular eine Positionsnummer anzeigen lassen bzw. diesen Wert auch in die Tabelle schreiben lassen.
Folgenden Code verwende ich dafür:
Private Sub Form_BeforeInsert(Cancel As Integer)
Dim pos As Variant
pos = DMax("Position", "tbl_order_entry", "[tbl_order_entry_ID] = Forms!frm_order![tbl_order_entry_id]")
Me!Position = IIf(IsNull(pos), 1, pos + 1)
End Sub
Leider zeigt mir dieser Code immer nur "1" in dem jeweiligen Positionsfeld an. Er zählt leider nicht hoch.
Kann mir jemand damit helfen bitte?
Hallo,
Und wenn du das jetzt noch in ein allgemeines Modul verfrachtest und ein
Formobjekt als Parameter mitgibst, kannst du das auf allen Formularen verwenden.
Function Zaehler(frm As Form) As Long
Dim rs As Object
Dim T1 As String
On Error Resume Next 'würde ich vielleicht durch eine richtige Fehlerbehandlung ersetzen
With frm
Set rs = .RecordsetClone
T1 = .Bookmark
If T1 = "" Or .NewRecord Then
Zaehler = rs.RecordCount + 1
Else
rs.Bookmark = .Bookmark
Zaehler = rs.AbsolutePosition + 1
End If
End With
End Function
gruss ekkehard
ach so, Aufruf dann mit
irgendwas = Zaehler(Me)