暂无描述
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

人事考勤打卡.vb 4.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. Option Strict Off
  2. Imports System.Data.SqlClient
  3. Public Class 人事考勤打卡
  4. Dim conn As New SqlConnection
  5. Dim da As New SqlDataAdapter
  6. Dim cmd As New SqlCommand
  7. Dim ds As New DataSet : Dim ds1 As New DataSet
  8. Dim dr As SqlDataReader
  9. Dim DTP As String : Dim DTP1 As String
  10. Private Sub 考勤打卡_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  11. FormBorderStyle = FormBorderStyle.SizableToolWindow : ControlBox = False
  12. Label1.Text = Year(Today) : Label3.Text = Month(Today) : Label5.Text = Strings.Right(Format(Today(), "yyyy/MM/dd"), 2) : Label7.Text = Format(TimeOfDay(), "HH:mm:ss")
  13. Dim 判斷請假 As String = ""
  14. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  15. SQL1 = "SELECT 請假類別 FROM 人事考勤明細表 WHERE 員工編號 LIKE '" & 員工編號 & "' AND 日期 LIKE '" & Today() & "'"
  16. cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader
  17. If dr.Read() Then : 判斷請假 = dr("請假類別").ToString : End If : conn.Close()
  18. If Strings.Right(判斷請假, 2) = "一天" Then : Button1.Enabled = False : Button1.Text = "本日請假中,無法打卡" : End If
  19. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  20. SQL1 = "SELECT 上午上班, 下午下班 FROM 人事考勤明細表 WHERE 員工編號 LIKE '" & 員工編號 & "' AND 日期 LIKE '" & Today() & "'"
  21. cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader
  22. If dr.Read() Then : Label10.Text = dr("上午上班").ToString : Label12.Text = dr("下午下班").ToString : End If : conn.Close()
  23. If Label10.Text = "XXX" Or Label10.Text = "" Then : Label10.Text = "未打卡" : End If : If Label12.Text = "XXX" Or Label12.Text = "" Then : Label12.Text = "未打卡" : End If
  24. If Val(Strings.Left(Label7.Text, 2)) < 12 Then : Label14.Text = "上午上班" : Else : Label14.Text = "下午下班" : End If
  25. If 員工編號 = "" Then : Button1.Text = "該帳號持有人無需打卡" : Button1.Enabled = False : End If
  26. End Sub
  27. Dim 有無資料判別 As String = ""
  28. Private Sub Set_日期格式轉換()
  29. DTP = Format(Today(), "yyyy/MM/dd")
  30. End Sub
  31. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  32. Set_日期格式轉換()
  33. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  34. SQL1 = "SELECT 員工編號 FROM 人事考勤明細表 WHERE 員工編號 LIKE '" & 員工編號 & "' AND 日期 LIKE '" & Today() & "'"
  35. cmd.Connection = conn : cmd.CommandText = SQL1 : dr = cmd.ExecuteReader
  36. If dr.Read() Then : 有無資料判別 = dr("員工編號").ToString : End If : conn.Close()
  37. If 有無資料判別 = "" And Label14.Text = "上午上班" Then
  38. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  39. SQL1 = "INSERT INTO 人事考勤明細表 (員工編號, 日期, 請假類別, 上午上班, 下午下班) SELECT N'" & 員工編號 & "',N'" & DTP & "',N'','" & Format(TimeOfDay(), "HH:mm:ss") & "',''"
  40. cmd.Connection = conn : cmd.CommandText = SQL1 : cmd.ExecuteNonQuery() : conn.Close()
  41. ElseIf 有無資料判別 = "" And Label14.Text = "下午下班" Then
  42. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  43. SQL1 = "INSERT INTO 人事考勤明細表 (員工編號, 日期, 請假類別, 上午上班, 下午下班) SELECT N'" & 員工編號 & "',N'" & DTP & "',N'','','" & Format(TimeOfDay(), "HH:mm:ss") & "'"
  44. cmd.Connection = conn : cmd.CommandText = SQL1 : cmd.ExecuteNonQuery() : conn.Close()
  45. ElseIf 有無資料判別 <> "" And Label14.Text = "上午上班" Then
  46. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  47. SQL1 = "UPDATE 人事考勤明細表 SET 上午上班 = '" & Format(TimeOfDay(), "HH:mm:ss") & "' WHERE (員工編號 = '" & 員工編號 & "') AND (日期 LIKE '" & Today() & "')"
  48. cmd.CommandText = SQL1 : cmd.ExecuteNonQuery() : conn.Close()
  49. ElseIf 有無資料判別 <> "" And Label14.Text = "下午下班" Then
  50. If conn.State = ConnectionState.Closed Then : conn.ConnectionString = ConString : conn.Open() : End If
  51. SQL1 = "UPDATE 人事考勤明細表 SET 下午下班 = '" & Format(TimeOfDay(), "HH:mm:ss") & "' WHERE (員工編號 = '" & 員工編號 & "') AND (日期 LIKE '" & Today() & "')"
  52. cmd.CommandText = SQL1 : cmd.ExecuteNonQuery() : conn.Close()
  53. End If
  54. MsgBox("打卡完成")
  55. Me.Close()
  56. End Sub
  57. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
  58. Me.Close()
  59. End Sub
  60. End Class