我做了一个from,是修改用的,有个combobox取数据时(表Product_type)好用,可是修改后不往数据库里(表Employee)添加代码:Option Explicit
Private rsEmployee As ADODB.Recordset
Private strMaxNum As String
Private blnIsSQL As Boolean
Dim rs As New ADODB.Recordset
Dim FileName As String
Private Sub CmdDep_Click(Index As Integer)
    Dim intAnswer As Integer
    Select Case Index
        Case 0
            Call EmpAddNew
        Case 1
            Call IsEdit(True)
            Me.txtemployee_name.SetFocus
        Case 2
            FrmSql.intNumField = 3
            FrmSql.Show vbModal
            Select Case FrmSql.intNumField
                Case -1
                    blnIsSQL = False
                    CmdDep(0).Enabled = True
                    CmdDep(3).Enabled = True
                    rsEmployee.Filter = Me.DataGrid1.Columns.Item(0).DataField & _
                    "<>''"
                Case -2
                Case Else
                    blnIsSQL = True
                    CmdDep(0).Enabled = False
                    CmdDep(3).Enabled = False
                    rsEmployee.Filter = Me.DataGrid1.Columns.Item(FrmSql.intNumField).DataField & _
                    " like '*" & FrmSql.strSqlField & "*'"
            End Select
        Case 3
            intAnswer = MsgBox("确认删除当前记录吗?", vbYesNo + vbQuestion, "删除确认")
            If intAnswer = vbYes Then
                With rsEmployee
                    .Delete
                    .UpdateBatch
                    If .RecordCount <> 0 Then
                        .MoveFirst
                    Else
                        For intAnswer = 1 To 4
                        If intAnswer <> 4 Then
                            CmdDep(intAnswer).Enabled = False
                        End If
                        Next
                    End If
                End With
            End If
        Case 4
            
        Case 5
            Unload Me
    End Select
End SubPrivate Sub DCboEmp_KeyPress(KeyAscii As Integer)
    If KeyAscii = 13 Then Me.txtemployee_name.SetFocus
End Sub
Private Sub CmdAct_Click(Index As Integer)
    
    On Error GoTo Err:
    With rsEmployee
        Select Case Index
            Case 0
                .UpdateBatch
                .MoveLast
            Case 1
                .CancelUpdate
                If .RecordCount <> 0 Then
                    .MoveFirst
                End If
        End Select
    End With
    Call IsEdit(False)
    Me.DataGrid1.Refresh
    Exit Sub
Err:
    If Err.Number = -2147467259 Then
        MsgBox "品牌编号重复!请重新录入新的品牌编号!", vbCritical, "错误"
    End If
End SubPrivate Sub Form_Load()
    intNumWindows = OpenWindow(intNumWindows)
    Me.Height = 6300
    Me.Width = 5730
    
    '向cmbLeibie加入类别列表
If rs.State = adStateOpen Then rs.Close
    rs.Open "product_type", connclient
    If Not rs.BOF And Not rs.EOF Then
    cmbLeibie.Text = rs("type_name")
    End If
Do While Not rs.EOF
    cmbLeibie.AddItem rs("type_name")
    rs.MoveNext
Loop
rs.Close
    
    Call SetFormStu(Me, frmMain)
    Set rsEmployee = DEjxc.rsComEmployee
    Call IsEdit(False)
End SubPrivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    If CmdDep(5).Enabled = False Then
        MsgBox "请先退出编辑状态后再退出该程序!", , "提示"
        Cancel = True
    End If
End SubPrivate Sub Form_Unload(Cancel As Integer)
    intNumWindows = Closewindow(intNumWindows)
    rsEmployee.Filter = Me.DataGrid1.Columns.Item(0).DataField & "<>''"
    rsEmployee.Close
    Set rsEmployee = Nothing
End SubPrivate Sub EmpAddNew()
    Dim strSQL As String
    With rsEmployee
       If .RecordCount = 0 Then
         strMaxNum = 0
      Else
           .MoveLast
           strMaxNum = !employee_id
       End If
        .AddNew "employee_id", ""
        Me.txtemployee_id = Format(CLng(strMaxNum) + 1, "0###")
        Call IsEdit(True)
        Me.txtemployee_id.SetFocus
    End With
End SubPrivate Sub IsEdit(blnIsEdit As Boolean)
    Dim intNum As Integer
    Me.txtemployee_id.Enabled = blnIsEdit
    Me.txtemployee_name.Enabled = blnIsEdit
    Me.cmbLeibie.Enabled = blnIsEdit
    For intNum = 0 To 1
    Me.CmdAct(intNum).Enabled = blnIsEdit
    Next
    For intNum = 0 To 5
    If intNum <> 4 Then
        Me.CmdDep(intNum).Enabled = Not blnIsEdit
    End If
    Next
    If blnIsSQL = True Then
        CmdDep(0).Enabled = False
        CmdDep(3).Enabled = False
    End If
    If rsEmployee.RecordCount = 0 Then
        For intNum = 1 To 4
        If intNum <> 4 Then
            Me.CmdDep(intNum).Enabled = False
        End If
        Next
    End If
End SubPrivate Sub txtemployee_id_KeyPress(KeyAscii As Integer)
    Dim strValid As String
    strValid = "0123456789"
    If KeyAscii > 26 Then
        If InStr(strValid, Chr(KeyAscii)) = 0 Then
            KeyAscii = 0
        End If
    End If
    If KeyAscii = 13 Then Me.cmbLeibie.SetFocus
End Sub