Module SQL_倉儲系統管理
    '---------------------物料檔案-----------------------------------------------------------------------------------------------------------------
    Friend Sub SQL_物料檔案_清單()
        ConnOpen()
        If 物料檔案.查詢_tb.Text = "" Then
            If 物料檔案.供應商編碼_cb.Text = "" Then
                SQL2 = ""
            Else
                SQL2 = " WHERE 物料資料庫.供應商編號 LIKE '" & 物料檔案.供應商編碼_cb.Text & "' "
            End If
        Else
            If 物料檔案.供應商編碼_cb.Text = "" Then
                SQL2 = " WHERE (物料資料庫.料號 LIKE N'" & PA & "%' OR 物料資料庫.品名 LIKE N'%" & PA & "%') "
            Else
                SQL2 = " WHERE (物料資料庫.供應商編號 LIKE '" & 物料檔案.供應商編碼_cb.Text & "') AND (物料資料庫.料號 LIKE N'" & PA & "%' OR 物料資料庫.品名 LIKE N'%" & PA & "%') "
            End If
        End If
        SQL1 = "SELECT      物料資料庫.料號, 物料資料庫.供應商編號 AS 供應商, 物料資料庫.成本, 物料資料庫.品名, 物料資料庫.最低庫存量, 
                            物料資料庫.停用, 物料資料庫.是否有圖 AS 圖片, 系統選擇按鈕.選擇 AS 刪除, 供應商資料表.供應商 AS 廠商
                FROM              物料資料庫 INNER JOIN
                            供應商資料表 ON 物料資料庫.供應商編號 = 供應商資料表.編號 LEFT OUTER JOIN
                            系統選擇按鈕 ON 物料資料庫.料號 = 系統選擇按鈕.按鈕
                " & SQL2 & "
                ORDER BY   物料資料庫.料號"
        CmdSet_For_DGV()
    End Sub
    Friend Sub SQL_物料檔案_圖片修改()
        ConnOpen()
        SQL1 = "UPDATE 物料資料庫 SET 是否有圖 = N'1', 圖片 = @binary_file 
                WHERE (料號 LIKE '" & 物料檔案.料號_tb.Text & "')"
        CmdSet_For_dr_pic()
    End Sub
    Friend Sub SQL_物料圖庫_圖片下載()
        ConnOpen() : SQL1 = "SELECT 圖片 FROM 物料資料庫 WHERE 料號 LIKE N'" & 物料檔案.料號_tb.Text & "'" : CmdSet_For_DGV()
    End Sub
    Friend Sub SQL_物料檔案_料號_最後一筆資料()
        ConnOpen() : SQL1 = "SELECT TOP (1) 料號 FROM 物料資料庫 WHERE (料號 LIKE N'" & 物料檔案.供應商編碼_cb.Text & "%') AND (料號 NOT LIKE N'%Z%') ORDER BY 料號 DESC" : CmdSet_For_dr()
    End Sub
    Friend Sub SQL_物料檔案_新增()
        ConnOpen()
        SQL1 = "INSERT INTO 物料資料庫 (料號, 供應商編號, 成本, 品名, 停用, 是否有圖, 最低庫存量) 
                VALUES (N'" & 物料檔案.料號_tb.Text & "', N'" & 物料檔案.供應商編碼_cb.Text & "', N'0', N'', N'0', N'0', N'0')"
        CmdSet_For_dr()
    End Sub
    Friend Sub SQL_物料檔案_修改()
        ConnOpen() : SQL1 = "UPDATE 物料資料庫 SET 成本 = N'" & NU1 & "', 品名 = N'" & PA1 & "', 停用 = N'" & BL1 & "', 最低庫存量 = N'" & NU2 & "' WHERE (料號 = N'" & PA2 & "')" : CmdSet_For_dr()
    End Sub
    Friend Sub SQL_物料檔案_刪除()
        ConnOpen() : SQL1 = "DELETE 物料資料庫 WHERE (料號 = N'" & PA20 & "')" : CmdSet_For_dr()
    End Sub

    '---------------------倉儲分區控制表-----------------------------------------------------------------------------------------------------------------
    Friend Sub SQL_倉儲分區控制表_清單()
        ConnOpen() : SQL1 = "SELECT 倉級, 倉名編號, 倉名 FROM 倉儲分區控制表 ORDER BY 倉級, 倉名編號" : 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 倉名編號 FROM 倉儲分區控制表 WHERE 倉名 LIKE N'" & 倉儲分區控制表.倉名_tb.Text & "'" : CmdSet_For_dr()
    End Sub
    Friend Sub SQL_倉儲分區控制表_不重複查詢()
        ConnOpen()
        SQL1 = "SELECT 倉名編號 FROM 倉儲分區控制表 
                WHERE 倉級 LIKE N'" & 倉儲分區控制表.倉級_tb.Text & "' AND 倉名編號 LIKE N'" & 倉儲分區控制表.倉名編號_tb.Text & "' AND 倉名 LIKE N'" & 倉儲分區控制表.倉名_tb.Text & "'"
        CmdSet_For_dr()
    End Sub
    Friend Sub SQL_倉儲分區控制表_新增()
        ConnOpen()
        SQL1 = "INSERT INTO 倉儲分區控制表 (倉級, 倉名編號, 倉名) VALUES (N'" & 倉儲分區控制表.倉級_tb.Text & "',N'" & 倉儲分區控制表.倉名編號_tb.Text & "',N'" & 倉儲分區控制表.倉名_tb.Text & "')"
        CmdSet_For_dr()
    End Sub
    Friend Sub SQL_倉儲分區控制表_修改()
        ConnOpen()
        SQL1 = "UPDATE 倉儲分區控制表 SET 倉名 = N'" & 倉儲分區控制表.倉名_tb.Text & "' 
                WHERE (倉級 LIKE N'" & 倉儲分區控制表.倉級_tb.Text & "' AND 倉名編號 LIKE N'" & 倉儲分區控制表.倉名編號_tb.Text & "')"
        CmdSet_For_dr()
    End Sub
    Friend Sub SQL_倉儲分區控制表_刪除()
        ConnOpen()
        SQL1 = "DELETE FROM 倉儲分區控制表 
                WHERE 倉級 LIKE N'" & 倉儲分區控制表.倉級_tb.Text & "' AND 倉名編號 LIKE N'" & 倉儲分區控制表.倉名編號_tb.Text & "' AND 倉名 LIKE N'" & 倉儲分區控制表.倉名_tb.Text & "'"
        CmdSet_For_dr()
    End Sub
    '---------------------倉儲控制表-----------------------------------------------------------------------------------------------------------------
    Friend Sub SQL_倉儲控制表_控制表()
        If 倉儲控制表.不顯示歸零_ch.Checked = True And 倉儲控制表.料號2_tb.Text = "" Then
            SQL3 = " AND (RR.庫存 <> 0)"
        ElseIf 倉儲控制表.不顯示歸零_ch.Checked = True And 倉儲控制表.料號2_tb.Text <> "" Then
            SQL3 = " AND (RR.庫存 <> 0) AND BB.料號 LIKE '" & 倉儲控制表.料號2_tb.Text & "%'"
        ElseIf 倉儲控制表.不顯示歸零_ch.Checked = False And 倉儲控制表.料號2_tb.Text <> "" Then
            SQL3 = " AND BB.料號 LIKE '" & 倉儲控制表.料號2_tb.Text & "%'"
        Else
            SQL3 = ""
        End If

        If 倉儲控制表.指定倉庫_cb.Text = "" And 倉儲控制表.倉儲狀態_cb.Text = "" Then
            SQL2 = " WHERE (BB.訂製 IS NOT NULL)" & SQL3
        ElseIf 倉儲控制表.指定倉庫_cb.Text <> "" And 倉儲控制表.倉儲狀態_cb.Text = "" Then
            SQL2 = " WHERE (BB.訂製 IS NOT NULL) " & SQL3 & " AND ((倉儲分區控制表.倉名 Like N'%" & 倉儲控制表.指定倉庫_cb.Text & "%') 
                                                               OR (倉儲分區控制表_4.倉名 Like N'%" & 倉儲控制表.指定倉庫_cb.Text & "%') 
                                                               OR (倉儲分區控制表_5.倉名 Like N'%" & 倉儲控制表.指定倉庫_cb.Text & "%')) "
        ElseIf 倉儲控制表.指定倉庫_cb.Text = "" And 倉儲控制表.倉儲狀態_cb.Text <> "" Then
            SQL2 = " WHERE (BB.訂製 IS NOT NULL) " & SQL3 & " AND (BB.狀態 LIKE N'%" & 倉儲控制表.倉儲狀態_cb.Text & "%')"
        ElseIf 倉儲控制表.指定倉庫_cb.Text <> "" And 倉儲控制表.倉儲狀態_cb.Text <> "" Then
            SQL2 = " WHERE (BB.訂製 IS NOT NULL) " & SQL3 & " AND ((倉儲分區控制表.倉名 Like N'%" & 倉儲控制表.指定倉庫_cb.Text & "%') 
                                                                OR (倉儲分區控制表_4.倉名 Like N'%" & 倉儲控制表.指定倉庫_cb.Text & "%') 
                                                                OR (倉儲分區控制表_5.倉名 Like N'%" & 倉儲控制表.指定倉庫_cb.Text & "%')) AND (BB.狀態 LIKE N'%" & 倉儲控制表.倉儲狀態_cb.Text & "%')"
        End If
        ConnOpen()
        SQL1 = "SELECT      RR.倉名, BB.料號, BB.供應商, BB.品名, BB.訂製, BB.狀態, RR.庫存, WW.未出庫, QQ.未入庫, RR.庫存 AS 可領用, 
                            BB.最低庫存量, 系統比例用空白圖片.圖片 AS 庫存比例, BB.圖片, 倉儲分區控制表.倉名 AS 倉名1, 
                            倉儲分區控制表_4.倉名 AS 倉名2, 倉儲分區控制表_5.倉名 AS 倉名3, BB.物料狀態 " & SQL5 & "
                FROM              系統比例用空白圖片 RIGHT OUTER JOIN
                            倉儲分區控制表 AS 倉儲分區控制表_4 INNER JOIN
                                (SELECT          SUM(倉儲明細表_1.入庫) AS 未入庫, 倉儲明細表_1.料號, 倉儲分區控制表_1.倉名編號, 
                                                              倉儲明細表_1.物料狀態, 倉儲明細表_1.訂製狀態
                                  FROM               倉儲明細表 AS 倉儲明細表_1 LEFT OUTER JOIN
                                                              倉儲分區控制表 AS 倉儲分區控制表_1 ON 
                                                              倉儲明細表_1.倉名編號 = 倉儲分區控制表_1.倉名編號
                                  WHERE           (倉儲明細表_1.倉庫作業 LIKE '') AND (倉儲明細表_1.審核人 NOT LIKE N'作廢%') AND 
                                                              (倉儲明細表_1.入庫 <> 0)
                                  GROUP BY    倉儲明細表_1.料號, 倉儲分區控制表_1.倉名編號, 倉儲明細表_1.物料狀態, 倉儲明細表_1.訂製狀態) 
                            AS QQ ON 倉儲分區控制表_4.倉名編號 = QQ.倉名編號 RIGHT OUTER JOIN
                            倉儲分區控制表 AS 倉儲分區控制表_5 INNER JOIN
                                (SELECT          SUM(倉儲明細表_2.出庫) AS 未出庫, 倉儲明細表_2.料號, 倉儲分區控制表_2.倉名編號, 
                                                              倉儲明細表_2.物料狀態, 倉儲明細表_2.訂製狀態
                                  FROM               倉儲明細表 AS 倉儲明細表_2 LEFT OUTER JOIN
                                                              倉儲分區控制表 AS 倉儲分區控制表_2 ON 
                                                              倉儲明細表_2.倉名編號 = 倉儲分區控制表_2.倉名編號
                                  WHERE           (倉儲明細表_2.倉庫作業 LIKE '') AND (倉儲明細表_2.審核人 NOT LIKE N'作廢%') AND 
                                                              (倉儲明細表_2.出庫 <> 0)
                                  GROUP BY    倉儲明細表_2.料號, 倉儲分區控制表_2.倉名編號, 倉儲明細表_2.物料狀態, 倉儲明細表_2.訂製狀態) 
                            AS WW ON 倉儲分區控制表_5.倉名編號 = WW.倉名編號 RIGHT OUTER JOIN
                                (SELECT          供應商資料表.編號, 物料資料庫.料號, 供應商資料表.簡稱 AS 供應商, 物料資料庫.品名, 
                                                              物料訂製狀態.訂製, 倉儲狀態.狀態, AA.物料狀態, AA.訂製狀態, 物料資料庫.是否有圖 AS 圖片, 
                                                              物料資料庫.最低庫存量, 物料資料庫.進度條用空白, 物料資料庫.成本
                                  FROM               物料訂製狀態 RIGHT OUTER JOIN
                                                              倉儲狀態 RIGHT OUTER JOIN
                                                                  (SELECT          料號, 物料狀態, 訂製狀態
                                                                    FROM               倉儲明細表
                                                                    WHERE           (審核人 NOT LIKE '作廢%')
                                                                    GROUP BY    料號, 審核人, 審核日期, 倉庫作業, 作業日期, 物料狀態, 訂製狀態) AS AA ON 
                                                              倉儲狀態.編碼 = AA.物料狀態 ON 物料訂製狀態.編碼 = AA.訂製狀態 RIGHT OUTER JOIN
                                                              供應商資料表 RIGHT OUTER JOIN
                                                              物料資料庫 ON 供應商資料表.編號 = 物料資料庫.供應商編號 ON AA.料號 = 物料資料庫.料號
                                  GROUP BY    供應商資料表.編號, 物料資料庫.料號, 供應商資料表.簡稱, 物料資料庫.品名, 物料訂製狀態.訂製, 
                                                              倉儲狀態.狀態, AA.物料狀態, AA.訂製狀態, 物料資料庫.是否有圖, 物料資料庫.最低庫存量, 
                                                              物料資料庫.進度條用空白, 物料資料庫.成本) AS BB ON WW.訂製狀態 = BB.訂製狀態 AND 
                            WW.物料狀態 = BB.物料狀態 AND WW.料號 = BB.料號 LEFT OUTER JOIN
                                (SELECT          SUM(倉儲明細表_3.入庫) - SUM(倉儲明細表_3.出庫) AS 庫存, 倉儲明細表_3.料號, 
                                                              倉儲分區控制表_3.倉名編號, 倉儲明細表_3.物料狀態, 倉儲明細表_3.訂製狀態, 
                                                              倉儲分區控制表_3.倉名
                                  FROM               倉儲明細表 AS 倉儲明細表_3 LEFT OUTER JOIN
                                                              倉儲分區控制表 AS 倉儲分區控制表_3 ON 
                                                              倉儲明細表_3.倉名編號 = 倉儲分區控制表_3.倉名編號
                                  WHERE           (倉儲明細表_3.審核人 NOT LIKE N'作廢%') AND (倉儲明細表_3.倉庫作業 NOT LIKE '')
                                  GROUP BY    倉儲明細表_3.料號, 倉儲分區控制表_3.倉名編號, 倉儲明細表_3.物料狀態, 倉儲明細表_3.訂製狀態, 
                                                              倉儲分區控制表_3.倉名) AS RR ON BB.訂製狀態 = RR.訂製狀態 AND 
                            BB.物料狀態 = RR.物料狀態 AND BB.料號 = RR.料號 ON QQ.訂製狀態 = BB.訂製狀態 AND 
                            QQ.物料狀態 = BB.物料狀態 AND QQ.料號 = BB.料號 ON 
                            系統比例用空白圖片.選擇 = BB.進度條用空白 LEFT OUTER JOIN
                            倉儲分區控制表 ON RR.倉名編號 = 倉儲分區控制表.倉名編號
                " & SQL2 & "
                ORDER BY   BB.料號"
        CmdSet_For_DGV()
    End Sub
    Friend Sub SQL_倉儲控制表_明細()
        ConnOpen()
        SQL1 = "SELECT      倉儲明細表.執行單號, 倉儲明細表.採購單號, 倉儲明細表.狀態, 倉儲明細表.入庫, 倉儲明細表.出庫, 倉儲明細表.備註, 
                            倉儲明細表.申請人, 倉儲明細表.申請日期, 倉儲明細表.審核人, 倉儲明細表.審核日期, 倉儲明細表.倉庫作業, 
                            倉儲明細表.作業日期, 倉儲明細表.資料流水號, 倉儲明細表.倉級, 倉儲明細表.倉名編號, 倉儲明細表.料號, 
                            倉儲明細表.物料狀態, 倉儲明細表.訂製狀態, 倉儲明細表.採購流水
                FROM        倉儲明細表 INNER JOIN 物料訂製狀態 ON 倉儲明細表.訂製狀態 = 物料訂製狀態.編碼 INNER JOIN 倉儲狀態 ON 
                            倉儲明細表.物料狀態 = 倉儲狀態.編碼 INNER JOIN 倉儲分區控制表 ON 倉儲明細表.倉名編號 = 倉儲分區控制表.倉名編號
                WHERE      (倉儲明細表.料號 LIKE '" & PA20 & "') AND (物料訂製狀態.訂製 LIKE '" & PA19 & "') AND (倉儲狀態.狀態 LIKE '" & PA18 & "') AND (倉儲分區控制表.倉名 LIKE '" & PA17 & "')
                ORDER BY    倉儲明細表.採購單號 DESC"
        CmdSet_For_DGV()
    End Sub
    Friend Sub SQL_倉儲控制表_刪除明細()
        ConnOpen() : SQL1 = "DELETE 倉儲明細表 WHERE (資料流水號 LIKE N'" & PA20 & "')" : CmdSet_For_dr()
    End Sub
    Friend Sub SQL_倉儲控制表_備註存檔()
        ConnOpen() : SQL1 = "UPDATE 倉儲明細表 SET 備註 = N'" & PA19 & "' WHERE (資料流水號 LIKE N'" & PA20 & "')" : 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     執行單號, 申請人, 申請日期, 審核人, 審核日期, 倉庫作業, 作業日期
                FROM       倉儲明細表
                GROUP BY   執行單號, 申請人, 申請日期, 審核人, 審核日期, 倉庫作業, 作業日期
                ORDER BY   執行單號 DESC"
        CmdSet_For_DGV()
    End Sub
    '---------------------倉儲入庫-----------------------------------------------------------------------------------------------------------------
    Friend Sub SQL_倉儲入庫_銷售單號()
        ConnOpen() : SQL1 = "SELECT 銷售單號 FROM 採購控制表 WHERE (已審核 = 1) AND (已入庫 = 0) GROUP BY 銷售單號 ORDER BY 銷售單號" : CmdSet_For_DGV()
    End Sub
    Friend Sub SQL_倉儲入庫_進廠日()
        ConnOpen() : SQL1 = "SELECT 預計進廠日 AS 預計進廠 FROM 採購控制表 WHERE (已審核 = 1) AND (已入庫 = 0) GROUP BY 預計進廠日 ORDER BY 預計進廠日" : CmdSet_For_DGV()
    End Sub
    Friend Sub SQL_倉儲入庫_供應商()
        ConnOpen()
        SQL1 = "SELECT     採購控制表.供商編號 AS 編號, 供應商資料表.簡稱 AS 供應商
                FROM       採購控制表 INNER JOIN
                           供應商資料表 ON 採購控制表.供商編號 = 供應商資料表.編號
                WHERE     (採購控制表.已審核 = 1) AND (採購控制表.已入庫 = 0)
                GROUP BY   採購控制表.供商編號, 供應商資料表.簡稱
                ORDER BY   採購控制表.供商編號"
        CmdSet_For_DGV()
    End Sub
    Friend Sub SQL_倉儲入庫_採購明細()
        ConnOpen()
        If 入庫選擇1 = False And 入庫選擇2 = False Then
            SQL2 = " WHERE (採購控制表.已審核 = 1) AND (採購控制表.已入庫 = 0) AND (採購控制表.銷售單號 LIKE '" & PA & "') "
        ElseIf 入庫選擇1 = True And 入庫選擇2 = False Then
            SQL2 = " WHERE (採購控制表.已審核 = 1) AND (採購控制表.已入庫 = 0) AND (採購控制表.供商編號 LIKE '" & PA & "') "
        ElseIf 入庫選擇1 = False And 入庫選擇2 = True Then
            SQL2 = " WHERE (採購控制表.已審核 = 1) AND (採購控制表.已入庫 = 0) AND (採購控制表.預計進廠日 LIKE '" & DTP1 & "') "
        End If
        SQL1 = "SELECT      採購控制表.資料流水號, 採購控制表.銷售單號, 採購控制表.供商編號, 供應商資料表.簡稱 AS 供應商, 
                            採購控制表.料號, 物料資料庫.品名, 採購控制表.倉儲狀態, 倉儲分區控制表.倉名, 採購控制表.訂製狀態, 
                            物料訂製狀態.訂製, 採購控制表.物料狀態, 倉儲狀態.狀態, 採購控制表.備註, 採購控制表.訂製圖號, 採購控制表.數量, 
                            採購控制表.成本, 採購控制表.採購總價 AS 金額, 採購控制表.申請人, 採購控制表.申請日期, 採購控制表.採購日期, 
                            採購控制表.預計進廠日, 採購控制表.實際進廠日, 採購控制表.已入庫, 採購控制表.已審核, 倉儲分區控制表.倉級
                FROM        採購控制表 INNER JOIN
                            供應商資料表 ON 採購控制表.供商編號 = 供應商資料表.編號 INNER JOIN
                            物料資料庫 ON 採購控制表.料號 = 物料資料庫.料號 INNER JOIN
                            倉儲狀態 ON 採購控制表.物料狀態 = 倉儲狀態.編碼 INNER JOIN
                            物料訂製狀態 ON 採購控制表.訂製狀態 = 物料訂製狀態.編碼 INNER JOIN
                            倉儲分區控制表 ON 採購控制表.倉儲狀態 = 倉儲分區控制表.倉名編號
                " & SQL2 & "
                ORDER BY    採購控制表.供商編號, 採購控制表.料號"
        CmdSet_For_DGV()
    End Sub
    Friend Sub SQL_倉儲明細表_倉儲入庫()
        ConnOpen()
        SQL1 = "INSERT INTO 倉儲明細表 (資料流水號, 執行單號, 倉級, 倉名編號, 料號, 入庫, 出庫, 備註, 狀態, 採購單號, 申請人, 申請日期, 審核人, 審核日期, 倉庫作業, 作業日期, 物料狀態, 訂製狀態, 採購流水) 
                VALUES (N'" & PA3 & "',N'" & PA4 & "',N'" & PA5 & "',N'" & PA6 & "',N'" & PA2 & "', N'" & NU1 & "',N'" & NU2 & "', N'" & PA1 & "', N'採購入庫', N'" & PA & "', N'" & PA9 & "', 
                        N'" & DTP & "', N'" & PA9 & "', N'" & DTP & "', N'" & PA9 & "', N'" & DTP & "', N'" & PA7 & "', N'" & PA8 & "', N'" & PA10 & "')"
        CmdSet_For_dr()
    End Sub
    Friend Sub SQL_倉儲入庫_採購控制表修改()
        ConnOpen()
        SQL1 = "UPDATE 採購控制表 SET 實際進廠日 = N'" & DTP & "', 已入庫 = 1 WHERE (資料流水號 LIKE N'" & PA10 & "')"
        CmdSet_For_dr()
    End Sub
    '---------------------倉儲出庫-----------------------------------------------------------------------------------------------------------------
    Friend Sub SQL_倉儲出庫_訂單控制表()
        ConnOpen()
        SQL1 = "SELECT      銷售控制表.流水號, 銷售控制表.單號, 客戶資料表.名稱, 銷售控制表.開單日期, 銷售控制表.交貨日期, 
                            銷售控制表.含稅, 銷售控制表.單位主管, 銷售控制表.審核日期, 銷售收款事項.內容, 銷售收款事項.金額, 
                            銷售控制表.送貨地點, 銷售控制表.運費, 銷售控制表.客戶編號, 銷售控制表.轉採購 AS 轉採, QQ.已審核 AS 已採, QQ.已審核 AS 入庫
                FROM        銷售控制表 INNER JOIN
                            客戶資料表 ON 銷售控制表.客戶編號 = 客戶資料表.舊編 LEFT OUTER JOIN
                                (SELECT      銷售單號, 已入庫, 已審核
                                 FROM        採購控制表
                                 WHERE      (銷售單號 NOT LIKE '')
                                 GROUP BY    銷售單號, 已入庫, 已審核) AS QQ ON 銷售控制表.單號 = QQ.銷售單號 LEFT OUTER JOIN
                            銷售收款事項 ON 銷售控制表.單號 = 銷售收款事項.單號
                WHERE      (銷售控制表.單號 LIKE '" & PA19 & "%') AND (客戶資料表.名稱 LIKE N'%" & PA20 & "%') AND ( 單位主管 NOT LIKE '作廢%') AND ( 單位主管 NOT LIKE '') AND
                           (銷售控制表.已出貨 IS NULL OR 銷售控制表.已出貨 = 0) AND (銷售收款事項.內容 LIKE '未收餘額')
                GROUP BY   銷售控制表.流水號, 銷售控制表.單號, 客戶資料表.名稱, 銷售控制表.開單日期, 銷售控制表.交貨日期, 
                           銷售控制表.含稅, 銷售控制表.單位主管, 銷售控制表.審核日期, 銷售收款事項.內容, 銷售收款事項.金額, 
                           銷售控制表.送貨地點, 銷售控制表.運費, 銷售控制表.客戶編號, 銷售控制表.轉採購, QQ.已審核, QQ.已審核
                ORDER BY   CHARINDEX(LEFT(銷售控制表.單號, 1), '123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'), 銷售控制表.單號 DESC"
        CmdSet_For_DGV()
    End Sub
    Friend Sub SQL_倉儲出庫_銷售庫存比對表()
        ConnOpen()
        SQL1 = "SELECT      銷售明細表.資料流水號, 銷售明細表.資料流水號 AS 項次, 銷售明細表.料號, 物料資料庫.品名, 倉儲分區控制表.倉名, 
                            物料訂製狀態.訂製, 倉儲狀態.狀態, 銷售明細表.備註, 銷售明細表.數量, 銷售明細表.成本, 銷售明細表.售價 AS 單價, 
                            銷售明細表.含稅, 銷售明細表.售價, 銷售明細表.狀態 AS 倉儲情況, 倉儲明細表_1.資料流水號 AS 倉儲流水號, 
                            銷售明細表.倉儲狀態, 銷售明細表.訂製狀態, 銷售明細表.物料狀態, QQQ.庫存 AS 有單庫存, QQQ.採購流水, 
                            WWW.庫存 AS 無單庫存, WWW.庫存, 銷售明細表.已出貨 AS 準備出貨, 倉儲分區控制表.倉級
                FROM       (SELECT      倉儲明細表_2.料號, SUM(倉儲明細表_2.入庫) - SUM(倉儲明細表_2.出庫) AS 庫存, 
                                        倉儲明細表_2.物料狀態, 倉儲明細表_2.訂製狀態, 倉儲明細表_2.倉名編號, 銷售明細表_1.資料流水號, 
                                        倉儲明細表_2.採購流水
                            FROM        銷售明細表 AS 銷售明細表_1 RIGHT OUTER JOIN 採購控制表 AS 採購控制表_2 ON 
                                        銷售明細表_1.資料流水號 = 採購控制表_2.銷售流水 RIGHT OUTER JOIN
                                        倉儲明細表 AS 倉儲明細表_2 ON 採購控制表_2.資料流水號 = 倉儲明細表_2.採購流水
                            WHERE      (倉儲明細表_2.倉庫作業 NOT LIKE '作廢%') OR (倉儲明細表_2.倉庫作業 NOT LIKE '')
                            GROUP BY    倉儲明細表_2.料號, 倉儲明細表_2.倉名編號, 倉儲明細表_2.物料狀態, 倉儲明細表_2.訂製狀態, 
                                        銷售明細表_1.資料流水號, 倉儲明細表_2.採購流水) AS QQQ RIGHT OUTER JOIN
                            銷售明細表 LEFT OUTER JOIN
                            倉儲分區控制表 ON 銷售明細表.倉儲狀態 = 倉儲分區控制表.倉名編號 LEFT OUTER JOIN
                            倉儲狀態 ON 銷售明細表.物料狀態 = 倉儲狀態.編碼 ON QQQ.料號 = 銷售明細表.料號 AND 
                            QQQ.物料狀態 = 銷售明細表.物料狀態 AND QQQ.訂製狀態 = 銷售明細表.訂製狀態 AND 
                            QQQ.倉名編號 = 銷售明細表.倉儲狀態 AND QQQ.資料流水號 = 銷售明細表.資料流水號 LEFT OUTER JOIN
                            倉儲明細表 AS 倉儲明細表_1 RIGHT OUTER JOIN
                            採購控制表 AS 採購控制表_1 ON 倉儲明細表_1.採購單號 = 採購控制表_1.銷售單號 AND 
                            倉儲明細表_1.料號 = 採購控制表_1.料號 AND 倉儲明細表_1.採購流水 = 採購控制表_1.資料流水號 ON 
                            銷售明細表.料號 = 採購控制表_1.料號 AND 銷售明細表.單號 = 採購控制表_1.銷售單號 AND 
                            銷售明細表.資料流水號 = 採購控制表_1.銷售流水 LEFT OUTER JOIN
                           (SELECT      倉儲明細表_2.料號, SUM(倉儲明細表_2.入庫) - SUM(倉儲明細表_2.出庫) AS 庫存, 
                                        倉儲明細表_2.物料狀態, 倉儲明細表_2.訂製狀態, 倉儲明細表_2.倉名編號
                            FROM        銷售明細表 AS 銷售明細表_1 RIGHT OUTER JOIN 採購控制表 AS 採購控制表_2 ON 
                                        銷售明細表_1.資料流水號 = 採購控制表_2.銷售流水 RIGHT OUTER JOIN
                                        倉儲明細表 AS 倉儲明細表_2 ON 採購控制表_2.資料流水號 = 倉儲明細表_2.採購流水
                            WHERE      (倉儲明細表_2.倉庫作業 NOT LIKE '作廢%') OR (倉儲明細表_2.倉庫作業 NOT LIKE '')
                            GROUP BY    倉儲明細表_2.料號, 倉儲明細表_2.倉名編號, 倉儲明細表_2.物料狀態, 倉儲明細表_2.訂製狀態) 
                            AS WWW ON 銷售明細表.料號 = WWW.料號 AND 銷售明細表.訂製狀態 = WWW.訂製狀態 AND 
                            銷售明細表.物料狀態 = WWW.物料狀態 AND 銷售明細表.倉儲狀態 = WWW.倉名編號 LEFT OUTER JOIN
                            物料訂製狀態 ON 銷售明細表.訂製狀態 = 物料訂製狀態.編碼 LEFT OUTER JOIN
                            物料資料庫 ON 銷售明細表.料號 = 物料資料庫.料號
                WHERE      (銷售明細表.單號 LIKE '" & PA2 & "') AND (銷售明細表.料號 NOT LIKE '1001%') AND (銷售明細表.已出貨 IS NULL OR
                            銷售明細表.已出貨 = 0)
                ORDER BY    銷售明細表.排序 DESC, 銷售明細表.料號"
        CmdSet_For_DGV()
    End Sub
    Friend Sub SQL_銷售明細表_已出貨明細修正()
        ConnOpen() : SQL1 = "UPDATE 銷售明細表 SET 已出貨 = 0 WHERE (已出貨 IS NULL)" : CmdSet_For_dr()
    End Sub
    Friend Sub SQL_倉儲明細表_倉儲出庫()
        ConnOpen()
        SQL1 = "INSERT INTO 倉儲明細表 (資料流水號, 執行單號, 倉級, 倉名編號, 料號, 入庫, 出庫, 備註, 狀態, 採購單號, 申請人, 申請日期, 審核人, 審核日期, 倉庫作業, 作業日期, 物料狀態, 訂製狀態, 採購流水) 
                VALUES (N'" & PA3 & "',N'" & PA4 & "',N'" & PA5 & "',N'" & PA6 & "',N'" & PA2 & "', N'" & NU1 & "',N'" & NU2 & "', N'" & PA1 & "', N'銷售出庫', N'" & PA & "', N'" & PA9 & "', 
                        N'" & DTP & "', N'" & PA9 & "', N'" & DTP & "', N'" & PA9 & "', N'" & DTP & "', N'" & PA7 & "', N'" & PA8 & "', N'" & PA10 & "')"
        CmdSet_For_dr()
    End Sub
    Friend Sub SQL_倉儲出庫_自動盤盈()
        ConnOpen()
        SQL1 = "INSERT INTO 倉儲明細表 (資料流水號, 執行單號, 倉級, 倉名編號, 料號, 入庫, 出庫, 備註, 狀態, 採購單號, 申請人, 申請日期, 審核人, 審核日期, 倉庫作業, 作業日期, 物料狀態, 訂製狀態) 
                VALUES (N'" & PA3 & "',N'" & PA4 & "',N'" & PA5 & "',N'" & PA6 & "',N'" & PA2 & "',N'" & NU1 & "',N'" & NU2 & "', N'" & PA1 & "', N'盤盈入庫', N'" & PA & "', N'" & PA9 & "', 
                        N'" & DTP & "', N'" & PA9 & "', N'" & DTP & "', N'" & PA9 & "', N'" & DTP & "', N'" & PA7 & "', N'" & PA8 & "')"
        CmdSet_For_dr()
    End Sub
    Friend Sub SQL_倉儲調整()
        ConnOpen()
        SQL1 = "INSERT INTO 倉儲明細表 (資料流水號, 執行單號, 倉級, 倉名編號, 料號, 入庫, 出庫, 備註, 狀態, 採購單號, 申請人, 申請日期, 審核人, 審核日期, 倉庫作業, 作業日期, 物料狀態, 訂製狀態) 
                VALUES (N'" & PA3 & "',N'" & PA4 & "',N'" & PA5 & "',N'" & PA6 & "',N'" & PA2 & "',N'" & NU1 & "',N'" & NU2 & "', N'" & PA1 & "', N'" & PA10 & "', N'" & PA & "', N'" & PA9 & "', 
                        N'" & DTP & "', N'" & PA9 & "', N'" & DTP & "', N'" & PA9 & "', N'" & DTP & "', N'" & PA7 & "', N'" & PA8 & "')"
        CmdSet_For_dr()
    End Sub
    Friend Sub SQL_倉儲入庫_銷售明細表修改()
        ConnOpen()
        SQL1 = "UPDATE 銷售明細表 SET 已出貨 = 1 WHERE (資料流水號 LIKE N'" & PA11 & "')"
        CmdSet_For_dr()
    End Sub
    Friend Sub SQL_倉儲入庫_銷售控制表修改()
        ConnOpen() : SQL1 = "UPDATE 銷售控制表 SET 已出貨 = 1 WHERE (單號 LIKE N'" & PA & "')" : CmdSet_For_dr()
    End Sub
    '---------------------單據狀態查詢-----------------------------------------------------------------------------------------------------------------
    Friend Sub SQL_單據狀態查詢_銷售控制表()
        ConnOpen()
        SQL1 = "SELECT      銷售控制表.流水號, 銷售控制表.單號, 客戶資料表.名稱, 銷售控制表.開單日期, 銷售控制表.交貨日期 AS 預計交貨, 
                            銷售控制表.單位主管 AS 銷售審核, 銷售控制表.轉採購, QQ.已入庫, 銷售控制表.已出貨, 
                            銷售控制表.單位主管 AS 單據狀態, 銷售控制表.已驗證
                FROM        銷售控制表 LEFT OUTER JOIN
                                (SELECT          銷售單號, 已入庫
                                 FROM               採購控制表
                                 GROUP BY    銷售單號, 已入庫) AS QQ ON 銷售控制表.單號 = QQ.銷售單號 LEFT OUTER JOIN
                            客戶資料表 ON 銷售控制表.客戶編號 = 客戶資料表.舊編
                WHERE      (銷售控制表.單號 LIKE '" & PA19 & "%') AND (銷售控制表.單位主管 NOT LIKE '作廢%')
                ORDER BY   銷售控制表.單號 DESC"
        CmdSet_For_DGV()
    End Sub
    Friend Sub SQL_單據狀態查詢_銷售明細表()
        ConnOpen()
        SQL1 = "SELECT      銷售明細表.資料流水號, 銷售明細表.資料流水號 AS 項次, 銷售明細表.料號, 物料資料庫.品名, 倉儲分區控制表.倉名, 
                            物料訂製狀態.訂製, 倉儲狀態.狀態, 銷售明細表.備註, 銷售明細表.數量, 銷售明細表.成本, 銷售明細表.售價 AS 單價, 
                            銷售明細表.含稅, 銷售明細表.售價, 銷售明細表.狀態 AS 倉儲情況, 銷售明細表.倉儲狀態, 銷售明細表.訂製狀態, 
                            銷售明細表.物料狀態, 銷售明細表.已出貨, 銷售控制表.審核日期, 銷售控制表.交貨日期
                FROM        銷售明細表 INNER JOIN
                            倉儲狀態 ON 銷售明細表.物料狀態 = 倉儲狀態.編碼 INNER JOIN
                            倉儲分區控制表 ON 銷售明細表.倉儲狀態 = 倉儲分區控制表.倉名編號 LEFT OUTER JOIN
                            銷售控制表 ON 銷售明細表.單號 = 銷售控制表.單號 LEFT OUTER JOIN
                            採購控制表 ON 銷售明細表.資料流水號 = 採購控制表.銷售流水 LEFT OUTER JOIN
                            倉儲明細表 ON 採購控制表.資料流水號 = 倉儲明細表.採購流水 LEFT OUTER JOIN
                            物料訂製狀態 ON 銷售明細表.訂製狀態 = 物料訂製狀態.編碼 LEFT OUTER JOIN
                            物料資料庫 ON 銷售明細表.料號 = 物料資料庫.料號
                WHERE      (銷售明細表.單號 LIKE '" & PA2 & "')
                GROUP BY    銷售明細表.資料流水號, 銷售明細表.料號, 物料資料庫.品名, 倉儲分區控制表.倉名, 物料訂製狀態.訂製, 
                            倉儲狀態.狀態, 銷售明細表.備註, 銷售明細表.數量, 銷售明細表.成本, 銷售明細表.售價, 銷售明細表.含稅, 
                            銷售明細表.售價, 銷售明細表.狀態, 銷售明細表.倉儲狀態, 銷售明細表.訂製狀態, 銷售明細表.物料狀態, 
                            銷售明細表.已出貨, 銷售控制表.審核日期, 銷售控制表.交貨日期
                ORDER BY    銷售明細表.資料流水號 DESC, 銷售明細表.料號"
        CmdSet_For_DGV()
    End Sub
    Friend Sub SQL_單據狀態查詢_採購控制表()
        ConnOpen()
        SQL1 = "SELECT      採購控制表.資料流水號, 採購控制表.銷售單號, 採購控制表.供商編號, 供應商資料表.簡稱 AS 供應商, 採購控制表.料號, 物料資料庫.品名, 採購控制表.倉儲狀態, 
                            倉儲分區控制表.倉名 AS 倉名, 採購控制表.訂製狀態, 物料訂製狀態.訂製, 採購控制表.物料狀態, 倉儲狀態.狀態 AS 狀態, 採購控制表.備註, 
                            採購控制表.訂製圖號, 採購控制表.數量, 採購控制表.成本, 採購控制表.採購總價 AS 金額, 採購控制表.申請人, 採購控制表.申請日期, 採購控制表.採購日期, 採購控制表.預計進廠日, 
                            採購控制表.已審核, 採購控制表.已入庫, 採購控制表.實際進廠日
                FROM        採購控制表 INNER JOIN 供應商資料表 ON 採購控制表.供商編號 = 供應商資料表.編號 INNER JOIN 物料資料庫 ON 採購控制表.料號 = 物料資料庫.料號 INNER JOIN 倉儲狀態 ON 
                            採購控制表.物料狀態 = 倉儲狀態.編碼 INNER JOIN 物料訂製狀態 ON 採購控制表.訂製狀態 = 物料訂製狀態.編碼 INNER JOIN 倉儲分區控制表 ON 採購控制表.倉儲狀態 = 
                            倉儲分區控制表.倉名編號
                WHERE      (採購控制表.銷售單號  LIKE '" & PA2 & "')
                ORDER BY    採購控制表.供商編號, 採購控制表.料號"
        CmdSet_For_DGV()
    End Sub
    Friend Sub SQL_單據狀態查詢_倉儲明細()
        ConnOpen()
        SQL1 = "SELECT      倉儲明細表.執行單號 AS 執行號, 倉儲明細表.採購單號 AS 單號, 倉儲明細表.料號, 物料資料庫.品名, 
                            倉儲分區控制表.倉名, 物料訂製狀態.訂製, 倉儲狀態.狀態, 倉儲明細表.備註, 倉儲明細表.狀態 AS 倉儲狀態, 倉儲明細表.入庫, 
                            倉儲明細表.出庫, 倉儲明細表.作業日期, 倉儲明細表.資料流水號
                FROM        倉儲明細表 INNER JOIN
                            物料訂製狀態 ON 倉儲明細表.訂製狀態 = 物料訂製狀態.編碼 INNER JOIN
                            倉儲狀態 ON 倉儲明細表.物料狀態 = 倉儲狀態.編碼 INNER JOIN
                            倉儲分區控制表 ON 倉儲明細表.倉名編號 = 倉儲分區控制表.倉名編號 INNER JOIN
                            物料資料庫 ON 倉儲明細表.料號 = 物料資料庫.料號
                WHERE      (倉儲明細表.採購單號 LIKE '" & PA2 & "')"
        CmdSet_For_DGV()
    End Sub
End Module
