Nenhuma descrição
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

SQL_考勤系統.vb 14KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235
  1. Module SQL_考勤系統
  2. Friend Sub SQL_人員薪資資料()
  3. ConnOpen()
  4. SQL1 = "SELECT ras_Users.DIN AS [No.], ras_Users.DIN AS 編號, ras_Users.UserName AS 姓名, 使用者權限管理表.CC18 AS 時薪人員,
  5. 使用者權限管理表.月薪, 使用者權限管理表.時薪, 使用者權限管理表.主管加級, 使用者權限管理表.職務加級,
  6. 使用者權限管理表.勞保費, 使用者權限管理表.健保費, 使用者權限管理表.到職日
  7. FROM ras_Users INNER JOIN 使用者權限管理表 ON ras_Users.DIN = 使用者權限管理表.DIN
  8. WHERE IsLockedOut = 0 AND ras_Users.DIN NOT LIKE '18' AND ras_Users.DIN NOT LIKE '19' AND
  9. ras_Users.DIN NOT LIKE '21' AND ras_Users.DIN NOT LIKE '90'
  10. ORDER BY 編號"
  11. CmdSet_For_DGV()
  12. End Sub
  13. Friend Sub SQL_考勤明細表_人員()
  14. ConnOpen()
  15. SQL1 = "SELECT ras_Users.DIN AS [No.], ras_Users.DIN AS 編號, ras_Users.UserName AS 姓名, 使用者權限管理表.CC18,
  16. 使用者權限管理表.月薪, 使用者權限管理表.時薪, 使用者權限管理表.主管加級, 使用者權限管理表.職務加級,
  17. 使用者權限管理表.勞保費, 使用者權限管理表.健保費, 使用者權限管理表.到職日
  18. FROM ras_Users INNER JOIN
  19. 使用者權限管理表 ON ras_Users.DIN = 使用者權限管理表.DIN
  20. WHERE (ras_Users.IsLockedOut = 0) AND (ras_Users.DIN NOT LIKE '18') AND
  21. (ras_Users.DIN NOT LIKE '19') AND (ras_Users.DIN NOT LIKE '21')
  22. ORDER BY 編號"
  23. CmdSet_For_DGV()
  24. End Sub
  25. Friend Sub SQL_考勤明細表_月份考勤() '8、9、11、12、14、15
  26. ConnOpen()
  27. SQL1 = "SELECT 萬年曆.日期, 萬年曆.星期, AA.請假類別 AS 休假類別, AA.事由 AS 假期內容, AA.是否生效, AA.核准人, AA.核准日期,
  28. 萬年曆.星期 AS 班別判斷, 萬年曆.星期 AS 一段上班, 萬年曆.星期 AS 一段下班, 萬年曆.星期 AS 休息1,
  29. 萬年曆.星期 AS 二段上班, 萬年曆.星期 AS 二段下班, 萬年曆.星期 AS 休息2, 萬年曆.星期 AS 加班上班,
  30. 萬年曆.星期 AS 加班下班, 萬年曆.星期 AS 一段工時, 萬年曆.星期 AS 二段工時, 萬年曆.星期 AS 加班工時,
  31. 萬年曆.星期 AS 一段加班, 萬年曆.星期 AS 二段加班, QQ.半天, QQ.班別, 萬年曆.下診 AS 最後下診,
  32. BB.申請狀態, BB.加班狀態, AA.申請時數
  33. FROM 萬年曆 LEFT OUTER JOIN
  34. (SELECT 排班資料表.日期, 排班資料表.項次, 排班資料表.姓名, 排班資料表.班別, 排班資料表.上班時段,
  35. 排班資料表.時數, 排班資料表.半天, 排班資料表.休息, 排班資料表.一段, 排班資料表.二段,
  36. 排班資料表.排時, ras_Users.DIN
  37. FROM 排班資料表 INNER JOIN ras_Users ON 排班資料表.姓名 = ras_Users.UserName
  38. WHERE (排班資料表.日期 LIKE N'" & PA1 & "/" & PA2 & "%') AND (ras_Users.DIN = " & PA & ")) AS QQ ON 萬年曆.日期 = QQ.日期 LEFT OUTER JOIN
  39. (SELECT 員工編號, 日期, 請假類別, 事由, 是否生效, 核准人, 核准日期, 申請時數
  40. FROM 人事請假單
  41. WHERE (員工編號 LIKE N'" & PA & "') AND (日期 LIKE N'" & PA1 & "/" & PA2 & "%')) AS AA ON 萬年曆.日期 = AA.日期 LEFT OUTER JOIN
  42. (SELECT 員工編號, 日期, 加班狀態, 是否生效 AS 申請狀態
  43. FROM 加班申請單
  44. WHERE (員工編號 LIKE N'" & PA & "') AND (日期 LIKE N'" & PA1 & "/" & PA2 & "%')) AS BB ON 萬年曆.日期 = BB.日期
  45. WHERE (萬年曆.日期 LIKE N'" & PA1 & "/" & PA2 & "%')
  46. ORDER BY 萬年曆.日期"
  47. CmdSet_For_DGV()
  48. End Sub
  49. Friend Sub SQL_考勤明細表_考勤流水()
  50. ConnOpen()
  51. SQL1 = "SELECT ID AS [No.], ID, CONVERT(varchar(100), Clock, 120) AS 打卡時間
  52. FROM ras_AttRecord
  53. WHERE (DIN = " & PA & ") AND (MONTH(Clock) = N'" & PA2 & "') AND (YEAR(Clock) = N'" & PA1 & "')
  54. ORDER BY Clock"
  55. CmdSet_For_DGV()
  56. End Sub
  57. Friend Sub SQL_考勤明細表_班別()
  58. ConnOpen()
  59. SQL1 = "SELECT ID, 時段, 上午上班, 一段休息, 下午上班, 二段休息, 加班上班, 時段1, 時段2, 時段3, 時段4, 時段5, 時段6, 時段7, 時段8
  60. FROM 時段設定 WHERE ID > 0 ORDER BY ID"
  61. CmdSet_For_DGV()
  62. End Sub
  63. Friend Sub SQL_考勤明細表_打卡讀取_上午上班()
  64. ConnOpen()
  65. SQL1 = "SELECT
  66. CONVERT(varchar(100), Clock, 24) AS 打卡時間,
  67. CASE
  68. WHEN DATEPART(HOUR, Clock) < 3 THEN
  69. CONVERT(varchar(10), DATEADD(DAY, -1, Clock), 111)
  70. ELSE
  71. CONVERT(varchar(10), Clock, 111)
  72. END AS 日期
  73. FROM
  74. ras_AttRecord
  75. WHERE
  76. (DIN = " & PA & ")
  77. AND (MONTH(Clock) = N'" & PA2 & "')
  78. AND (YEAR(Clock) = N'" & PA1 & "')
  79. AND (
  80. (CAST(Clock AS TIME) >= '05:00:00') OR
  81. (CAST(Clock AS TIME) < '03:00:00')
  82. )
  83. ORDER BY
  84. Clock"
  85. 'SQL1 = "SELECT CONVERT(varchar(100), Clock, 24) AS 打卡時間, CONVERT(varchar(10), Clock, 111) AS 日期
  86. ' FROM ras_AttRecord
  87. ' WHERE (DIN = " & PA & ") AND (MONTH(Clock) = N'" & PA2 & "') AND (YEAR(Clock) = N'" & PA1 & "') AND
  88. ' (CAST(Clock AS TIME) >= '05:00:00')
  89. ' ORDER BY Clock"
  90. CmdSet_For_DGV()
  91. 'SQL1 = "WHERE (DIN = " & PA & ") AND (DAY(Clock) = N'" & PA3 & "') AND (MONTH(Clock) = N'" & PA2 & "') AND (YEAR(Clock) = N'" & PA1 & "') AND
  92. ' (Clock >= N'" & PA1 & "/" & PA2 & "/" & PA3 & " 05:00:00')"
  93. End Sub
  94. Friend Sub SQL_考勤明細表_打卡讀取_中午下上班()
  95. ConnOpen()
  96. SQL1 = "SELECT
  97. CONVERT(varchar(100), Clock, 24) AS 打卡時間,
  98. CASE
  99. WHEN DATEPART(HOUR, Clock) < 3 THEN
  100. CONVERT(varchar(10), DATEADD(DAY, -1, Clock), 111)
  101. ELSE
  102. CONVERT(varchar(10), Clock, 111)
  103. END AS 日期
  104. FROM
  105. ras_AttRecord
  106. WHERE
  107. (DIN = " & PA & ")
  108. AND (MONTH(Clock) = N'" & PA2 & "')
  109. AND (YEAR(Clock) = N'" & PA1 & "')
  110. AND (CAST(Clock AS TIME) <= '23:59:59')
  111. ORDER BY
  112. Clock"
  113. 'SQL1 = "SELECT CONVERT(varchar(100), Clock, 24) AS 打卡時間, CONVERT(varchar(10), Clock, 111) AS 日期
  114. ' FROM ras_AttRecord
  115. ' WHERE (DIN = " & PA & ") AND (MONTH(Clock) = N'" & PA2 & "') AND (YEAR(Clock) = N'" & PA1 & "') AND
  116. ' (CAST(Clock AS TIME) <= '23:59:59')
  117. ' ORDER BY Clock"
  118. CmdSet_For_DGV()
  119. 'SQL1 = "WHERE (DIN = " & PA & ") AND (DAY(Clock) = N'" & PA3 & "') AND (MONTH(Clock) = N'" & PA2 & "') AND (YEAR(Clock) = N'" & PA1 & "') AND
  120. ' (Clock < N'" & PA1 & "/" & PA2 & "/" & PA3 & " 23:59:59' AND Clock >= N'" & PA1 & "/" & PA2 & "/" & PA3 & " " & DTPS(0) & "')"
  121. End Sub
  122. Friend Sub SQL_考勤明細表_打卡讀取_晚上下上班()
  123. ConnOpen()
  124. SQL1 = "SELECT CONVERT(varchar(100), Clock, 24) AS 打卡時間, CONVERT(varchar(10), Clock, 111) AS 日期
  125. FROM ras_AttRecord
  126. WHERE (DIN = " & PA & ") AND (DAY(Clock) = N'" & PA3 & "') AND (MONTH(Clock) = N'" & PA2 & "') AND (YEAR(Clock) = N'" & PA1 & "') AND
  127. (Clock < N'" & PA1 & "/" & PA2 & "/" & PA3 & " " & DTPS(3) & "' AND Clock >= N'" & PA1 & "/" & PA2 & "/" & PA3 & " " & DTPS(2) & "')
  128. ORDER BY Clock"
  129. CmdSet_For_DGV()
  130. End Sub
  131. Friend Sub SQL_考勤明細表_打卡讀取_加班下班()
  132. ConnOpen()
  133. SQL1 = "SELECT CONVERT(varchar(100), Clock, 24) AS 打卡時間, CONVERT(varchar(10), Clock, 111) AS 日期
  134. FROM ras_AttRecord
  135. WHERE (DIN = " & PA & ") AND (Clock < N'" & PA4 & " 05:00:00' AND Clock >= N'" & PA1 & "/" & PA2 & "/" & PA3 & " " & DTPS(4) & "')
  136. ORDER BY Clock"
  137. CmdSet_For_DGV()
  138. End Sub
  139. Friend Sub SQL_考勤明細表_年份_下拉()
  140. ConnOpen() : SQL1 = "SELECT 年份 FROM 年份清單 ORDER BY 年份 DESC" : CmdSet_For_dr()
  141. End Sub
  142. Friend Sub SQL_考勤明細表_讀取編號()
  143. ConnOpen()
  144. SQL1 = "SELECT DIN FROM ras_Users WHERE (UserName LIKE N'" & gUserName & "')"
  145. CmdSet_For_dr()
  146. End Sub
  147. Friend Sub SQL_讀取日期()
  148. ConnOpen()
  149. SQL1 = "SELECT 日期, 星期 FROM 萬年曆 WHERE 日期 LIKE N'" & PA1 & "/" & PA2 & "%' ORDER BY 日期"
  150. CmdSet_For_DGV()
  151. End Sub
  152. Friend Sub SQL_時間新增()
  153. ConnOpen()
  154. SQL1 = "INSERT INTO ras_AttRecord (DN, DIN, Clock, VerifyMode, Action, AttTypeId, CollectDate, JobCode, Antipassback, LastUpdatedUID,
  155. LastUpdatedDate, Remark)
  156. VALUES ('1', N'" & PA4 & "', N'" & PA3 & "', N'0', N'1', N'H01', N'" & Today() & "', 0, 0, 0, " & Today() & ", N'')"
  157. CmdSet_For_dr()
  158. End Sub
  159. Friend Sub SQL_時間修改()
  160. ConnOpen()
  161. SQL1 = "UPDATE ras_AttRecord SET Clock = N'" & PA3 & "' WHERE ID = " & PA4 & ""
  162. CmdSet_For_dr()
  163. End Sub
  164. Friend Sub SQL_時間刪除()
  165. ConnOpen()
  166. SQL1 = "DELETE ras_AttRecord WHERE ID = " & PA4 & ""
  167. CmdSet_For_dr()
  168. End Sub
  169. Friend Sub SQL_資料庫選擇()
  170. ConnOpen() : SQL1 = "SELECT TOP (1) 圖片資料庫 FROM 圖片資料庫管理 WHERE (是否可用 = 0) ORDER BY 圖片資料庫" : CmdSet_For_dr()
  171. End Sub
  172. Friend Sub SQL_考勤地點()
  173. ConnOpen()
  174. SQL1 = "SELECT 地點, 經度, 緯度, 容許誤差 FROM 考勤位置設定"
  175. CmdSet_For_DGV()
  176. End Sub
  177. Friend Sub SQL_考勤地點新增()
  178. ConnOpen() : SQL1 = "INSERT INTO 考勤位置設定 (地點, 經度, 緯度, 容許誤差) VALUES (N'" & PA1 & "', N'" & PA2 & "', N'" & PA3 & "', N'" & PA4 & "')" : CmdSet_For_dr()
  179. End Sub
  180. Friend Sub SQL_考勤地點修改()
  181. ConnOpen() : SQL1 = "UPDATE 考勤位置設定 SET 經度 = N'" & PA2 & "', 緯度 = N'" & PA3 & "', 容許誤差 = N'" & PA4 & "' WHERE 地點 LIKE N'" & PA1 & "'" : CmdSet_For_dr()
  182. End Sub
  183. Friend Sub SQL_考勤地點刪除()
  184. ConnOpen() : SQL1 = "DELETE 考勤位置設定 WHERE 地點 LIKE N'" & PA1 & "'" : CmdSet_For_dr()
  185. End Sub
  186. Friend Sub SQL_考勤位置異常清單()
  187. ConnOpen()
  188. SQL1 = "SELECT 手機打卡考勤表.主管機台 AS 設備認證, 手機打卡考勤表.打卡時間, ras_Users.UserName AS 打卡人員,
  189. 手機打卡考勤表.經度, 手機打卡考勤表.緯度, 手機打卡考勤表.狀態, 手機打卡考勤表.機碼,
  190. 手機打卡考勤表.狀態 AS [狀態.]
  191. FROM 手機打卡考勤表 INNER JOIN
  192. ras_Users ON 手機打卡考勤表.機碼 = ras_Users.DIN " & SQL2 & "
  193. ORDER BY 手機打卡考勤表.打卡時間, 打卡人員"
  194. CmdSet_For_DGV()
  195. End Sub
  196. Friend Sub SQL_考勤位置清單()
  197. ConnOpen()
  198. SQL1 = "SELECT 地點, 經度, 緯度, 容許誤差, 地點 AS 考勤距離, 地點 AS [判斷狀態]
  199. FROM 考勤位置設定"
  200. CmdSet_For_DGV()
  201. End Sub
  202. Friend Sub SQL_考勤地點異常修改()
  203. ConnOpen() : SQL1 = "UPDATE 手機打卡考勤表 SET 狀態 = N'" & PA3 & "' WHERE 機碼 LIKE N'" & PA1 & "' AND 打卡時間 = N'" & PA2 & "'" : CmdSet_For_dr()
  204. End Sub
  205. Friend Sub SQL_考勤系統手機綁定資料重複確認()
  206. ConnOpen() : SQL1 = "SELECT * FROM 手機打卡驗證管理 WHERE (帳號 LIKE N'" & PA1 & "')" : CmdSet_For_dr()
  207. End Sub
  208. Friend Sub SQL_考勤系統手機綁定資料新增()
  209. ConnOpen() : SQL1 = "INSERT INTO 手機打卡驗證管理 (帳號, 機碼, 獨立打卡, 不鎖定) VALUES (N'" & PA1 & "', N'" & PA2 & "', N'" & PA3 & "', N'" & PA4 & "')" : CmdSet_For_dr()
  210. End Sub
  211. Friend Sub SQL_考勤系統手機綁定資料修改()
  212. ConnOpen() : SQL1 = "UPDATE 手機打卡驗證管理 SET 帳號 = N'" & PA2 & "', 獨立打卡 = N'" & PA3 & "', 不鎖定 = N'" & PA4 & "' WHERE 機碼 LIKE N'" & PA1 & "'" : CmdSet_For_dr()
  213. End Sub
  214. Friend Sub SQL_考勤系統手機綁定資料刪除()
  215. ConnOpen() : SQL1 = "DELETE 手機打卡驗證管理 WHERE 帳號 LIKE N'" & PA1 & "'" : CmdSet_For_dr()
  216. End Sub
  217. Friend Sub SQL_考勤系統手機綁定清單()
  218. ConnOpen()
  219. SQL1 = "SELECT 使用者權限管理表.職位, ras_Users.UserName AS 姓名, ras_Users.DIN AS 系統編號, 手機打卡驗證管理.帳號,
  220. 手機打卡驗證管理.機碼, 手機打卡驗證管理.獨立打卡, 手機打卡驗證管理.不鎖定,
  221. ras_Users.IsLockedOut AS 離職
  222. FROM 手機打卡驗證管理 INNER JOIN
  223. 使用者權限管理表 ON 手機打卡驗證管理.機碼 = 使用者權限管理表.DIN INNER JOIN
  224. ras_Users ON 手機打卡驗證管理.機碼 = ras_Users.DIN
  225. ORDER BY 系統編號"
  226. CmdSet_For_DGV()
  227. End Sub
  228. Friend Sub SQL_系統使用者管理_使用者清單()
  229. ConnOpen()
  230. SQL1 = "SELECT ras_Users.UserName AS 姓名, 使用者權限管理表.DIN AS 系統編號 , 使用者權限管理表.職位 AS 職稱, ras_Users.UserName AS 帳號
  231. FROM 使用者權限管理表 INNER JOIN ras_Users ON 使用者權限管理表.DIN = ras_Users.DIN" & SQL2
  232. CmdSet_For_DGV()
  233. End Sub
  234. End Module