⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmclient.frm

📁 本章示例使用的是Windows2000 Professional版的操作系统
💻 FRM
📖 第 1 页 / 共 4 页
字号:
   cmdNext.Enabled = True
   cmdLast.Enabled = True
   '如果已经是第一条记录,则提示用户
   If rs_client.BOF = True Then
      MsgBox "对不起,已经是第一条记录了!", vbOKOnly + vbInformation, "注意"
      Exit Sub
   '如果不是,则个数据表的记录位置移到第一条记录,并且显示之
   Else
      For i = 0 To 6
         Text1(i).Text = rs_client.Fields(i)
      Next i
      If rs_client.Fields(7) = "男" Then
         Combo1.ListIndex = 0
      ElseIf rs_client.Fields(7) = "女" Then
         Combo1.ListIndex = 1
      End If
   End If
End Sub

Private Sub cmdLast_Click()
   '移动rs_client记录到最后一条
   rs_client.MoveLast
   cmdFirst.Enabled = True
   cmdPrev.Enabled = True
   cmdNext.Enabled = False
   cmdLast.Enabled = False
    '如果已经是最后一条记录,则提示用户
   If rs_client.EOF = True Then
      MsgBox "对不起,已经是最后一条记录了!", vbOKOnly + vbInformation, "注意"
      Exit Sub
   '如果不是最后一条,则数据表的记录位置移到后一条记录,并且显示之
   Else
      If SSTab1.Tab = 0 Then
         For i = 0 To 6
            Text1(i).Text = rs_client.Fields(i)
         Next i
         If rs_client.Fields(7) = "男" Then
            Combo1.ListIndex = 0
         ElseIf rs_client.Fields(7) = "女" Then
            Combo1.ListIndex = 1
         End If
      ElseIf SSTab1.Tab = 1 Then
         For i = 7 To 14
            Text1(i).Text = rs_client.Fields(i - 7)
         Next i
      End If
   End If
End Sub

Private Sub cmdNext_Click()
   '先移动rs_client记录到后一条
   rs_client.MoveNext
   '设置前一条和第一条按钮可用
   cmdPrev.Enabled = True
   cmdFirst.Enabled = True
   '如果已经是最后一条记录,则提示用户
   If rs_client.EOF = True Then
      MsgBox "对不起,已经是最后一条记录了!", vbOKOnly + vbInformation, "注意"
      '并且设置“后一条”和最后一条按钮不可用
      cmdNext.Enabled = False
      cmdLast.Enabled = False
      Exit Sub
   '如果不是,则个数据表的记录位置移到后一条记录,并且显示之
   Else
      If SSTab1.Tab = 0 Then
         For i = 0 To 6
            Text1(i).Text = rs_client.Fields(i)
         Next i
         If rs_client.Fields(7) = "男" Then
            Combo1.ListIndex = 0
         ElseIf rs_client.Fields(7) = "女" Then
            Combo1.ListIndex = 1
         End If
      ElseIf SSTab1.Tab = 1 Then
         For i = 7 To 14
            Text1(i).Text = rs_client.Fields(i - 7)
         Next i
      End If
   End If
End Sub

Private Sub cmdPrev_Click()
   '先移动rs_client记录到前一条
   rs_client.MovePrevious
   '设置后一条和最后一条按钮可用
   cmdNext.Enabled = True
   cmdLast.Enabled = True
   '如果已经是第一条记录,则提示用户
   If rs_client.BOF = True Then
      MsgBox "对不起,已经是第一条记录了!", vbOKOnly + vbInformation, "注意"
      '并且设置“前一条”和第一条按钮不可用
      cmdPrev.Enabled = False
      cmdFirst.Enabled = False
      Exit Sub
   '如果不是,则数据表的记录位置移到前一条记录,并且显示之
   Else
      If SSTab1.Tab = 0 Then
         For i = 0 To 6
            Text1(i).Text = rs_client.Fields(i)
         Next i
         If rs_client.Fields(7) = "男" Then
            Combo1.ListIndex = 0
         ElseIf rs_client.Fields(7) = "女" Then
            Combo1.ListIndex = 1
         End If
      ElseIf SSTab1.Tab = 1 Then
         For i = 7 To 14
            Text1(i).Text = rs_client.Fields(i - 7)
         Next i
      End If
   End If
End Sub

Private Sub cmdQuery_Click()
   If SSTab1.Tab = 0 Then
      frmQueryClientf.Show
   ElseIf SSTab1.Tab = 1 Then
      frmQueryClientg.Show
   End If
End Sub

Private Sub cmdSave_Click()
   
   If SSTab1.Tab = 0 Then
      '检测数据是否完整
      If Text1(0).Text = "" Then
         MsgBox "租户编号不可为空!", vbOKOnly + vbInformation, "注意"
         Text1(0).SetFocus
         Exit Sub
      ElseIf Text1(1).Text = "" Then
         MsgBox "租户姓名不可为空!", vbOKOnly + vbInformation, "注意"
         Text1(1).SetFocus
         Exit Sub
      ElseIf Text1(4).Text = "" Then
         MsgBox "身份证号不可为空!", vbOKOnly + vbInformation, "注意"
         Text1(4).SetFocus
         Exit Sub
      ElseIf Not Text1(5).Text = "" And IsNumeric(Text1(5).Text) = False Then
         MsgBox "租住人数应为数字!", vbOKOnly + vbInformation, "注意"
         Text1(5).SetFocus
         Exit Sub
      End If
   
      '添加数据后保存
      If addf = 1 Then
         '检测编号这个主键是否已经在表中存在
         Dim rs_check As New ADODB.Recordset
         Dim sqlCheck As String
         sqlCheck = "select * from Client where 租户编号= '" & (Text1(0).Text) & "'"
         rs_check.Open sqlCheck, conn, adOpenStatic, adLockOptimistic
         If Not rs_check.EOF And Not rs_check.BOF Then
            MsgBox "该租户编号已经存在,请重填一个!", vbOKOnly + vbInformation, "注意"
            rs_check.Close
            Text1(0).SetFocus
            Text1(0).Text = ""
            Exit Sub
         End If
         rs_check.Close
         '主键不重复,可以加入表中
         rs_client.AddNew
         For i = 0 To 6
            rs_client.Fields(i) = Text1(i).Text
         Next i
         rs_client.Fields(7) = Combo1.Text
         rs_client.Update
         '添加之后显示总共条数信息加 1
         Text2.Text = Val(Text2.Text) + 1
      '修改数据后的保存
      Else
         rs_client.Update
      End If
      '保存后重新设置各text不可写
      For i = 0 To 6
         Text1(i).Enabled = False
      Next i
      Combo1.Enabled = False
   ElseIf SSTab1.Tab = 1 Then
      '检测数据是否完整
      If Text1(7).Text = "" Then
         MsgBox "租户编号不可为空!", vbOKOnly + vbInformation, "注意"
         Text1(7).SetFocus
         Exit Sub
      ElseIf Text1(8).Text = "" Then
         MsgBox "公司名称不可为空!", vbOKOnly + vbInformation, "注意"
         Text1(8).SetFocus
         Exit Sub
      ElseIf Text1(9).Text = "" Then
         MsgBox "公司性质不可为空!", vbOKOnly + vbInformation, "注意"
         Text1(9).SetFocus
         Exit Sub
      ElseIf Text1(10).Text = "" Then
         MsgBox "经营范围不可为空!", vbOKOnly + vbInformation, "注意"
         Text1(10).SetFocus
         Exit Sub
      ElseIf Text1(11).Text = "" Then
         MsgBox "法人代表不可为空!", vbOKOnly + vbInformation, "注意"
         Text1(11).SetFocus
         Exit Sub
      ElseIf Text1(12).Text = "" Then
         MsgBox "联系人不可为空!", vbOKOnly + vbInformation, "注意"
         Text1(12).SetFocus
         Exit Sub
      ElseIf Text1(13).Text = "" Then
         MsgBox "电话不可为空!", vbOKOnly + vbInformation, "注意"
         Text1(13).SetFocus
         Exit Sub
      End If
   
      '添加数据后保存
      If addg = 1 Then
         '检测编号这个主键是否已经在表中存在
         Dim rs_checkg As New ADODB.Recordset
         Dim sqlCheckg As String
         sqlCheckg = "select * from GongSi where 租户编号= '" & (Text1(7).Text) & "'"
         rs_checkg.Open sqlCheckg, conn, adOpenStatic, adLockOptimistic
         If Not rs_checkg.EOF And Not rs_checkg.BOF Then
            MsgBox "该租户编号已经存在,请重填一个!", vbOKOnly + vbInformation, "注意"
            rs_checkg.Close
            Text1(7).SetFocus
            Text1(7).Text = ""
            Exit Sub
         End If
         rs_checkg.Close
         '主键不重复,可以加入表中
         rs_client.AddNew
         For i = 7 To 14
            rs_client.Fields(i - 7) = Text1(i).Text
         Next i
         rs_client.Update
         '添加之后显示总共条数信息加 1
         Text2.Text = Val(Text2.Text) + 1
      '修改数据后的保存
      Else
         rs_client.Update
      End If
      '保存后重新设置各text不可写
      For i = 7 To 14
         Text1(i).Enabled = False
      Next i
   End If
   '以下是不管处于那个选项卡都需要的代码,故放在最后
   MsgBox "保存数据成功!", vbOKOnly + vbInformation, "祝贺"
   '保存后需要设置其他按钮可用,以及各个text框不可写
   cmdAdd.Enabled = True
   cmdEdit.Enabled = True
   cmdDel.Enabled = True
   cmdSave.Enabled = False
   cmdCancel.Enabled = False
   cmdFirst.Enabled = True
   cmdPrev.Enabled = True
   cmdNext.Enabled = True
   cmdLast.Enabled = True
   cmdQuery.Enabled = True
   
End Sub

Private Sub Form_Activate()
   Dim X0 As Long
   Dim Y0 As Long
   '让窗体居中
   X0 = Screen.Width
   Y0 = Screen.Height
   X0 = (X0 - Me.Width) / 2
   Y0 = (Y0 - Me.Height) / 2
   Me.Move X0, Y0
   cmdSave.Enabled = False
   cmdCancel.Enabled = False
   Combo1.ListIndex = 0
   
   '分别处理2个选项卡
   Select Case SSTab1.Tab
      '家庭租户选项卡
      Case 0
          '每个选项卡中又分进入显示和查询显示两种情况
          '如果不是查询显示,则显示第一条记录
          If querycf = False Then
             '在from_laod()方法中打开住户信息表
             '如果rs_count rs_client 当前状态是打开的,则先关闭之
             If rs_count.State = adStateOpen Then
                rs_count.Close
             End If
             If rs_client.State = adStateOpen Then
                rs_client.Close
             End If
             sqlclient = "select * from Client"
             rs_client.CursorLocation = adUseClient
             rs_client.Open sqlclient, conn, adOpenStatic, adLockOptimistic
             
             If rs_client.EOF Then
                Text2.Text = 0
                '没有记录,则提示用户,退出本过程
                MsgBox "当前表中没有记录!", vbOKOnly + vbInformation, "注意"
                '如果是0条记录,需要设置前翻后翻的按钮为不可用
                cmdFirst.Enabled = False
                cmdPrev.Enabled = False
                cmdNext.Enabled = False
                cmdLast.Enabled = False
                cmdDel.Enabled = False
                cmdEdit.Enabled = False
                cmdSave.Enabled = False
                Exit Sub
             '找到符合条件的记录
             Else
                '如果有记录,需要设置前翻后翻的按钮为可用
                cmdFirst.Enabled = True
                cmdPrev.Enabled = True
                cmdNext.Enabled = True
                cmdLast.Enabled = True
                cmdDel.Enabled = True
                cmdEdit.Enabled = True
                cmdSave.Enabled = True
                '计算总共数据条数
                sqlcount = "select count(*) from Client"
                rs_count.Open sqlcount, conn, adOpenStatic, adLockOptimistic
                '有记录则,显示第一条,并且显示记录条数
                Text2.Text = rs_count.Fields(0)
                If Not rs_client.EOF And Not rs_client.BOF Then
                   For i = 0 To 6
                      Text1(i).Text = rs_client.Fields(i)
                   Next i
                   If rs_client.Fields(7) = "男" Then
                      Combo1.ListIndex = 0
                   ElseIf rs_client.Fields(7) = "女" Then
                      Combo1.ListIndex = 1
                   End If
                End If
             End If
               
          '如果是查询显示则相应sql语句为查询语句
          ElseIf querycf = True Then
             '因为开始显示时必定打开了rs_client,rs_count,所以应该先关闭它们
             rs_client.Close
             rs_count.Close
             sqlclient = "select * from Client " & sqlqcf
             rs_client.CursorLocation = adUseClient
             rs_client.Open sqlclient, conn, adOpenStatic, adLockOptimistic
             If rs_client.EOF Then
                Text2.Text = 0
                '如果没有找到记录,则提示用户,置空所有text控件,并且退出本子过程
                MsgBox "没有找到符合条件的记录", vbOKOnly + vbInformation, "注意"
                For i = 0 To 6
                   Text1(i).Text = ""
                Next i
               '如果是0条记录,需要设置前翻后翻的按钮为不可用
                cmdFirst.Enabled = False
                cmdPrev.Enabled = False
                cmdNext.Enabled = False
                cmdLast.Enabled = False
                cmdDel.Enabled = False
                cmdEdit.Enabled = False
                cmdSave.Enabled = False
                Exit Sub
             '找到符合条件的记录
             Else
                '如果有记录,需要设置前翻后翻的按钮为可用
                cmdFirst.Enabled = True
                cmdPrev.Enabled = True
                cmdNext.Enabled = True
                cmdLast.Enabled = True
                cmdDel.Enabled = True

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -