Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: lutschi83 am Januar 04, 2017, 11:38:23

Titel: Positionsnummer im Unterformular
Beitrag von: lutschi83 am Januar 04, 2017, 11:38:23
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?
Titel: Re: Positionsnummer im Unterformular
Beitrag von: Beaker s.a. am Januar 04, 2017, 15:36:03
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)