2010-11-30 12 views
0

Kann mir jemand hier helfen? Ich versuche, eine benutzerdefinierte Auto-Nummer zu erstellen, wenn ich auf eine Schaltfläche klicke. Der Code funktionierte gut, wenn das Recordset leer ist, es gibt mir eine 1 auf meiner ersten Platte, aber nachdem ich den Button nochmal angeklickt habe, gib es mir nochmal 1. Hier ist mein Code.Mein AutoNummer Code funktioniert nicht

Private Sub BtnNew_Click() 
    Dim rsClone As Recordset 
    Dim pVal As Integer 

    Set rsClone = Me.RecordsetClone 

    If Not (rsClone.BOF) Then 
     DoCmd.GoToRecord , , acNewRec 
     rsClone.MoveLast 
     pVal = rsClone.AbsolutePosition + 2 
     Me.CatgId.Value = pVal 
     Me.CatgId.SetFocus 
    Else 
     rsClone.AddNew 
     Me.CatgId.Value = 1 
     Me.CatgId.SetFocus 
    End If 
End Sub 

Danke für die Hilfe.

+0

Verwenden Sie keine Recordsets in .Net. Sie bestehen aus Gründen der Abwärtskompatibilität zu altem Code. Wechseln Sie zu Datenreadern/Datasets. Auch das 'Set'-Schlüsselwort bedeutet nicht mehr das gleiche wie in ASP-Klassikern und das solltest du wahrscheinlich auch vermeiden. –

Antwort

0

Ich vermute, dass dies für eine Webseite ist. Wenn dies der Fall ist, arbeiten Sie jedes Mal, wenn Ihre Seite ein Ereignis behandelt, mit einer vollständig neuen Instanz des Seitentyps. Das heißt, Sie sind "Ich" -Referenz in diesem Code zeigt auf ein anderes Objekt jedes Mal, wenn die Funktion aufgerufen wird.

+0

Sorry, ich habe vergessen zu erwähnen, dass dieser Code auf Microsoft Access 2007 zutrifft. Außerdem, wenn ich mein Formular erneut öffne und erneut auf den Button klicke, gab es mir die nächste Nummer. Es funktioniert nur nicht, wenn das Re-Cord-Set geleert wird. – Clifford

Verwandte Themen