'设置控件的Enable值 For Index = 0 To 6
Me.txt(Index).Enabled = flag Next Index
Me.cboxy.Enabled = flag End Sub
Private Sub ShowData() '在控件中显示数据
If rs.RecordCount <> 0 Then '如果存在记录 '为控件赋值 For Index = 0 To 4
Me.txt(Index) = rs.Fields(Index) Next Index
Me.cboxy.Text = rs.Fields(\信誉等级\ Me.txt(5).Text = rs.Fields(\提供商品\ Me.txt(6).Text = rs.Fields(\简介\ End If End Sub
Private Sub CmdMove_Click(Index As Integer) '移动记录操作 Select Case Index
Case Is = 0 '移到第一条记录 If Not rs.BOF Then rs.MoveFirst
Case Is = 1 '移到上一条记录 If rs.RecordCount <> 0 Then
If rs.BOF = False Then rs.MovePrevious If rs.BOF = True Then rs.MoveFirst End If
Case Is = 2 '移到下一条记录 If rs.RecordCount <> 0 Then
If rs.EOF = False Then rs.MoveNext If rs.EOF = True Then rs.MoveLast End If
Case Is = 3 '移到最后一条记录
24
If rs.RecordCount <> 0 Then
If Not rs.EOF = True Then rs.MoveLast End If End Select Call ShowData End Sub
Private Sub CmdAdd_Click() '添加操作 '所有控件重置 Call ControlClear '设置控件Enable值为可用 Call ControlEnable(True)
'设置标志flag,表示所进行的操作为添加 flag = \ '所有移动按钮不可用 For Index = 0 To 3
cmdmove(Index).Enabled = False Next Index
'添加、修改、删除按钮不可用,取消、保存按钮可用
cmdadd.Enabled = False: cmdmodify.Enabled = False: cmddelete.Enabled = False cmdcancel.Enabled = True: cmdsave.Enabled = True End Sub
Private Sub ControlClear() '重置控件
For Index = 0 To 6
Me.txt(Index).Text = \ Next Index
Me.cboxy.ListIndex = 0 End Sub
Private Sub CmdModify_Click() '修改操作
If rs.RecordCount > 0 Then '如果存在记录 '供应商编号不可以修改,其他控件可用 txt(0).Enabled = False
25
'设置控件Enable值 Call ControlEnable(True)
'设置标志flag,表示所进行的操作为修改 flag = \ '移动控件不可用 For Index = 0 To 3
cmdmove(Index).Enabled = False Next Index
'添加、修改、删除按钮不可用,取消、保存按钮可用
cmdadd.Enabled = False: cmdmodify.Enabled = False: cmddelete.Enabled = False
cmdcancel.Enabled = True: cmdsave.Enabled = True Else
MsgBox (\没有可以修改的数据!\ End If End Sub
Private Sub CmdDelete_Click() '删除操作
On Error GoTo ErrMsg '错误处理 If rs.RecordCount > 0 Then
msg = MsgBox(\删除该条记录吗?\ If msg = vbYes Then
rs.Delete '删除数据 Call LoadData '重新装载数据 '清空控件 Call ControlClear
'设置控件Enable值为不可用 Call ControlEnable(False) If rs.RecordCount = 0 Then '所有移动控件不可用 For Index = 0 To 3
cmdmove(Index).Enabled = False Next Index End If
26
'添加、删除按钮可用,修改、取消、保存按钮不可用
cmdadd.Enabled = True: cmdmodify.Enabled = False: cmddelete.Enabled = True
cmdsave.Enabled = False: cmdcancel.Enabled = False MsgBox (\成功删除的数据!\ End If Else
MsgBox (\没有可删除的数据!\ End If Exit Sub
ErrMsg: '报告出错信息 MsgBox Err.Description, vbExclamation, \出错\End Sub
Private Sub CmdSave_Click() '保存操作
On Error GoTo ErrMsg
If Not CheckData Then Exit Sub '如果数据不合法就退出 If flag = \如果是修改数据 msg = MsgBox(\您确实要修改这条数据吗?\ If msg = vbYes Then
Call setData '设置数据 Else Exit Sub End If
ElseIf flag = \如果是添加新数据 rs.AddNew
Call setData '设置数据 End If
rs.Update '更新数据 '移动控件可用 For Index = 0 To 3
cmdmove(Index).Enabled = True Next Index
cmdmodify.Enabled = True: cmddelete.Enabled = True: cmdadd.Enabled = True
27
cmdsave.Enabled = False: cmdcancel.Enabled = False If flag = \ MsgBox (\成功添加数据!\ Else
MsgBox (\成功更新数据!\ End If
Call LoadData '重新装载数据 '定位到添加或修改记录 If rs.RecordCount > 0 Then rs.MoveFirst
rs.Find (\供应商编号='\ If Not rs.EOF Then Call ShowData '重新显示数据 End If Exit Sub ErrMsg:
MsgBox Err.Description, vbExclamation, \出错\End Sub
Private Function CheckData() As Boolean '检查数据的合法性
Dim rst As ADODB.Recordset Dim msgt As String msgt = \ '检查数据
If Trim(txt(0).Text) = \检查供应商编号是否为空 msgt = \供应商编号为空; \ '光标定位 txt(0).SetFocus txt(0).SelStart = 0
txt(0).SelLength = Len(txt(0).Text)
ElseIf Not Len(Trim(txt(0).Text)) = 4 Then '检查供应商编号是否为4位 msgt = msgt & \供应商编号不是4位; \ '光标定位 txt(0).SetFocus txt(0).SelStart = 0
28