Select Case Button.Key
    Dim id As Integer
    
    Case "New"
    id = 0
    
        With XspjDData
            
            If .Recordset.RecordCount > 0 Then
                id = .Recordset!id
            End If
            .Recordset.AddNew
            
            For i = 0 To 13
            
                .Recordset(i) = ""   //题外话,ADDNEW时有必要赋初值吗?
            Next i
                .Recordset!id = id + 1
                
            .Recordset.Update
        End With
        XspjxDBGrid.ReBind
    Case "Delete"
        With XspjDData
            If .Recordset.AbsolutePosition >= 0 Then
            
            
                .Recordset.Delete
                .Recordset.Update
                .Recordset.MoveNext
                If .Recordset.EOF Then
                    .Recordset.MovePrevious
                End If
                
            Else
                msg = MsgBox("请先选择要删除的项", vbOKOnly + vbInformation)
            End If
感觉你写的很乱。不好意思。