2010-11-30 35 views
0

任何人都可以幫我嗎?當我點擊一個按鈕時,我試圖做一個用戶定義的自動編號。當記錄集爲空時,代碼工作正常,它在第一個記錄中給我一個1,但是,當我再次單擊該按鈕後,它再次給我1。這是我的代碼。我的自動編號不起作用

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 

感謝您的幫助。

+0

不要在.Net中使用記錄集。它們的存在是爲了向後兼容舊代碼。轉到數據採集器/數據集。另外,`Set`關鍵字並不意味着它與asp classic中的相同,你應該避免這種情況。 – 2010-11-30 05:09:10

回答

0

我猜這是用於網頁。如果是這樣的話,每當你的頁面處理任何事件時,你都在使用一個全新的頁面類型實例。也就是說,每次調用該函數時,您都會在該代碼中指向另一個對象的「我」引用。

+0

對不起,我忘了提及這個代碼是適用於Microsoft Access 2007.另外,如果我重新打開我的表單並再次單擊該按鈕,它給了我下一個數字。它僅在記錄集清空時才起作用。 – Clifford 2010-12-01 01:03:03