Vb.net 我的自动编号代码不起作用

Vb.net 我的自动编号代码不起作用,vb.net,autonumber,Vb.net,Autonumber,有人能帮我吗?当我点击一个按钮时,我试图做一个用户定义的自动编号。当记录集为空时,代码工作正常,它在我的第一条记录上给我一个1,但是,在我再次单击按钮后,它再次给我1。这是我的密码 Private Sub BtnNew_Click() Dim rsClone As Recordset Dim pVal As Integer Set rsClone = Me.RecordsetClone If Not (rsClone.BOF) Then DoC

有人能帮我吗?当我点击一个按钮时,我试图做一个用户定义的自动编号。当记录集为空时,代码工作正常,它在我的第一条记录上给我一个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

谢谢你的帮助。

我猜这是一个网页。如果是这种情况,那么每次页面处理任何事件时,您都在处理该页面类型的全新实例。也就是说,每次调用函数时,代码中的“我”引用都指向不同的对象。

不要在.Net中使用记录集。它们的存在是为了向后兼容旧代码。转到数据读取器/数据集。另外,
Set
关键字的含义与asp classic中的含义不同,您可能也应该避免使用它。很抱歉,我忘了提及此代码正在应用于Microsoft Access 2007。此外,如果我重新打开表单并再次单击按钮,它会给我下一个号码。只有当记录集被清空时,它才起作用。