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

📄 main_kqgl_addmodify.frm

📁 人事管理系统
💻 FRM
📖 第 1 页 / 共 2 页
字号:
      Begin VB.CommandButton cmdSeladd 
         Caption         =   "选择员工"
         Height          =   345
         Left            =   7050
         TabIndex        =   13
         Top             =   1515
         Width           =   1245
      End
      Begin VB.CommandButton cmdDeptadd 
         Caption         =   "部门员工"
         Height          =   345
         Left            =   5730
         TabIndex        =   12
         Top             =   1515
         Width           =   1245
      End
      Begin VB.CommandButton cmdAlladd 
         Caption         =   "全体员工"
         Height          =   345
         Left            =   4410
         TabIndex        =   11
         Top             =   1515
         Width           =   1245
      End
      Begin MSDataListLib.DataCombo DataCombo1 
         Bindings        =   "main_kqgl_addmodify.frx":165F
         Height          =   330
         Left            =   4365
         TabIndex        =   9
         Top             =   240
         Width           =   3990
         _ExtentX        =   7038
         _ExtentY        =   582
         _Version        =   393216
         ListField       =   "部门名称"
         BoundColumn     =   "部门编号"
         Text            =   ""
      End
      Begin VB.Frame Frame2 
         Height          =   690
         Left            =   165
         TabIndex        =   3
         Top             =   1185
         Width           =   3180
         Begin VB.OptionButton Option1 
            Caption         =   "下班"
            Height          =   435
            Index           =   1
            Left            =   1650
            TabIndex        =   5
            Top             =   180
            Width           =   1400
         End
         Begin VB.OptionButton Option1 
            Caption         =   "上班"
            Height          =   435
            Index           =   0
            Left            =   345
            TabIndex        =   4
            Top             =   180
            Value           =   -1  'True
            Width           =   1515
         End
      End
      Begin MSComCtl2.DTPicker DTPicker1 
         Height          =   315
         Left            =   1170
         TabIndex        =   2
         Top             =   300
         Width           =   2160
         _ExtentX        =   3810
         _ExtentY        =   556
         _Version        =   393216
         Format          =   19791873
         CurrentDate     =   39450
      End
      Begin MSMask.MaskEdBox MaskEdBoxTime 
         Height          =   315
         Left            =   1170
         TabIndex        =   18
         Top             =   750
         Width           =   2160
         _ExtentX        =   3810
         _ExtentY        =   556
         _Version        =   393216
         MaxLength       =   5
         Format          =   "hh:mm"
         Mask            =   "##:##"
         PromptChar      =   "_"
      End
      Begin VB.Label Label5 
         Caption         =   "上下班日期"
         Height          =   270
         Left            =   135
         TabIndex        =   16
         Top             =   390
         Width           =   1080
      End
      Begin VB.Label Label4 
         Caption         =   "员工"
         Height          =   240
         Left            =   3840
         TabIndex        =   10
         Top             =   840
         Width           =   495
      End
      Begin VB.Label Label3 
         Caption         =   "部门"
         Height          =   240
         Left            =   3840
         TabIndex        =   8
         Top             =   300
         Width           =   495
      End
      Begin VB.Label Label1 
         Caption         =   "上下班时间"
         Height          =   270
         Left            =   135
         TabIndex        =   1
         Top             =   840
         Width           =   1080
      End
   End
   Begin VB.Label Label2 
      BackStyle       =   0  'Transparent
      Caption         =   "出勤记录表:"
      Height          =   255
      Left            =   90
      TabIndex        =   6
      Top             =   2325
      Width           =   1230
   End
End
Attribute VB_Name = "main_kqgl_addmodify"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim rs As New ADODB.Recordset, rs1 As New ADODB.Recordset, rs2 As New ADODB.Recordset
Public s As String, mysql As String
Sub timeerr()
  If Left(MaskEdBoxTime.Text, 2) > 24 Then     '如果小时大于24,则提示时间输入错误
    MsgBox "时间输入错误!"
    Exit Sub
  End If
  If Right(MaskEdBoxTime.Text, 2) > 59 Then     '如果分钟大于59,则提示时间输入错误
    MsgBox "时间输入错误!"
    Exit Sub
  End If
End Sub
Private Sub Form_Load()
  DataCombo1.Text = "总公司"         '设置"部门"为总公司
  Option1_Click (Index)          '调用该过程,默认设置为上班
  cmdFind_Click            '调用该过程按默认条件检索数据
  DTPicker1.Value = Date          '设置上下班日期为当前系统日期
End Sub
Private Sub Option1_Click(Index As Integer)
  s = Option1(Index).Caption         '将Option1控件数组显示的标题赋值给变量s
  rs.Open "时间设置表", cnn, adOpenKeyset, adLockOptimistic  '连接时间设置表
  If rs.RecordCount > 0 Then         '如果表中有记录
    If Option1(0) = True Then         '如果选择了"上班"
       MaskEdBoxTime.Text = Left(rs.Fields("上班时间"), 5)  '设置上班时间为表中的时间
    Else              '否则
       MaskEdBoxTime.Text = Left(rs.Fields("下班时间"), 5)   '设置下班时间为表中的时间
    End If
  End If
  rs.Close             '关闭数据集对象
End Sub
Private Sub DataCombo1_Change()
  List1.Clear               '清空列表(List1)
  If DataCombo1.Text = "总公司" Then         '如果为"总公司"
    rs.Open "select * from 员工信息表", cnn, adOpenKeyset, adLockOptimistic '连接员工信息表
    If rs.RecordCount > 0 Then           '如果表中有记录
      rs.MoveFirst             '将记录指针移到第一条记录
      Do While rs.EOF = False           '只要记录不到尾
         List1.AddItem rs.Fields("编号") & "  " & rs.Fields("姓名") '将当前员工编号和姓名添加到列表中
         rs.MoveNext           '将记录指针移到下一条记录
      Loop
    End If
    rs.Close             '关闭数据集对象
  Else              '否则
    rs.Open "select * from 员工信息表 where 部门='" + DataCombo1.Text + "'", cnn, adOpenKeyset, adLockOptimistic             '连接员工信息,显示当前部门的所有员工
    If rs.RecordCount > 0 Then         '如果有记录
      rs.MoveFirst           '将记录指针移到第一条记录
      Do While rs.EOF = False         '只要记录不到尾
         List1.AddItem rs.Fields("编号") & "  " & rs.Fields("姓名") '将当前员工编号和姓名添加到列表中
         rs.MoveNext           '将记录指针移到下一条记录
      Loop
    End If
    rs.Close             '关闭数据集对象
  End If
  cmdFind_Click            '调用过程,按当前默认条件检索记录
End Sub
Private Sub cmdAlladd_Click()
  rs1.Open "select * from 员工信息表 order by 编号", cnn, adOpenKeyset, adLockOptimistic  '连接员工信息表
  If rs1.RecordCount > 0 Then              '如果表中有记录
    Do While rs1.EOF = False              '只要记录不到尾
      rs2.Open "select * from 出勤记录表 where 日期='" + Str(DTPicker1.Value) + "'and 上下班情况='" + s + "'and 员工编号='" + rs1.Fields("编号") + "'", cnn, adOpenKeyset, adLockOptimistic   '按指定条件查找员工出勤记录
      If rs2.RecordCount > 0 Then          '如果有记录就什么也不做
      
      Else               '否则
        rs2.AddNew             '添加新记录
        '给员工编号和员工姓名字段赋值
        rs2.Fields("员工编号") = rs1.Fields("编号")
        rs2.Fields("员工姓名") = rs1.Fields("姓名")
        '给上下班情况字段赋值
        Set rs = cnn.Execute("select * from 时间设置表")     '连接时间设置表
        If Option1(0) = True Then
          rs2.Fields("上下班情况") = Option1(0).Caption
          '将上班时间同"时间设置表"中的时间进行比较
          If MaskEdBoxTime.Text <> Left(rs.Fields("上班时间"), 5) Then
            rs2.Fields("是否异常") = "异常"   '如果不同则为"异常",同时计算异常时间
            rs2.Fields("异常时间") = DateDiff("n", Left(rs.Fields("上班时间"), 5), MaskEdBoxTime.Text) & "分钟"
          Else          '否则
            rs2.Fields("是否异常") = "正常"   '为"正常"
          End If
        Else
          rs2.Fields("上下班情况") = Option1(1).Caption
          '将下班时间同"时间设置表"中的时间进行比较
          If MaskEdBoxTime.Text <> Left(rs.Fields("下班时间"), 5) Then
            rs2.Fields("是否异常") = "异常"   '如果不同则为"异常",同时计算异常时间
            rs2.Fields("异常时间") = DateDiff("n", MaskEdBoxTime.Text, Left(rs.Fields("下班时间"), 5)) & "分钟"
          Else          '否则
            rs2.Fields("是否异常") = "正常"   '为"正常"
          End If

        End If
        '给上下班时间和日期字段赋值
        rs2.Fields("上下班时间") = MaskEdBoxTime.Text
        rs2.Fields("日期") = DTPicker1.Value
        rs.Close              '关闭数据集对象rs
        rs2.Update             '更新数据表
      End If
      rs2.Close              '关闭数据集对象rs2
      rs1.MoveNext             '将记录指针移到下一条记录
    Loop
  End If
  rs1.Close               '关闭数据集对象rs1
  Adodc2.Refresh              '刷新数据库
End Sub

Private Sub cmdDeptadd_Click()
  rs1.Open "select * from 员工信息表 where 部门='" + DataCombo1.Text + "'order by 编号", cnn, adOpenKeyset, adLockOptimistic
  If rs1.RecordCount > 0 Then
    Do While rs1.EOF = False
      rs2.Open "select * from 出勤记录表 where 日期='" + Str(DTPicker1.Value) + "'and 上下班情况='" + s + "'and 员工编号='" + rs1.Fields("编号") + "'", cnn, adOpenKeyset, adLockOptimistic
      If rs2.RecordCount > 0 Then
      
      Else
        rs2.AddNew
        rs2.Fields("员工编号") = rs1.Fields("编号")
        rs2.Fields("员工姓名") = rs1.Fields("姓名")
        Set rs = cnn.Execute("select * from 时间设置表")
        If Option1(0) = True Then
           rs2.Fields("上下班情况") = Option1(0).Caption
           If MaskEdBoxTime.Text <> Left(rs.Fields("上班时间"), 5) Then
             rs2.Fields("是否异常") = "异常"
             rs2.Fields("异常时间") = DateDiff("n", Left(rs.Fields("上班时间"), 5), MaskEdBoxTime.Text) & "分钟"
           Else
             rs2.Fields("是否异常") = "正常"
           End If
        Else
           rs2.Fields("上下班情况") = Option1(1).Caption
           If MaskEdBoxTime.Text <> Left(rs.Fields("下班时间"), 5) Then
             rs2.Fields("是否异常") = "异常"
             rs2.Fields("异常时间") = DateDiff("n", MaskEdBoxTime.Text, Left(rs.Fields("下班时间"), 5)) & "分钟"
           Else
             rs2.Fields("是否异常") = "正常"
           End If
        End If
        rs2.Fields("上下班时间") = MaskEdBoxTime.Text
        rs2.Fields("日期") = DTPicker1.Value
        rs.Close
        rs2.Update
      End If
      rs2.Close
      rs1.MoveNext
    Loop
    
  End If
  rs1.Close
  Adodc2.Refresh
End Sub
Private Sub cmdSeladd_Click()
  Load main_selman             '载入"选择员工"窗体
  main_selman.Show             '显示"选择员工"窗体
End Sub

Private Sub cmdFind_Click()
  If DataCombo1.Text = "总公司" Then   '如果"部门"列表中显示的是"总公司"
    mysql = "出勤记录表 where 日期='" + Str(DTPicker1.Value) + "'and 上下班情况='" + s + "'" '生成SQL语句
  Else                   '否则
    '生成SQL语句
    mysql = "出勤记录表,员工信息表 where 员工信息表.部门='" + DataCombo1.Text + "'and 出勤记录表.员工编号=员工信息表.编号 and 出勤记录表.日期='" + Str(DTPicker1.Value) + "'and 出勤记录表.上下班情况='" + s + "'"
  End If
  Adodc2.RecordSource = mysql     '将SQL语句赋值给ADO控件的RecordSource属性实现查询
  Adodc2.Refresh        '刷新数据库
End Sub
Private Sub cmdSeldelete_Click()
  If DataCombo1.Text = "总公司" Then   '如果"部门"列表中显示的是"总公司"
    cnn.Execute ("delete from 出勤记录表 where 日期='" + Str(DTPicker1.Value) + "'and 出勤记录表.上下班情况='" + s + "'")          '删除符合条件的出勤记录
  Else          '否则
    '按部门删除符合条件的出勤记录
    cnn.Execute ("delete from 出勤记录表 where 员工编号 in (select 员工信息表.编号 from 出勤记录表,员工信息表 where 员工信息表.部门='" + DataCombo1.Text + "'and 出勤记录表.员工编号=员工信息表.编号 and 出勤记录表.日期='" + Str(DTPicker1.Value) + "'and 出勤记录表.上下班情况='" + s + "')")
  End If
  Adodc2.Refresh        '刷新数据表
End Sub


⌨️ 快捷键说明

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