Module SQL_人事系統管理 Friend Sub SQL_員工清單() ConnOpen() SQL1 = "SELECT 人事資料表.員工編號, 使用者權限管理表.姓名 AS 系統登入姓名, 人事資料表.姓名, 人事資料表.入職日期, 人事資料表.離職日期 FROM 使用者權限管理表 LEFT OUTER JOIN 人事資料表 ON 使用者權限管理表.員工編號 = 人事資料表.員工編號 AND 使用者權限管理表.姓名 = 人事資料表.系統登入姓名 WHERE (使用者權限管理表.CC49 = 0) AND (人事資料表.員工編號 IS NOT NULL) AND (人事資料表.離職日期 LIKE '在職') ORDER BY 使用者權限管理表.職稱" CmdSet_For_DGV() End Sub Friend Sub SQL_考勤打卡人員() ConnOpen() SQL1 = "SELECT 人事資料表.員工編號, 使用者權限管理表.姓名 AS 系統登入姓名, 人事資料表.姓名, 人事資料表.入職日期, 人事資料表.離職日期 FROM 使用者權限管理表 LEFT OUTER JOIN 人事資料表 ON 使用者權限管理表.員工編號 = 人事資料表.員工編號 AND 使用者權限管理表.姓名 = 人事資料表.系統登入姓名 WHERE (使用者權限管理表.CC49 = 0) AND (人事資料表.員工編號 IS NOT NULL) AND (人事資料表.離職日期 LIKE '在職') ORDER BY 使用者權限管理表.姓名" CmdSet_For_DGV() End Sub Friend Sub SQL_補登打卡明細() ConnOpen() SQL1 = "SELECT 萬年曆.日期, 萬年曆.星期, AA.請假類別, AA.事由, AA.是否生效, AA.核准人, AA.核准日期, QQ.上午上班, QQ.上午上班 AS 上午下班, QQ.上午上班 AS 上午工時, QQ.下午下班 AS 下午上班, QQ.下午下班, QQ.下午下班 AS 下午工時, QQ.下午下班 AS 整日工時, BB.上午補登, BB.下午補登, BB.公出事由, QQ.員工編號 FROM 萬年曆 LEFT OUTER JOIN (SELECT 員工編號, 日期, 請假類別, 事由, 是否生效, 核准人, 核准日期 FROM 人事請假單 WHERE (員工編號 LIKE '" & 編號 & "') AND (日期 LIKE '" & 考勤打卡資料補登.年份_cb.Text & "/" & 考勤打卡資料補登.月份_cb.Text & "%')) AS AA ON 萬年曆.日期 = AA.日期 LEFT OUTER JOIN (SELECT 員工編號, 日期, 請假類別, 上午上班, 下午下班 FROM 人事考勤明細表 WHERE (員工編號 LIKE '" & 編號 & "') AND (日期 LIKE '" & 考勤打卡資料補登.年份_cb.Text & "/" & 考勤打卡資料補登.月份_cb.Text & "%')) AS QQ ON 萬年曆.日期 = QQ.日期 LEFT OUTER JOIN (SELECT 員工編號, 日期, 上午補登, 下午補登, 公出事由 FROM 人事漏打卡補登紀錄 WHERE (員工編號 LIKE '" & 編號 & "') AND (日期 LIKE '" & 考勤打卡資料補登.年份_cb.Text & "/" & 考勤打卡資料補登.月份_cb.Text & "%')) AS BB ON 萬年曆.日期 = BB.日期 WHERE (萬年曆.日期 LIKE '" & 考勤打卡資料補登.年份_cb.Text & "/" & 考勤打卡資料補登.月份_cb.Text & "%') ORDER BY 萬年曆.日期" CmdSet_For_DGV() End Sub Friend Sub SQL_補登員工() ConnOpen() SQL1 = "SELECT 人事資料表.員工編號, 使用者權限管理表.姓名 AS 系統登入姓名, 人事資料表.姓名, 人事資料表.入職日期, 人事資料表.離職日期 FROM 使用者權限管理表 LEFT OUTER JOIN 人事資料表 ON 使用者權限管理表.員工編號 = 人事資料表.員工編號 AND 使用者權限管理表.姓名 = 人事資料表.系統登入姓名 WHERE (使用者權限管理表.CC49 = 0) AND (人事資料表.員工編號 IS NOT NULL) AND (人事資料表.離職日期 LIKE '在職') ORDER BY 使用者權限管理表.姓名" CmdSet_For_DGV() End Sub Friend Sub SQL_日期查詢() ConnOpen() SQL1 = "SELECT 萬年曆.日期, 萬年曆.星期, AA.請假類別, AA.事由, AA.是否生效, AA.核准人, AA.核准日期, QQ.上午上班, QQ.上午上班 AS 上午下班, QQ.上午上班 AS 上午工時, QQ.下午下班 AS 下午上班, QQ.下午下班, QQ.下午下班 AS 下午工時, QQ.下午下班 AS 整日工時, BB.上午補登, BB.下午補登, BB.公出事由, QQ.員工編號 FROM 萬年曆 LEFT OUTER JOIN (SELECT 員工編號, 日期, 請假類別, 事由, 是否生效, 核准人, 核准日期 FROM 人事請假單 WHERE (員工編號 LIKE '" & 編號 & "') AND (日期 LIKE '" & 人事請假申請.年份_cb.Text & "/" & 人事請假申請.月份_cb.Text & "%')) AS AA ON 萬年曆.日期 = AA.日期 LEFT OUTER JOIN (SELECT 員工編號, 日期, 請假類別, 上午上班, 下午下班 FROM 人事考勤明細表 WHERE (員工編號 LIKE '" & 編號 & "') AND (日期 LIKE '" & 人事請假申請.年份_cb.Text & "/" & 人事請假申請.月份_cb.Text & "%')) AS QQ ON 萬年曆.日期 = QQ.日期 LEFT OUTER JOIN (SELECT 員工編號, 日期, 上午補登, 下午補登, 公出事由 FROM 人事漏打卡補登紀錄 WHERE (員工編號 LIKE '" & 編號 & "') AND (日期 LIKE '" & 人事請假申請.年份_cb.Text & "/" & 人事請假申請.月份_cb.Text & "%')) AS BB ON 萬年曆.日期 = BB.日期 WHERE (萬年曆.日期 LIKE '" & 人事請假申請.年份_cb.Text & "/" & 人事請假申請.月份_cb.Text & "%') ORDER BY 萬年曆.日期" CmdSet_For_DGV() End Sub Friend Sub SQL_日期查詢核准() ConnOpen() SQL1 = "SELECT 萬年曆.日期, 萬年曆.星期, AA.請假類別, AA.事由, AA.是否生效, AA.核准人, AA.核准日期, QQ.上午上班, QQ.上午上班 AS 上午下班, QQ.上午上班 AS 上午工時, QQ.下午下班 AS 下午上班, QQ.下午下班, QQ.下午下班 AS 下午工時, QQ.下午下班 AS 整日工時, BB.上午補登, BB.下午補登, BB.公出事由, QQ.員工編號 FROM 萬年曆 LEFT OUTER JOIN (SELECT 員工編號, 日期, 請假類別, 事由, 是否生效, 核准人, 核准日期 FROM 人事請假單 WHERE (員工編號 LIKE '" & 編號 & "') AND (日期 LIKE '" & 人事請假核准.年份_cb.Text & "/" & 人事請假核准.月份_cb.Text & "%')) AS AA ON 萬年曆.日期 = AA.日期 LEFT OUTER JOIN (SELECT 員工編號, 日期, 請假類別, 上午上班, 下午下班 FROM 人事考勤明細表 WHERE (員工編號 LIKE '" & 編號 & "') AND (日期 LIKE '" & 人事請假核准.年份_cb.Text & "/" & 人事請假核准.月份_cb.Text & "%')) AS QQ ON 萬年曆.日期 = QQ.日期 LEFT OUTER JOIN (SELECT 員工編號, 日期, 上午補登, 下午補登, 公出事由 FROM 人事漏打卡補登紀錄 WHERE (員工編號 LIKE '" & 編號 & "') AND (日期 LIKE '" & 人事請假核准.年份_cb.Text & "/" & 人事請假核准.月份_cb.Text & "%')) AS BB ON 萬年曆.日期 = BB.日期 WHERE (萬年曆.日期 LIKE '" & 人事請假核准.年份_cb.Text & "/" & 人事請假核准.月份_cb.Text & "%') ORDER BY 萬年曆.日期" CmdSet_For_DGV() End Sub Friend Sub SQL_年份查詢() ConnOpen() SQL1 = "SELECT 年份 FROM 年份清單 ORDER BY 年份 DESC" CmdSet_For_dr() End Sub Friend Sub SQL_請假() ConnOpen() SQL1 = "SELECT 請假類別 FROM METOO請假類別 ORDER BY 請假類別 DESC" CmdSet_For_dr() End Sub Friend Sub SQL_使用者權限() ConnOpen() SQL1 = "SELECT 部門 FROM 使用者權限管理表 WHERE (員工編號 = '" & 編號 & "')" CmdSet_For_dr() End Sub Friend Sub SQL_人事請假() ConnOpen() SQL1 = "SELECT 員工編號 FROM 人事請假單 WHERE (員工編號 LIKE '" & 人事請假申請.員工編號_tb.Text & "') AND (日期 LIKE '" & 人事請假申請.請假_tb.Text & "')" CmdSet_For_dr() End Sub Friend Sub SQL_人事請假新增() ConnOpen() SQL1 = "INSERT INTO 人事請假單 (員工編號, 日期, 請假類別, 事由, 是否生效) VALUES ( N'" & 人事請假申請.員工編號_tb.Text & "',N'" & 人事請假申請.請假_tb.Text & "',N'" & 人事請假申請.請假_cb.Text & "',N'" & 人事請假申請.事由_tb.Text & "','申請中')" CmdSet_For_dr() End Sub Friend Sub SQL_假單核准() ConnOpen() SQL1 = "UPDATE 人事請假單 SET 核准人 = N'" & gUserName & "', 核准日期 = N'" & DTP & "', 是否生效 = N'已核准' WHERE (員工編號 LIKE '" & 編號 & "') AND (日期 LIKE '" & 人事請假核准.請假日期_tb.Text & "%')" CmdSet_For_dr() End Sub Friend Sub SQL_讀取員工編號() ConnOpen() SQL1 = "SELECT 員工編號 FROM 人事考勤明細表 WHERE 員工編號 LIKE '" & 編號 & "' AND 日期 LIKE '" & 人事請假核准.請假日期_tb.Text & "'" CmdSet_For_dr() End Sub Friend Sub SQL_人事考勤明細表新增() ConnOpen() SQL1 = "INSERT INTO 人事考勤明細表 (員工編號, 日期, 請假類別, 上午上班, 下午下班) VALUES ( N'" & 編號 & "',N'" & 人事請假核准.請假日期_tb.Text & "',N'" & 人事請假核准.請假類別_cb.Text & "',N'',N'')" CmdSet_For_dr() End Sub Friend Sub SQL_人事考勤明細表修改() ConnOpen() SQL1 = "UPDATE 人事考勤明細表 SET 請假類別 = N'" & 人事請假核准.請假類別_cb.Text & "' WHERE (員工編號 LIKE '" & 編號 & "') AND (日期 LIKE '" & 人事請假核准.請假日期_tb.Text & "')" CmdSet_For_dr() End Sub Friend Sub SQL_員工編號補登() ConnOpen() SQL1 = "SELECT 員工編號 FROM 人事漏打卡補登紀錄 WHERE 員工編號 LIKE '" & 編號 & "' AND 日期 LIKE '" & 考勤打卡資料補登.請假日期_tb.Text & "'" CmdSet_For_dr() End Sub Friend Sub SQL_員工補登() ConnOpen() SQL1 = "SELECT 員工編號 FROM 人事考勤明細表 WHERE 員工編號 LIKE '" & 編號 & "' AND 日期 LIKE '" & 考勤打卡資料補登.請假日期_tb.Text & "'" CmdSet_For_dr() End Sub Friend Sub SQL_公差補登() ConnOpen() SQL1 = "INSERT INTO 人事漏打卡補登紀錄 (員工編號, 日期, 上午補登, 下午補登, 公出事由) SELECT N'" & 編號 & "',N'" & 考勤打卡資料補登.請假日期_tb.Text & "',N'',N'','" & PA & "'" CmdSet_For_dr() End Sub Friend Sub SQL_漏打卡補登() ConnOpen() SQL1 = "INSERT INTO 人事漏打卡補登紀錄 (員工編號, 日期, 上午補登, 下午補登, 公出事由) SELECT N'" & 編號 & "',N'" & 考勤打卡資料補登.請假日期_tb.Text & "',N'',N'1','漏打卡'" CmdSet_For_dr() End Sub Friend Sub SQL_漏打卡補登1() ConnOpen() SQL1 = "INSERT INTO 人事漏打卡補登紀錄 (員工編號, 日期, 上午補登, 下午補登, 公出事由) SELECT N'" & 編號 & "',N'" & 考勤打卡資料補登.請假日期_tb.Text & "',N'1',N'','漏打卡'" CmdSet_For_dr() End Sub Friend Sub SQL_更改上午補登() ConnOpen() SQL1 = "UPDATE 人事漏打卡補登紀錄 SET 上午補登 = N'1' WHERE (員工編號 LIKE '" & 編號 & "') AND (日期 LIKE '" & 考勤打卡資料補登.請假日期_tb.Text & "')" CmdSet_For_dr() End Sub Friend Sub SQL_更改下午補登() ConnOpen() SQL1 = "UPDATE 人事漏打卡補登紀錄 SET 下午補登 = N'1' WHERE (員工編號 LIKE '" & 編號 & "') AND (日期 LIKE '" & 考勤打卡資料補登.請假日期_tb.Text & "')" CmdSet_For_dr() End Sub Friend Sub SQL_補登上午() ConnOpen() SQL1 = "INSERT INTO 人事考勤明細表 (員工編號, 日期, 請假類別, 上午上班, 下午下班) SELECT N'" & 編號 & "',N'" & 考勤打卡資料補登.請假日期_tb.Text & "',N'', N'" & 考勤打卡資料補登.上午小時_cb.Text & ":" & 考勤打卡資料補登.上午分鐘1_cb.Text & 考勤打卡資料補登.上午分鐘2_cb.Text & ":" & 考勤打卡資料補登.上午秒數1_cb.Text & 考勤打卡資料補登.上午秒數2_cb.Text & "', N''" CmdSet_For_dr() End Sub Friend Sub SQL_補登下午() ConnOpen() SQL1 = "INSERT INTO 人事考勤明細表 (員工編號, 日期, 請假類別, 上午上班, 下午下班) SELECT N'" & 編號 & "',N'" & 考勤打卡資料補登.請假日期_tb.Text & "',N'', N'', N'" & 考勤打卡資料補登.下午小時_cb.Text & ":" & 考勤打卡資料補登.下午分鐘1_cb.Text & 考勤打卡資料補登.下午分鐘2_cb.Text & ":" & 考勤打卡資料補登.下午秒數1_cb.Text & 考勤打卡資料補登.下午秒數2_cb.Text & "'" CmdSet_For_dr() End Sub Friend Sub SQL_更改上午補登1() ConnOpen() SQL1 = "UPDATE 人事考勤明細表 SET 上午上班 = N'" & 考勤打卡資料補登.上午小時_cb.Text & ":" & 考勤打卡資料補登.上午分鐘1_cb.Text & 考勤打卡資料補登.上午分鐘2_cb.Text & ":" & 考勤打卡資料補登.上午秒數1_cb.Text & 考勤打卡資料補登.上午秒數2_cb.Text & "' WHERE (員工編號 LIKE '" & 編號 & "') AND (日期 LIKE '" & 考勤打卡資料補登.請假日期_tb.Text & "')" CmdSet_For_dr() End Sub Friend Sub SQL_更改下午補登1() ConnOpen() SQL1 = "UPDATE 人事考勤明細表 SET 下午下班 = N'" & 考勤打卡資料補登.下午小時_cb.Text & ":" & 考勤打卡資料補登.下午分鐘1_cb.Text & 考勤打卡資料補登.下午分鐘2_cb.Text & ":" & 考勤打卡資料補登.下午秒數1_cb.Text & 考勤打卡資料補登.下午秒數2_cb.Text & "' WHERE (員工編號 LIKE '" & 編號 & "') AND (日期 LIKE '" & 考勤打卡資料補登.請假日期_tb.Text & "')" CmdSet_For_dr() End Sub Friend Sub SQL_未入職人員() ConnOpen() SQL1 = "SELECT 人事資料表.員工編號, 使用者權限管理表.姓名 AS 系統登入姓名, 人事資料表.姓名, 人事資料表.入職日期 FROM 使用者權限管理表 LEFT OUTER JOIN 人事資料表 ON 使用者權限管理表.員工編號 = 人事資料表.員工編號 AND 使用者權限管理表.姓名 = 人事資料表.系統登入姓名 WHERE (使用者權限管理表.CC49 = 0) AND (人事資料表.員工編號 IS NULL) ORDER BY 使用者權限管理表.職稱" CmdSet_For_DGV() End Sub Friend Sub SQL_在職人員() ConnOpen() SQL1 = "SELECT 人事資料表.員工編號, 使用者權限管理表.姓名 AS 系統登入姓名, 人事資料表.姓名, 人事資料表.入職日期, 人事資料表.離職日期 FROM 使用者權限管理表 LEFT OUTER JOIN 人事資料表 ON 使用者權限管理表.員工編號 = 人事資料表.員工編號 AND 使用者權限管理表.姓名 = 人事資料表.系統登入姓名 WHERE (使用者權限管理表.CC49 = 0) AND (人事資料表.員工編號 IS NOT NULL) AND (人事資料表.離職日期 LIKE '在職') ORDER BY 使用者權限管理表.職稱" CmdSet_For_DGV() End Sub Friend Sub SQL_讀取圖片() ConnOpen() SQL1 = "SELECT 人事表圖片 FROM 人事資料表 WHERE 員工編號 LIKE N'" & 人員入職資料表.員工編號_tb.Text & "'" CmdSet_For_dr() End Sub Friend Sub SQL_查最後一筆員工編號() ConnOpen() SQL1 = "SELECT TOP (1) 員工編號 FROM 人事資料表 ORDER BY 員工編號 DESC" CmdSet_For_dr() End Sub Friend Sub SQL_新增人事資料表() ConnOpen() SQL1 = "INSERT INTO 人事資料表 (員工編號, 系統登入姓名, 姓名, 入職日期, 離職日期, 人事表圖片) SELECT N'" & 人員入職資料表.員工編號_tb.Text & "',N'" & 人員入職資料表.登入姓名_tb.Text & "',N'" & 人員入職資料表.姓名_tb.Text & "','" & DTP & "','在職', @binary_file" CmdSet_For_dr_pic() End Sub Friend Sub SQL_更改使用者權限管理表() ConnOpen() SQL1 = "UPDATE 使用者權限管理表 SET 員工編號 = '" & 人員入職資料表.員工編號_tb.Text & "' WHERE (姓名 = '" & 人員入職資料表.登入姓名_tb.Text & "')" CmdSet_For_dr() End Sub Friend Sub SQL_修改人事資料表() ConnOpen() SQL1 = "UPDATE 人事資料表 SET 人事表圖片 = @binary_file WHERE (員工編號 = '" & 人員入職資料表.員工編號_tb.Text & "')" CmdSet_For_dr_pic() End Sub '------------------------人員ID卡系統配置設定------------------------ Friend Sub SQL_使用者權限管理表() ConnOpen() SQL1 = "SELECT 姓名, 帳號, 部門, 職稱, 員工編號, ID卡號 FROM 使用者權限管理表 ORDER BY 職稱" CmdSet_For_DGV() End Sub Friend Sub SQL_修改使用者權限管理表() ConnOpen() SQL1 = "UPDATE 使用者權限管理表 SET ID卡號 = N'" & 人員ID卡系統配置設定.ID卡號_tb.Text & "' WHERE (帳號 = N'" & 人員ID卡系統配置設定.帳號_tb.Text & "') AND (姓名 = N'" & 人員ID卡系統配置設定.姓名_tb.Text & "')" CmdSet_For_dr() End Sub '----------------------人員行政物料領用記錄表------------------------------------- Friend Sub SQL_人員清單() ConnOpen() SQL1 = "SELECT 人事資料表.員工編號, 使用者權限管理表.姓名 AS 系統登入姓名, 人事資料表.姓名, 人事資料表.入職日期, 人事資料表.離職日期 FROM 使用者權限管理表 LEFT OUTER JOIN 人事資料表 ON 使用者權限管理表.員工編號 = 人事資料表.員工編號 AND 使用者權限管理表.姓名 = 人事資料表.系統登入姓名 WHERE (使用者權限管理表.CC49 = 0) AND (人事資料表.員工編號 IS NOT NULL) AND (人事資料表.離職日期 LIKE '在職') ORDER BY 使用者權限管理表.職稱" CmdSet_For_DGV() End Sub Friend Sub SQL_人員行政物料領用紀錄表() ConnOpen() SQL1 = "SELECT 流水號, 人員, 日期, 物料, 數量, 單位 FROM 人員行政物料領用紀錄表 WHERE (人員 LIKE N'" & XXCC & "') " & KKKJJ3 & " ORDER BY 日期" CmdSet_For_DGV() End Sub Friend Sub SQL_人員行政物料表() ConnOpen() SQL1 = "SELECT 行政物料 FROM 人員行政物料表 ORDER BY 行政物料" CmdSet_For_dr() End Sub Friend Sub SQL_查詢最後一筆流水號() ConnOpen() SQL1 = "SELECT TOP (1) 流水號 FROM 人員行政物料領用紀錄表 ORDER BY 流水號 DESC" CmdSet_For_dr() End Sub Friend Sub SQL_新增人員行政物料領用紀錄表() ConnOpen() SQL1 = "INSERT INTO 人員行政物料領用紀錄表 (流水號, 人員, 日期, 物料, 數量, 單位) " & "VALUES (N'" & 編號 & "',N'" & XXCC & "',N'" & DTP & "',N'" & 人員行政物料領用記錄表.選擇行政物料_cb.Text & "','0','')" CmdSet_For_dr() End Sub Friend Sub SQL_刪除人員行政物料領用紀錄表() ConnOpen() SQL1 = "DELETE FROM 人員行政物料領用紀錄表 WHERE (流水號 = '" & 人員行政物料領用記錄表.選擇資料流水號_tb.Text & "')" CmdSet_For_dr() End Sub Friend Sub SQL_更改人員行政物料領用紀錄表() ConnOpen() SQL1 = "UPDATE 人員行政物料領用紀錄表 SET 數量 = '" & PA & "', 單位 = '" & PA1 & "' " & "WHERE (流水號 LIKE N'" & PA2 & "')" CmdSet_For_dr() End Sub Friend Sub SQL_修改人事資料表1() ConnOpen() SQL1 = "UPDATE 人事資料表 SET 離職日期 = '" & DTP1 & "' WHERE (員工編號 = '" & 人員入職資料表.員工編號_tb.Text & "')" CmdSet_For_dr() End Sub '---------------------------------------人員考勤明細表---------------------------------------------------------------------- Friend Sub SQL_考勤明細清單() ConnOpen() SQL1 = "SELECT 萬年曆.日期, 萬年曆.星期, QQ.請假類別, AA.事由, AA.是否生效, AA.核准人, AA.核准日期, QQ.上午上班, QQ.上午上班 AS 上午下班, QQ.上午上班 AS 上午工時, QQ.下午下班 AS 下午上班, QQ.下午下班, QQ.下午下班 AS 下午工時, QQ.下午下班 AS 整日工時, BB.上午補登, BB.下午補登, BB.公出事由, QQ.員工編號 FROM 萬年曆 LEFT OUTER JOIN (SELECT 員工編號, 日期, 請假類別, 事由, 是否生效, 核准人, 核准日期 FROM 人事請假單 WHERE (員工編號 LIKE '" & 編號 & "') AND (日期 LIKE '" & 人員考勤明細表.年份_cb.Text & "/" & 人員考勤明細表.月份_cb.Text & "%')) AS AA ON 萬年曆.日期 = AA.日期 LEFT OUTER JOIN (SELECT 員工編號, 日期, 請假類別, 上午上班, 下午下班 FROM 人事考勤明細表 WHERE (員工編號 LIKE '" & 編號 & "') AND (日期 LIKE '" & 人員考勤明細表.年份_cb.Text & "/" & 人員考勤明細表.月份_cb.Text & "%')) AS QQ ON 萬年曆.日期 = QQ.日期 LEFT OUTER JOIN (SELECT 員工編號, 日期, 上午補登, 下午補登, 公出事由 FROM 人事漏打卡補登紀錄 WHERE (員工編號 LIKE '" & 編號 & "') AND (日期 LIKE '" & 人員考勤明細表.年份_cb.Text & "/" & 人員考勤明細表.月份_cb.Text & "%')) AS BB ON 萬年曆.日期 = BB.日期 WHERE (萬年曆.日期 LIKE '" & 人員考勤明細表.年份_cb.Text & "/" & 人員考勤明細表.月份_cb.Text & "%') ORDER BY 萬年曆.日期" CmdSet_For_DGV() End Sub Friend Sub SQL_年度考勤明細清單() ConnOpen() If Val(人員考勤明細表.年份_cb.Text) > 2019 Then SQL1 = "SELECT 萬年曆.日期, 萬年曆.星期, QQ.請假類別, AA.事由, AA.是否生效, AA.核准人, AA.核准日期, QQ.上午上班, QQ.上午上班 AS 上午下班, QQ.上午上班 AS 上午工時, QQ.下午下班 AS 下午上班, QQ.下午下班, QQ.下午下班 AS 下午工時, QQ.下午下班 AS 整日工時, BB.上午補登, BB.下午補登, QQ.員工編號 FROM 萬年曆 LEFT OUTER JOIN (SELECT 員工編號, 日期, 請假類別, 事由, 是否生效, 核准人, 核准日期 FROM 人事請假單 WHERE (員工編號 LIKE '" & 編號 & "') AND (日期 LIKE '" & 人員考勤明細表.年份_cb.Text & "%')) AS AA ON 萬年曆.日期 = AA.日期 LEFT OUTER JOIN (SELECT 員工編號, 日期, 請假類別, 上午上班, 下午下班 FROM 人事考勤明細表 WHERE (員工編號 LIKE '" & 編號 & "') AND (日期 LIKE '" & 人員考勤明細表.年份_cb.Text & "%')) AS QQ ON 萬年曆.日期 = QQ.日期 LEFT OUTER JOIN (SELECT 員工編號, 日期, 上午補登, 下午補登 FROM 人事漏打卡補登紀錄 WHERE (員工編號 LIKE '" & 編號 & "') AND (日期 LIKE '" & 人員考勤明細表.年份_cb.Text & "%')) AS BB ON 萬年曆.日期 = BB.日期 WHERE (萬年曆.日期 LIKE '" & 人員考勤明細表.年份_cb.Text & "%') ORDER BY 萬年曆.日期" ElseIf Val(人員考勤明細表.年份_cb.Text) = 2019 Then SQL1 = "SELECT 萬年曆.日期, 萬年曆.星期, QQ.請假類別, AA.事由, AA.是否生效, AA.核准人, AA.核准日期, QQ.上午上班, QQ.上午上班 AS 上午下班, QQ.上午上班 AS 上午工時, QQ.下午下班 AS 下午上班, QQ.下午下班, QQ.下午下班 AS 下午工時, QQ.下午下班 AS 整日工時, BB.上午補登, BB.下午補登, QQ.員工編號 FROM 萬年曆 LEFT OUTER JOIN (SELECT 員工編號, 日期, 請假類別, 事由, 是否生效, 核准人, 核准日期 FROM 人事請假單 WHERE (員工編號 LIKE '" & 編號 & "') AND (日期 BETWEEN '2019/11/01' AND '2019/12/31')) AS AA ON 萬年曆.日期 = AA.日期 LEFT OUTER JOIN (SELECT 員工編號, 日期, 請假類別, 上午上班, 下午下班 FROM 人事考勤明細表 WHERE (員工編號 LIKE '" & 編號 & "') AND (日期 BETWEEN '2019/11/01' AND '2019/12/31')) AS QQ ON 萬年曆.日期 = QQ.日期 LEFT OUTER JOIN (SELECT 員工編號, 日期, 上午補登, 下午補登 FROM 人事漏打卡補登紀錄 WHERE (員工編號 LIKE '" & 編號 & "') AND (日期 BETWEEN '2019/11/01' AND '2019/12/31')) AS BB ON 萬年曆.日期 = BB.日期 WHERE (萬年曆.日期 BETWEEN '2019/11/01' AND '2019/12/31') ORDER BY 萬年曆.日期" End If CmdSet_For_DGV() End Sub End Module