Module SQL_業務系統管理 '---------------------客戶資料表----------------------------------------------------------------------------------------------------------------- Friend Sub SQL_客戶資料表_清單() ConnOpen() If 客戶資料表.查詢_tb.Text = "" Then If 客戶資料表.業務_cb.Text = "" Then SQL1 = "SELECT 流水號, 流水號 AS 項次, 舊編 AS 編號, 名稱 AS 客戶, 電話1, 電話2, 公司名稱, 統編, 地址 FROM 客戶資料表 ORDER BY 舊編" Else SQL1 = "SELECT 流水號, 流水號 AS 項次, 舊編 AS 編號, 名稱 AS 客戶, 電話1, 電話2, 公司名稱, 統編, 地址 FROM 客戶資料表 WHERE 舊編 LIKE N'" & 客戶資料表.業務_cb.Text & "%' ORDER BY 舊編" End If Else If 客戶資料表.業務_cb.Text = "" Then SQL1 = "SELECT 流水號, 流水號 AS 項次, 舊編 AS 編號, 名稱 AS 客戶, 電話1, 電話2, 公司名稱, 統編, 地址 FROM 客戶資料表 WHERE (名稱 LIKE N'%" & PA & "%' OR 電話1 LIKE N'%" & PA & "%' OR 電話2 LIKE N'%" & PA & "%' OR 地址 LIKE N'%" & PA & "%') ORDER BY 舊編" Else SQL1 = "SELECT 流水號, 流水號 AS 項次, 舊編 AS 編號, 名稱 AS 客戶, 電話1, 電話2, 公司名稱, 統編, 地址 FROM 客戶資料表 WHERE (舊編 LIKE N'" & 客戶資料表.業務_cb.Text & "%') AND (名稱 LIKE N'%" & PA & "%' OR 電話1 LIKE N'%" & PA & "%' OR 電話2 LIKE N'%" & PA & "%' OR 地址 LIKE N'%" & PA & "%') ORDER BY 舊編" End If End If CmdSet_For_DGV() End Sub '---------------------銷售單申請----------------------------------------------------------------------------------------------------------------- Friend Sub SQL_銷售控制表_最後一筆資料() ConnOpen() : SQL1 = "SELECT TOP (1) 流水號 FROM 銷售控制表 ORDER BY 流水號 DESC" : CmdSet_For_dr() End Sub Friend Sub SQL_銷售控制表_單號是否重複() ConnOpen() : SQL1 = "SELECT TOP (1) 單號 FROM 銷售控制表 WHERE 單號 LIKE '" & PA & "'" : CmdSet_For_dr() End Sub Friend Sub SQL_銷售控制表_新增() ConnOpen() SQL1 = "INSERT INTO 銷售控制表 (流水號, 單號, 開單日期, 客戶編號, 交貨日期, 含稅, 單位主管, 審核日期, 業務人員, 稅金) VALUES (N'" & PA1 & "', '" & PA & "', '" & DTP & "', N'', '" & DTP2 & "', N'0', N'', N'', N'" & gUserName & "', '0')" CmdSet_For_dr() End Sub Friend Sub SQL_銷售控制表_新增_無須審核() ConnOpen() SQL1 = "INSERT INTO 銷售控制表 (流水號, 單號, 開單日期, 客戶編號, 交貨日期, 含稅, 單位主管, 審核日期, 業務人員, 稅金) VALUES (N'" & PA1 & "', '" & PA & "', '" & DTP & "', N'', '" & DTP2 & "', N'0', N'呂宜嫺', N'" & DTP & "', N'" & gUserName & "', '0')" CmdSet_For_dr() End Sub Friend Sub SQL_銷售收款事項_新增() ConnOpen() SQL1 = "INSERT INTO 銷售收款事項 (資料流水號, 單號, 項次, 內容, 金額) VALUES (N'" & PA1 & "', '" & PA & "', N'0', N'未收餘額', N'0')" CmdSet_For_dr() End Sub Friend Sub SQL_銷售控制表() If 銷售單申請.已審核資料_ch.Checked = True Then SQL2 = " WHERE 單號 LIKE '" & PA19 & "%' AND 單位主管 NOT LIKE '作廢%' " Else SQL2 = " WHERE 單號 LIKE '" & PA19 & "%' AND 單位主管 LIKE '' " End If ConnOpen() SQL1 = "SELECT 流水號, 單號, 開單日期, 客戶編號, 交貨日期, 含稅, 單位主管, 審核日期, 業務人員, 送貨地點, 運費, 稅金, 已出貨 AS 出貨 FROM 銷售控制表 " & SQL2 & " ORDER BY CHARINDEX(LEFT(單號, 1), '123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'), 單號 DESC" CmdSet_For_DGV() End Sub Friend Sub SQL料號查詢簡稱() ConnOpen() : SQL1 = "SELECT 簡稱 FROM 供應商資料表 WHERE (編號 LIKE N'" & PA30 & "')" : CmdSet_For_dr() End Sub '---------------------銷售單號修改----------------------------------------------------------------------------------------------------------------- Friend Sub SQL_銷售控制表1() If 業務單號修改功能.已審核資料_ch.Checked = True Then SQL2 = " WHERE 單號 LIKE '" & PA19 & "%' AND 單位主管 NOT LIKE '作廢%' " Else SQL2 = " WHERE 單號 LIKE '" & PA19 & "%' AND 單位主管 LIKE '' " End If ConnOpen() SQL1 = "SELECT 流水號, 單號, 開單日期, 客戶編號, 交貨日期, 含稅, 單位主管, 審核日期, 業務人員, 送貨地點, 運費, 稅金 FROM 銷售控制表 " & SQL2 & " ORDER BY CHARINDEX(LEFT(單號, 1), '123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'), 單號 DESC" CmdSet_For_DGV() End Sub Friend Sub SQL_銷售單號修改() ConnOpen() : SQL1 = "UPDATE 採購控制表 SET 銷售單號 = N'" & 業務單號修改功能.新單號_tb.Text & "' WHERE (銷售單號 LIKE N'" & 業務單號修改功能.舊單號_tb.Text & "')" : CmdSet_For_dr() ConnOpen() : SQL1 = "UPDATE 銷售明細表 SET 單號 = N'" & 業務單號修改功能.新單號_tb.Text & "' WHERE (單號 LIKE N'" & 業務單號修改功能.舊單號_tb.Text & "')" : CmdSet_For_dr() ConnOpen() : SQL1 = "UPDATE 銷售備註表 SET 單號 = N'" & 業務單號修改功能.新單號_tb.Text & "' WHERE (單號 LIKE N'" & 業務單號修改功能.舊單號_tb.Text & "')" : CmdSet_For_dr() ConnOpen() : SQL1 = "UPDATE 銷售控制表 SET 單號 = N'" & 業務單號修改功能.新單號_tb.Text & "' WHERE (單號 LIKE N'" & 業務單號修改功能.舊單號_tb.Text & "')" : CmdSet_For_dr() ConnOpen() : SQL1 = "UPDATE 銷售衍生運費 SET 單號 = N'" & 業務單號修改功能.新單號_tb.Text & "' WHERE (單號 LIKE N'" & 業務單號修改功能.舊單號_tb.Text & "')" : CmdSet_For_dr() ConnOpen() : SQL1 = "UPDATE 銷售收款事項 SET 單號 = N'" & 業務單號修改功能.新單號_tb.Text & "' WHERE (單號 LIKE N'" & 業務單號修改功能.舊單號_tb.Text & "')" : CmdSet_For_dr() ConnOpen() : SQL1 = "UPDATE 採購訂製圖庫 SET 單號 = N'" & 業務單號修改功能.新單號_tb.Text & "' WHERE (單號 LIKE N'" & 業務單號修改功能.舊單號_tb.Text & "')" : CmdSet_For_dr() End Sub '---------------------銷售單審核----------------------------------------------------------------------------------------------------------------- Friend Sub SQL_銷售控制表_審核() If 銷售單審核.已審核資料_ch.Checked = True Then SQL2 = " WHERE 單號 LIKE '" & PA19 & "%' AND 客戶編號 NOT LIKE '' AND 單位主管 NOT LIKE '作廢%' " Else SQL2 = " WHERE 單號 LIKE '" & PA19 & "%' AND 客戶編號 NOT LIKE '' AND 單位主管 LIKE '' " End If ConnOpen() SQL1 = "SELECT 流水號, 單號, 開單日期, 客戶編號, 交貨日期, 含稅, 單位主管, 審核日期, 業務人員, 送貨地點, 運費, 稅金 FROM 銷售控制表 " & SQL2 & " ORDER BY CHARINDEX(LEFT(單號, 1), '123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'), 單號 DESC" CmdSet_For_DGV() End Sub Friend Sub SQL_銷售控制表_審核確認() ConnOpen() SQL1 = "UPDATE 銷售控制表 SET 單位主管 = N'" & PA & "', 審核日期 = N'" & DTP & "' WHERE 單號 LIKE '" & PA1 & "%'" CmdSet_For_dr() End Sub Friend Sub SQL_銷售單審核_連帶作廢倉儲明細表() ConnOpen() SQL1 = "UPDATE 倉儲明細表 SET 審核人 = N'" & PA10 & "', 審核日期 = N'" & DTP & "', 倉庫作業 = N'" & PA9 & "', 作業日期 = N'" & DTP2 & "' WHERE (採購單號 LIKE N'" & PA11 & "')" CmdSet_For_dr() End Sub '---------------------訂單控制表----------------------------------------------------------------------------------------------------------------- Friend Sub SQL_銷售控制表_訂單控制表() ConnOpen() SQL1 = "SELECT 銷售控制表.流水號, 銷售控制表.單號, 客戶資料表.名稱, 銷售控制表.開單日期, 銷售控制表.交貨日期, 銷售控制表.含稅, 銷售控制表.單位主管, 銷售控制表.審核日期, 銷售收款事項.內容, 銷售收款事項.金額 AS 未收額額, 銷售控制表.送貨地點, 銷售控制表.運費, 銷售控制表.客戶編號, 客戶資料表.電話1, 客戶資料表.電話2, 客戶資料表.地址, 客戶資料表.公司名稱, 客戶資料表.統編, 銷售控制表.稅金, 銷售控制表.已出貨 AS 出貨, 銷售控制表.轉業績日期, 銷售控制表.已出貨 AS 已結單, 銷售控制表.銷貨總額 FROM 銷售控制表 INNER JOIN 客戶資料表 ON 銷售控制表.客戶編號 = 客戶資料表.舊編 INNER JOIN (SELECT 銷售明細表.單號 FROM 銷售明細表 INNER JOIN 物料資料庫 ON 銷售明細表.料號 = 物料資料庫.料號 WHERE (銷售明細表.料號 LIKE N'%" & PA21 & "%') OR (銷售明細表.備註 LIKE N'%" & PA21 & "%') OR (物料資料庫.品名 LIKE N'%" & PA21 & "%') GROUP BY 銷售明細表.單號) AS QQQ ON 銷售控制表.單號 = QQQ.單號 LEFT OUTER JOIN 銷售收款事項 ON 銷售控制表.單號 = 銷售收款事項.單號 WHERE (銷售控制表.單號 LIKE '" & PA19 & "%') AND (銷售收款事項.內容 LIKE '未收餘額') AND (客戶資料表.名稱 LIKE N'%" & PA20 & "%') OR (銷售控制表.單號 LIKE '" & PA19 & "%') AND (銷售收款事項.內容 LIKE '未收餘額') AND (客戶資料表.電話1 LIKE N'%" & PA20 & "%') OR (銷售控制表.單號 LIKE '" & PA19 & "%') AND (銷售收款事項.內容 LIKE '未收餘額') AND (客戶資料表.電話2 LIKE N'%" & PA20 & "%') OR (銷售控制表.單號 LIKE '" & PA19 & "%') AND (銷售收款事項.內容 LIKE '未收餘額') AND (客戶資料表.地址 LIKE N'%" & PA20 & "%') OR (銷售控制表.單號 LIKE '" & PA19 & "%') AND (銷售收款事項.內容 LIKE '未收餘額') AND (客戶資料表.公司名稱 LIKE N'%" & PA20 & "%') OR (銷售控制表.單號 LIKE '" & PA19 & "%') AND (銷售收款事項.內容 LIKE '未收餘額') AND (客戶資料表.統編 LIKE N'%" & PA20 & "%') ORDER BY CHARINDEX(LEFT(銷售控制表.單號, 1), '123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'), 銷售控制表.單號 DESC" CmdSet_For_DGV() End Sub '---------------------銷售分析表----------------------------------------------------------------------------------------------------------------- Friend Sub SQL_銷售分析表_物料明細() If 銷售分析表.依開單日期_ch.Checked = False Then SQL2 = "(銷售控制表.交貨日期 BETWEEN '" & Format(銷售分析表.開始日期_dtp.Value, "yyyy/MM/dd") & "' AND '" & Format(銷售分析表.結束日期_dtp.Value, "yyyy/MM/dd") & "')" ElseIf 銷售分析表.依開單日期_ch.Checked = True Then SQL2 = "(銷售控制表.開單日期 BETWEEN '" & Format(銷售分析表.開始日期_dtp.Value, "yyyy/MM/dd") & "' AND '" & Format(銷售分析表.結束日期_dtp.Value, "yyyy/MM/dd") & "')" End If ConnOpen() SQL1 = "SELECT 銷售控制表.單號 AS 項次, 銷售控制表.單號, 銷售明細表.料號, 供應商資料表.簡稱 AS 供應商, 物料資料庫.品名, 倉儲分區控制表.倉名, 物料訂製狀態.訂製, 倉儲狀態.狀態, 銷售明細表.備註, 銷售明細表.數量, 銷售明細表.成本, 銷售明細表.售價 AS 單價, 銷售明細表.含稅, 銷售明細表.售價, 銷售明細表.狀態 AS 倉儲情況 FROM 倉儲狀態 RIGHT OUTER JOIN 銷售明細表 ON 倉儲狀態.編碼 = 銷售明細表.物料狀態 LEFT OUTER JOIN 物料訂製狀態 ON 銷售明細表.訂製狀態 = 物料訂製狀態.編碼 LEFT OUTER JOIN 倉儲分區控制表 ON 銷售明細表.倉儲狀態 = 倉儲分區控制表.倉名編號 LEFT OUTER JOIN 物料資料庫 INNER JOIN 供應商資料表 ON 物料資料庫.供應商編號 = 供應商資料表.編號 ON 銷售明細表.料號 = 物料資料庫.料號 LEFT OUTER JOIN 銷售控制表 ON 銷售明細表.單號 = 銷售控制表.單號 WHERE (銷售控制表.單號 NOT LIKE '4%') AND (銷售控制表.單號 LIKE '" & PA19 & "%') AND (銷售明細表.料號 NOT LIKE '1001%') AND " & SQL2 & " ORDER BY CHARINDEX(LEFT(銷售控制表.單號, 1), '123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'), 銷售控制表.單號 DESC" CmdSet_For_DGV() End Sub Friend Sub SQL_銷售分析表_物料明細1() If 銷售分析表.依開單日期_ch.Checked = False Then SQL2 = "(銷售控制表.交貨日期 BETWEEN '" & Format(銷售分析表.開始日期_dtp.Value, "yyyy/MM/dd") & "' AND '" & Format(銷售分析表.結束日期_dtp.Value, "yyyy/MM/dd") & "')" ElseIf 銷售分析表.依開單日期_ch.Checked = True Then SQL2 = "(銷售控制表.開單日期 BETWEEN '" & Format(銷售分析表.開始日期_dtp.Value, "yyyy/MM/dd") & "' AND '" & Format(銷售分析表.結束日期_dtp.Value, "yyyy/MM/dd") & "')" End If ConnOpen() SQL1 = "SELECT LEFT(銷售控制表.單號, 2) AS 項次, LEFT(銷售控制表.單號, 2) AS 業務, SUM(銷售明細表.數量 * 銷售明細表.售價) AS 銷售 FROM 倉儲狀態 RIGHT OUTER JOIN 銷售明細表 ON 倉儲狀態.編碼 = 銷售明細表.物料狀態 LEFT OUTER JOIN 物料訂製狀態 ON 銷售明細表.訂製狀態 = 物料訂製狀態.編碼 LEFT OUTER JOIN 倉儲分區控制表 ON 銷售明細表.倉儲狀態 = 倉儲分區控制表.倉名編號 LEFT OUTER JOIN 物料資料庫 INNER JOIN 供應商資料表 ON 物料資料庫.供應商編號 = 供應商資料表.編號 ON 銷售明細表.料號 = 物料資料庫.料號 LEFT OUTER JOIN 銷售控制表 ON 銷售明細表.單號 = 銷售控制表.單號 WHERE (銷售控制表.單號 NOT LIKE '4%') AND (銷售控制表.單號 LIKE '" & PA19 & "%') AND (銷售明細表.料號 NOT LIKE '1001%') AND " & SQL2 & " GROUP BY LEFT(銷售控制表.單號, 2) ORDER BY 銷售 DESC" CmdSet_For_DGV() End Sub Friend Sub SQL_銷售分析表_它項明細() If 銷售分析表.依開單日期_ch.Checked = False Then SQL2 = "(銷售控制表.交貨日期 BETWEEN '" & Format(銷售分析表.開始日期_dtp.Value, "yyyy/MM/dd") & "' AND '" & Format(銷售分析表.結束日期_dtp.Value, "yyyy/MM/dd") & "')" ElseIf 銷售分析表.依開單日期_ch.Checked = True Then SQL2 = "(銷售控制表.開單日期 BETWEEN '" & Format(銷售分析表.開始日期_dtp.Value, "yyyy/MM/dd") & "' AND '" & Format(銷售分析表.結束日期_dtp.Value, "yyyy/MM/dd") & "')" End If ConnOpen() SQL1 = "SELECT 銷售控制表.單號 AS 項次, 銷售控制表.單號, 銷售明細表.料號, 供應商資料表.簡稱 AS 供應商, 物料資料庫.品名, 倉儲分區控制表.倉名, 物料訂製狀態.訂製, 倉儲狀態.狀態, 銷售明細表.備註, 銷售明細表.數量, 銷售明細表.成本, 銷售明細表.售價 AS 單價, 銷售明細表.含稅, 銷售明細表.售價, 銷售明細表.狀態 AS 倉儲情況 FROM 倉儲狀態 RIGHT OUTER JOIN 銷售明細表 ON 倉儲狀態.編碼 = 銷售明細表.物料狀態 LEFT OUTER JOIN 物料訂製狀態 ON 銷售明細表.訂製狀態 = 物料訂製狀態.編碼 LEFT OUTER JOIN 倉儲分區控制表 ON 銷售明細表.倉儲狀態 = 倉儲分區控制表.倉名編號 LEFT OUTER JOIN 物料資料庫 INNER JOIN 供應商資料表 ON 物料資料庫.供應商編號 = 供應商資料表.編號 ON 銷售明細表.料號 = 物料資料庫.料號 LEFT OUTER JOIN 銷售控制表 ON 銷售明細表.單號 = 銷售控制表.單號 WHERE (銷售控制表.單號 NOT LIKE '4%') AND (銷售控制表.單號 LIKE '" & PA19 & "%') AND (銷售明細表.料號 LIKE '1001%') AND (銷售明細表.成本 > 0) AND " & SQL2 & " ORDER BY CHARINDEX(LEFT(銷售控制表.單號, 1), '123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'), 銷售控制表.單號 DESC" CmdSet_For_DGV() End Sub Friend Sub SQL_銷售分析表_它項明細1() If 銷售分析表.依開單日期_ch.Checked = False Then SQL2 = "(銷售控制表.交貨日期 BETWEEN '" & Format(銷售分析表.開始日期_dtp.Value, "yyyy/MM/dd") & "' AND '" & Format(銷售分析表.結束日期_dtp.Value, "yyyy/MM/dd") & "')" ElseIf 銷售分析表.依開單日期_ch.Checked = True Then SQL2 = "(銷售控制表.開單日期 BETWEEN '" & Format(銷售分析表.開始日期_dtp.Value, "yyyy/MM/dd") & "' AND '" & Format(銷售分析表.結束日期_dtp.Value, "yyyy/MM/dd") & "')" End If ConnOpen() SQL1 = "SELECT 供應商資料表.簡稱 AS 項次, 供應商資料表.簡稱 AS 銷售它項, SUM((銷售明細表.數量 * 銷售明細表.售價) - (銷售明細表.數量 * 銷售明細表.成本)) AS 它項收支 FROM 倉儲狀態 RIGHT OUTER JOIN 銷售明細表 ON 倉儲狀態.編碼 = 銷售明細表.物料狀態 LEFT OUTER JOIN 物料訂製狀態 ON 銷售明細表.訂製狀態 = 物料訂製狀態.編碼 LEFT OUTER JOIN 倉儲分區控制表 ON 銷售明細表.倉儲狀態 = 倉儲分區控制表.倉名編號 LEFT OUTER JOIN 物料資料庫 INNER JOIN 供應商資料表 ON 物料資料庫.供應商編號 = 供應商資料表.編號 ON 銷售明細表.料號 = 物料資料庫.料號 LEFT OUTER JOIN 銷售控制表 ON 銷售明細表.單號 = 銷售控制表.單號 WHERE (銷售控制表.單號 NOT LIKE '4%') AND (銷售控制表.單號 LIKE '" & PA19 & "%') AND (銷售明細表.料號 LIKE '1001%') AND (銷售明細表.成本 > 0) AND " & SQL2 & " GROUP BY 供應商資料表.簡稱 ORDER BY 它項收支" CmdSet_For_DGV() End Sub Friend Sub SQL_銷售分析表_銷售備註() If 銷售分析表.依開單日期_ch.Checked = False Then SQL2 = "(銷售控制表.交貨日期 BETWEEN '" & Format(銷售分析表.開始日期_dtp.Value, "yyyy/MM/dd") & "' AND '" & Format(銷售分析表.結束日期_dtp.Value, "yyyy/MM/dd") & "')" ElseIf 銷售分析表.依開單日期_ch.Checked = True Then SQL2 = "(銷售控制表.開單日期 BETWEEN '" & Format(銷售分析表.開始日期_dtp.Value, "yyyy/MM/dd") & "' AND '" & Format(銷售分析表.結束日期_dtp.Value, "yyyy/MM/dd") & "')" End If ConnOpen() SQL1 = "SELECT 銷售控制表.單號 AS 項次, 銷售備註表.單號, 銷售備註表.備註, 銷售備註表.收入, 銷售備註表.支出 FROM 銷售備註表 INNER JOIN 銷售控制表 ON 銷售備註表.單號 = 銷售控制表.單號 WHERE (銷售控制表.單號 Not Like '4%') AND (銷售控制表.單號 LIKE '" & PA19 & "%') AND ((銷售備註表.收入 > 0) OR (銷售備註表.支出 > 0)) AND " & SQL2 & " ORDER BY 銷售控制表.單號 DESC" CmdSet_For_DGV() End Sub Friend Sub SQL_銷售分析表_銷售備註1() If 銷售分析表.依開單日期_ch.Checked = False Then SQL2 = "(銷售控制表.交貨日期 BETWEEN '" & Format(銷售分析表.開始日期_dtp.Value, "yyyy/MM/dd") & "' AND '" & Format(銷售分析表.結束日期_dtp.Value, "yyyy/MM/dd") & "')" ElseIf 銷售分析表.依開單日期_ch.Checked = True Then SQL2 = "(銷售控制表.開單日期 BETWEEN '" & Format(銷售分析表.開始日期_dtp.Value, "yyyy/MM/dd") & "' AND '" & Format(銷售分析表.結束日期_dtp.Value, "yyyy/MM/dd") & "')" End If ConnOpen() SQL1 = "SELECT LEFT(銷售控制表.單號, 2) AS 項次, LEFT(銷售控制表.單號, 2) AS 業務, SUM(銷售備註表.收入 - 銷售備註表.支出) AS 其他收支 FROM 銷售備註表 INNER JOIN 銷售控制表 ON 銷售備註表.單號 = 銷售控制表.單號 WHERE (銷售控制表.單號 Not Like '4%') AND (銷售控制表.單號 LIKE '" & PA19 & "%') AND ((銷售備註表.收入 > 0) OR (銷售備註表.支出 > 0)) AND " & SQL2 & " GROUP BY LEFT(銷售控制表.單號, 2) ORDER BY 其他收支" CmdSet_For_DGV() End Sub Friend Sub SQL_銷售分析表_稅金() If 銷售分析表.依開單日期_ch.Checked = False Then SQL2 = "(銷售控制表.交貨日期 BETWEEN '" & Format(銷售分析表.開始日期_dtp.Value, "yyyy/MM/dd") & "' AND '" & Format(銷售分析表.結束日期_dtp.Value, "yyyy/MM/dd") & "')" ElseIf 銷售分析表.依開單日期_ch.Checked = True Then SQL2 = "(銷售控制表.開單日期 BETWEEN '" & Format(銷售分析表.開始日期_dtp.Value, "yyyy/MM/dd") & "' AND '" & Format(銷售分析表.結束日期_dtp.Value, "yyyy/MM/dd") & "')" End If ConnOpen() SQL1 = "SELECT 單號 AS 項次, 單號, 稅金 FROM 銷售控制表 WHERE (單號 Not Like '4%') AND (單號 LIKE '" & PA19 & "%') AND (稅金 > 0) AND " & SQL2 & " ORDER BY 單號 DESC" CmdSet_For_DGV() End Sub Friend Sub SQL_銷售分析表_稅金1() If 銷售分析表.依開單日期_ch.Checked = False Then SQL2 = "(銷售控制表.交貨日期 BETWEEN '" & Format(銷售分析表.開始日期_dtp.Value, "yyyy/MM/dd") & "' AND '" & Format(銷售分析表.結束日期_dtp.Value, "yyyy/MM/dd") & "')" ElseIf 銷售分析表.依開單日期_ch.Checked = True Then SQL2 = "(銷售控制表.開單日期 BETWEEN '" & Format(銷售分析表.開始日期_dtp.Value, "yyyy/MM/dd") & "' AND '" & Format(銷售分析表.結束日期_dtp.Value, "yyyy/MM/dd") & "')" End If ConnOpen() SQL1 = "SELECT LEFT(單號,1) AS 項次, LEFT(單號,1) AS 業務, SUM(稅金) AS 稅金 FROM 銷售控制表 WHERE (單號 Not Like '4%') AND (單號 LIKE '" & PA19 & "%') AND (稅金 > 0) AND " & SQL2 & " GROUP BY LEFT(單號,1) ORDER BY 稅金 DESC" CmdSet_For_DGV() End Sub Friend Sub SQL_銷售分析表_運費() If 銷售分析表.依開單日期_ch.Checked = False Then SQL2 = "(交貨日期 BETWEEN '" & Format(銷售分析表.開始日期_dtp.Value, "yyyy/MM/dd") & "' AND '" & Format(銷售分析表.結束日期_dtp.Value, "yyyy/MM/dd") & "')" ElseIf 銷售分析表.依開單日期_ch.Checked = True Then SQL2 = "(開單日期 BETWEEN '" & Format(銷售分析表.開始日期_dtp.Value, "yyyy/MM/dd") & "' AND '" & Format(銷售分析表.結束日期_dtp.Value, "yyyy/MM/dd") & "')" End If ConnOpen() SQL1 = "SELECT 單號 AS 項次, 單號, 送貨地點, 運費 FROM 銷售控制表 WHERE (單號 Not Like '4%') AND (單號 LIKE '" & PA19 & "%') AND (運費 > 0) AND " & SQL2 & " ORDER BY CHARINDEX(LEFT(單號, 1), '123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'), 單號 DESC" CmdSet_For_DGV() End Sub Friend Sub SQL_銷售分析表_運費1() If 銷售分析表.依開單日期_ch.Checked = False Then SQL2 = "(交貨日期 BETWEEN '" & Format(銷售分析表.開始日期_dtp.Value, "yyyy/MM/dd") & "' AND '" & Format(銷售分析表.結束日期_dtp.Value, "yyyy/MM/dd") & "')" ElseIf 銷售分析表.依開單日期_ch.Checked = True Then SQL2 = "(開單日期 BETWEEN '" & Format(銷售分析表.開始日期_dtp.Value, "yyyy/MM/dd") & "' AND '" & Format(銷售分析表.結束日期_dtp.Value, "yyyy/MM/dd") & "')" End If ConnOpen() SQL1 = "SELECT 送貨地點 AS 項次, 送貨地點, SUM(運費) AS 運費 FROM 銷售控制表 WHERE (單號 Not Like '4%') AND (單號 LIKE '" & PA19 & "%') AND (運費 > 0) AND " & SQL2 & " GROUP BY 送貨地點 ORDER BY 運費 DESC" CmdSet_For_DGV() End Sub Friend Sub SQL_銷售分析表_廠商彙總() If 銷售分析表.依開單日期_ch.Checked = False Then SQL2 = "(交貨日期 BETWEEN '" & Format(銷售分析表.開始日期_dtp.Value, "yyyy/MM/dd") & "' AND '" & Format(銷售分析表.結束日期_dtp.Value, "yyyy/MM/dd") & "')" ElseIf 銷售分析表.依開單日期_ch.Checked = True Then SQL2 = "(開單日期 BETWEEN '" & Format(銷售分析表.開始日期_dtp.Value, "yyyy/MM/dd") & "' AND '" & Format(銷售分析表.結束日期_dtp.Value, "yyyy/MM/dd") & "')" End If ConnOpen() SQL1 = "SELECT AAA.項次, AAA.編號, AAA.供應商, AAA.成本預估, 系統比例用空白圖片.圖片 AS 成本佔比 FROM 系統比例用空白圖片 RIGHT OUTER JOIN (SELECT 物料資料庫.供應商編號 AS 項次, 物料資料庫.供應商編號 AS 編號, 供應商資料表.簡稱 AS 供應商, SUM(銷售明細表.數量 * 銷售明細表.成本) AS 成本預估, 物料資料庫.進度條用空白 FROM 銷售明細表 LEFT OUTER JOIN 物料資料庫 INNER JOIN 供應商資料表 ON 物料資料庫.供應商編號 = 供應商資料表.編號 ON 銷售明細表.料號 = 物料資料庫.料號 LEFT OUTER JOIN 銷售控制表 ON 銷售明細表.單號 = 銷售控制表.單號 WHERE (銷售控制表.單號 Not Like '4%') AND (銷售控制表.單號 LIKE '" & PA19 & "%') AND (銷售明細表.料號 NOT LIKE '1001%') AND (銷售明細表.成本 > 0) AND (銷售明細表.售價 > 0) AND " & SQL2 & " GROUP BY 供應商資料表.簡稱, 物料資料庫.供應商編號, 物料資料庫.進度條用空白) AS AAA ON 系統比例用空白圖片.選擇 = AAA.進度條用空白 ORDER BY AAA.成本預估 DESC" CmdSet_For_DGV() End Sub '---------------------貨款試算表----------------------------------------------------------------------------------------------------------------- Friend Sub SQL_貨款試算表_廠商彙總() If 貨款試算表.依開單日期_ch.Checked = False Then SQL2 = "(交貨日期 BETWEEN '" & Format(貨款試算表.開始日期_dtp.Value, "yyyy/MM/dd") & "' AND '" & Format(貨款試算表.結束日期_dtp.Value, "yyyy/MM/dd") & "')" ElseIf 貨款試算表.依開單日期_ch.Checked = True Then SQL2 = "(開單日期 BETWEEN '" & Format(貨款試算表.開始日期_dtp.Value, "yyyy/MM/dd") & "' AND '" & Format(貨款試算表.結束日期_dtp.Value, "yyyy/MM/dd") & "')" End If ConnOpen() SQL1 = "SELECT AAA.項次, AAA.編號, AAA.供應商, AAA.預估進貨, 系統比例用空白圖片.圖片 AS 成本佔比 FROM 系統比例用空白圖片 RIGHT OUTER JOIN (SELECT 物料資料庫.供應商編號 AS 項次, 物料資料庫.供應商編號 AS 編號, 供應商資料表.簡稱 AS 供應商, SUM(銷售明細表.數量 * 銷售明細表.成本) AS 預估進貨, 物料資料庫.進度條用空白 FROM 銷售明細表 LEFT OUTER JOIN 物料資料庫 INNER JOIN 供應商資料表 ON 物料資料庫.供應商編號 = 供應商資料表.編號 ON 銷售明細表.料號 = 物料資料庫.料號 LEFT OUTER JOIN 銷售控制表 ON 銷售明細表.單號 = 銷售控制表.單號 WHERE (銷售控制表.單號 Not Like '4%') AND (銷售控制表.單號 LIKE '" & PA19 & "%') AND (銷售明細表.料號 NOT LIKE '1001%') AND (銷售明細表.成本 > 0) AND (銷售明細表.售價 > 0) AND (銷售明細表.倉儲狀態 LIKE 'N03') AND " & SQL2 & " GROUP BY 供應商資料表.簡稱, 物料資料庫.供應商編號, 物料資料庫.進度條用空白) AS AAA ON 系統比例用空白圖片.選擇 = AAA.進度條用空白 ORDER BY AAA.預估進貨 DESC" CmdSet_For_DGV() End Sub Friend Sub SQL_貨款試算表_物料明細() If 貨款試算表.依開單日期_ch.Checked = False Then SQL2 = "(銷售控制表.交貨日期 BETWEEN '" & Format(貨款試算表.開始日期_dtp.Value, "yyyy/MM/dd") & "' AND '" & Format(貨款試算表.結束日期_dtp.Value, "yyyy/MM/dd") & "')" ElseIf 貨款試算表.依開單日期_ch.Checked = True Then SQL2 = "(銷售控制表.開單日期 BETWEEN '" & Format(貨款試算表.開始日期_dtp.Value, "yyyy/MM/dd") & "' AND '" & Format(貨款試算表.結束日期_dtp.Value, "yyyy/MM/dd") & "')" End If ConnOpen() SQL1 = "SELECT 銷售控制表.單號 AS 項次, 銷售控制表.單號, 銷售明細表.料號, 供應商資料表.簡稱 AS 供應商, 物料資料庫.品名, 倉儲分區控制表.倉名, 物料訂製狀態.訂製, 倉儲狀態.狀態, 銷售明細表.備註, 銷售明細表.數量, 銷售明細表.成本, 銷售明細表.售價 AS 單價, 銷售明細表.含稅, 銷售明細表.售價 AS 金額, 銷售明細表.狀態 AS 倉儲情況 FROM 倉儲狀態 RIGHT OUTER JOIN 銷售明細表 ON 倉儲狀態.編碼 = 銷售明細表.物料狀態 LEFT OUTER JOIN 物料訂製狀態 ON 銷售明細表.訂製狀態 = 物料訂製狀態.編碼 LEFT OUTER JOIN 倉儲分區控制表 ON 銷售明細表.倉儲狀態 = 倉儲分區控制表.倉名編號 LEFT OUTER JOIN 物料資料庫 INNER JOIN 供應商資料表 ON 物料資料庫.供應商編號 = 供應商資料表.編號 ON 銷售明細表.料號 = 物料資料庫.料號 LEFT OUTER JOIN 銷售控制表 ON 銷售明細表.單號 = 銷售控制表.單號 WHERE (銷售控制表.單號 NOT LIKE '4%') AND (銷售控制表.單號 LIKE '" & PA20 & "%')AND (銷售明細表.料號 LIKE '" & PA19 & "%') AND (銷售明細表.料號 NOT LIKE '1001%') AND (銷售明細表.成本 > 0) AND (銷售明細表.售價 > 0) AND (銷售明細表.倉儲狀態 LIKE 'N03') AND " & SQL2 & " ORDER BY CHARINDEX(LEFT(銷售控制表.單號, 1), '123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'), 銷售控制表.單號 DESC" CmdSet_For_DGV() End Sub '---------------------應收帳款未收----------------------------------------------------------------------------------------------------------------- Friend Sub SQL_應收帳款未收_訂單控制表() ConnOpen() SQL1 = "SELECT 銷售控制表.流水號, 銷售控制表.單號, 客戶資料表.名稱, 銷售控制表.開單日期, 銷售控制表.交貨日期, 銷售控制表.含稅, 銷售控制表.單位主管, 銷售控制表.審核日期, 銷售收款事項_1.內容, 銷售收款事項_1.金額, 銷售控制表.送貨地點, 銷售控制表.運費, 銷售控制表.客戶編號, 客戶資料表.電話1, 客戶資料表.電話2, 客戶資料表.地址, 客戶資料表.公司名稱, 客戶資料表.統編, 銷售控制表.稅金, QQQ.轉財務 FROM 銷售控制表 LEFT OUTER JOIN 客戶資料表 ON 銷售控制表.客戶編號 = 客戶資料表.舊編 LEFT OUTER JOIN (SELECT 單號, 收支單號, 轉財務 FROM 銷售收款事項 WHERE (收支單號 IS NOT NULL) OR (收支單號 NOT LIKE '') GROUP BY 單號, 收支單號, 轉財務) AS QQQ ON 銷售控制表.單號 = QQQ.單號 LEFT OUTER JOIN 銷售收款事項 AS 銷售收款事項_1 ON 銷售控制表.單號 = 銷售收款事項_1.單號 WHERE (銷售控制表.單號 LIKE '" & PA19 & "%') AND (銷售收款事項_1.內容 LIKE '未收餘額') AND (銷售收款事項_1.金額 > 0) AND (客戶資料表.名稱 LIKE N'%" & PA20 & "%' OR 客戶資料表.電話1 LIKE N'%" & PA20 & "%' OR 客戶資料表.電話2 LIKE N'%" & PA20 & "%' OR 客戶資料表.地址 LIKE N'%" & PA20 & "%' OR 客戶資料表.公司名稱 LIKE N'%" & PA20 & "%' OR 客戶資料表.統編 LIKE N'%" & PA20 & "%') " & SQL2 & " GROUP BY 銷售控制表.流水號, 銷售控制表.單號, 客戶資料表.名稱, 銷售控制表.開單日期, 銷售控制表.交貨日期, 銷售控制表.含稅, 銷售控制表.單位主管, 銷售控制表.審核日期, 銷售收款事項_1.內容, 銷售收款事項_1.金額, 銷售控制表.送貨地點, 銷售控制表.運費, 銷售控制表.客戶編號, 客戶資料表.電話1, 客戶資料表.電話2, 客戶資料表.地址, 客戶資料表.公司名稱, 客戶資料表.統編, 銷售控制表.稅金, QQQ.轉財務 ORDER BY CHARINDEX(LEFT(銷售控制表.單號, 1), '123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'), 銷售控制表.單號 DESC" CmdSet_For_DGV() End Sub Friend Sub SQL_應收帳款未收_查詢公帳控制表會計科目() ConnOpen() SQL1 = "SELECT 會計科目, 編號 FROM 會計科目 WHERE (LEFT(編號, 7) LIKE N'" & 應收帳款未收.ComboBox4.Text & "') AND (停用 = 0) AND (統制科目 = 0) ORDER BY 編號" CmdSet_For_dr() End Sub Friend Sub SQL_應收帳款未收_查詢最後一筆公帳控制表會計科目() ConnOpen() SQL1 = "SELECT 第一階, LEFT(編號, 4) AS 編號 FROM 會計科目 WHERE (停用 = 0) GROUP BY 第一階, LEFT(編號, 4) ORDER BY 編號" CmdSet_For_dr() End Sub Friend Sub SQL_應收帳款未收_查詢最左邊公帳控制表會計科目() ConnOpen() SQL1 = "SELECT LEFT(編號, 7) AS 編號, 第二階, 層級 FROM 會計科目 WHERE (LEFT(編號, 4) LIKE N'" & 應收帳款未收.會科碼1_ch.Text & "') AND (層級 NOT LIKE '3') AND (停用 = 0) GROUP BY LEFT(編號, 7), 第二階, 層級 ORDER BY 編號" CmdSet_For_dr() End Sub Friend Sub SQL_應收帳款未收_轉財務Null為False() ConnOpen() SQL1 = "UPDATE 銷售收款事項 SET 轉財務 = 0 WHERE (轉財務 Is NULL)" CmdSet_For_dr() End Sub Friend Sub SQL_銷售衍生運費_轉財務Null為False() ConnOpen() SQL1 = "UPDATE 銷售衍生運費 SET 轉財務 = 0 WHERE (轉財務 Is NULL)" CmdSet_For_dr() End Sub Friend Sub SQL_銷售備註表_轉財務Null為False() ConnOpen() SQL1 = "UPDATE 銷售備註表 SET 轉財務 = 0 WHERE (轉財務 Is NULL)" CmdSet_For_dr() End Sub Friend Sub SQL_應收帳款未收_新增公帳流水帳資料() ConnOpen() SQL1 = "INSERT INTO 公帳流水帳 (流水號, 銀行, 日期, 類別, 收入, 支出, 明細, 人員, 支付單號, 項次, 會計, 出納, 現金, 備用金, 公帳, 支票, 出納日期, 零用金, 支票數, 匯率, 備註, 含稅) " & "VALUES (N'" & PA19 & "', N'" & 應收帳款未收.幣別_cb.Text & "', N'" & DTP & "', N'" & 應收帳款未收.ComboBox6.Text & "', N'0', N'0', N'', N'" & gUserName & "', N'" & 應收帳款未收.營運成本收支單號_tb.Text & "', N'" & PA15 & "', N'0', N'0', N'0', N'0', N'0', N'0', N'" & DTP & "', N'0', N'0', N'" & PA16 & "', N'' ,'0')" CmdSet_For_dr() End Sub Friend Sub SQL_應收帳款未收_查詢最後一筆公帳支付單號() ConnOpen() SQL1 = "SELECT TOP(1) 項次 FROM 公帳流水帳 WHERE 支付單號 LIKE '" & 應收帳款未收.營運成本收支單號_tb.Text & "' ORDER BY 項次 DESC" CmdSet_For_dr() End Sub Friend Sub SQL_應收帳款未收_轉財務() ConnOpen() SQL1 = "UPDATE 銷售收款事項 SET 收支單號 = N'" & PA & "', 轉財務 = 1 WHERE (資料流水號 LIKE '" & PA12 & "')" CmdSet_For_dr() End Sub Friend Sub SQL_應收帳款未收_轉財務_退回() ConnOpen() SQL1 = "UPDATE 銷售收款事項 SET 收支單號 = N'', 轉財務 = 0 WHERE (資料流水號 LIKE '" & PA12 & "')" CmdSet_For_dr() End Sub Friend Sub SQL_銷售衍生運費_轉財務() ConnOpen() SQL1 = "UPDATE 銷售衍生運費 SET 收支單號 = N'" & PA & "', 轉財務 = 1 WHERE (資料流水號 LIKE '" & PA12 & "')" CmdSet_For_dr() End Sub Friend Sub SQL_銷售備註表_轉財務() ConnOpen() SQL1 = "UPDATE 銷售備註表 SET 收支單號 = N'" & PA & "', 轉財務 = 1 WHERE (資料流水號 LIKE '" & PA12 & "')" CmdSet_For_dr() End Sub '---------------------應收帳款已收----------------------------------------------------------------------------------------------------------------- Friend Sub SQL_應收帳款已收_訂單控制表() ConnOpen() SQL1 = "SELECT 銷售控制表.流水號, 銷售控制表.單號, 客戶資料表.名稱, 銷售控制表.開單日期, 銷售控制表.交貨日期, 銷售控制表.含稅, 銷售控制表.單位主管, 銷售控制表.審核日期, 銷售收款事項_1.內容, 銷售收款事項_1.金額, 銷售控制表.送貨地點, 銷售控制表.運費, 銷售控制表.客戶編號, 客戶資料表.電話1, 客戶資料表.電話2, 客戶資料表.地址, 客戶資料表.公司名稱, 客戶資料表.統編, 銷售控制表.稅金, QQQ.轉財務 FROM 銷售控制表 LEFT OUTER JOIN 客戶資料表 ON 銷售控制表.客戶編號 = 客戶資料表.舊編 LEFT OUTER JOIN (SELECT 單號, 收支單號, 轉財務 FROM 銷售收款事項 WHERE (收支單號 IS NOT NULL) OR (收支單號 NOT LIKE '') GROUP BY 單號, 收支單號, 轉財務) AS QQQ ON 銷售控制表.單號 = QQQ.單號 LEFT OUTER JOIN 銷售收款事項 AS 銷售收款事項_1 ON 銷售控制表.單號 = 銷售收款事項_1.單號 WHERE (銷售控制表.單號 LIKE '" & PA19 & "%') AND (銷售收款事項_1.內容 LIKE '未收餘額') AND (銷售收款事項_1.金額 = 0) AND (客戶資料表.名稱 LIKE N'%" & PA20 & "%' OR 客戶資料表.電話1 LIKE N'%" & PA20 & "%' OR 客戶資料表.電話2 LIKE N'%" & PA20 & "%' OR 客戶資料表.地址 LIKE N'%" & PA20 & "%' OR 客戶資料表.公司名稱 LIKE N'%" & PA20 & "%' OR 客戶資料表.統編 LIKE N'%" & PA20 & "%') " & SQL2 & " GROUP BY 銷售控制表.流水號, 銷售控制表.單號, 客戶資料表.名稱, 銷售控制表.開單日期, 銷售控制表.交貨日期, 銷售控制表.含稅, 銷售控制表.單位主管, 銷售控制表.審核日期, 銷售收款事項_1.內容, 銷售收款事項_1.金額, 銷售控制表.送貨地點, 銷售控制表.運費, 銷售控制表.客戶編號, 客戶資料表.電話1, 客戶資料表.電話2, 客戶資料表.地址, 客戶資料表.公司名稱, 客戶資料表.統編, 銷售控制表.稅金, QQQ.轉財務 ORDER BY CHARINDEX(LEFT(銷售控制表.單號, 1), '123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'), 銷售控制表.單號 DESC" CmdSet_For_DGV() End Sub Friend Sub SQL_應收帳款已收_轉財務Null為False() ConnOpen() SQL1 = "UPDATE 銷售收款事項 SET 轉財務 = 0 WHERE (轉財務 Is NULL)" CmdSet_For_dr() End Sub Friend Sub SQL_應收帳款已收_轉財務() ConnOpen() SQL1 = "UPDATE 銷售收款事項 SET 收支單號 = N'" & PA & "', 轉財務 = 1 WHERE (資料流水號 LIKE '" & PA12 & "')" CmdSet_For_dr() End Sub Friend Sub SQL_應收帳款已收_查詢最左邊公帳控制表會計科目() ConnOpen() SQL1 = "SELECT LEFT(編號, 7) AS 編號, 第二階, 層級 FROM 會計科目 WHERE (LEFT(編號, 4) LIKE N'" & 應收帳款已收.會科碼1_ch.Text & "') AND (層級 NOT LIKE '3') AND (停用 = 0) GROUP BY LEFT(編號, 7), 第二階, 層級 ORDER BY 編號" CmdSet_For_dr() End Sub Friend Sub SQL_應收帳款已收_查詢最左邊公帳控制表會計科目1() ConnOpen() SQL1 = "SELECT LEFT(編號, 7) AS 編號, 第二階, 層級 FROM 會計科目 WHERE (LEFT(編號, 4) LIKE N'" & 銷售單申請.會科碼1_ch.Text & "') AND (層級 NOT LIKE '3') AND (停用 = 0) GROUP BY LEFT(編號, 7), 第二階, 層級 ORDER BY 編號" CmdSet_For_dr() End Sub Friend Sub SQL_應收帳款已收_查詢最後一筆公帳控制表會計科目() ConnOpen() SQL1 = "SELECT 第一階, LEFT(編號, 4) AS 編號 FROM 會計科目 WHERE (停用 = 0) GROUP BY 第一階, LEFT(編號, 4) ORDER BY 編號" CmdSet_For_dr() End Sub Friend Sub SQL_應收帳款已收_查詢公帳控制表會計科目() ConnOpen() SQL1 = "SELECT 會計科目, 編號 FROM 會計科目 WHERE (LEFT(編號, 7) LIKE N'" & 應收帳款已收.ComboBox4.Text & "') AND (停用 = 0) AND (統制科目 = 0) ORDER BY 編號" CmdSet_For_dr() End Sub Friend Sub SQL_應收帳款已收_查詢公帳控制表會計科目1() ConnOpen() SQL1 = "SELECT 會計科目, 編號 FROM 會計科目 WHERE (LEFT(編號, 7) LIKE N'" & 銷售單申請.ComboBox4.Text & "') AND (停用 = 0) AND (統制科目 = 0) ORDER BY 編號" CmdSet_For_dr() End Sub End Module