返回列表 上一主題 發帖

[發問] 如何修訂增列程式

回復 9# 准提部林

准提部林 老師 你好


再經測試後.當"客戶"隔日要輸入時同樣經檢查才能輸入

這造成"客戶"檢查失去意義.

所以現在是須將當日"訂貨明細表"先行建檔後.清空以利隔日輸入

又造成."月結帳"時無法建立資料不便.

因現檢查是以"訂貨明細表"為基準.檢查"客戶"是否有重複動作

是否可用以"訂貨明細表"之"日期"為基準.再去比對"客戶"是否有重複.如有重複.再行"是"或"否"動作

       謝謝指教
敏而好學,不恥下問

TOP

活頁簿1.zip (11.88 KB) 回復 11# BV7BW
敏而好學,不恥下問

TOP

回復  BV7BW
BV7BW 發表於 2021-7-10 03:31


"訂貨明細表"
A欄="客戶"
L欄="日期"
敏而好學,不恥下問

TOP

早就提醒過這是小型的進銷存的需求, 太繁雜...難寫
現在你要的就是[查詢]-[修改]-[存入],
但你檔案已修改太多, 無從下手, 只能寫個簡易的, 不防人為錯誤操作:
出貨作業D版v01_11007.rar (356.64 KB)

1) 使用[修改輸入]按鈕, 輸入舊單號
2) 將要新增的品項輸入數量, 再按[輸出]存入明細表
3) 注意:這無法排除原出貨單中的已有的品項, 亦即只能增加新的, 舊的請在明細表中手動修改
4) 修改新增的, 會填入淡綠色以區別

這種程式寫來頗難, 要考慮的太多, 沒時間及精神去寫~~

TOP

回復 14# 准提部林

准提部林 老師 你好 辛勞你了

謝謝你不持辛勞.為學生費心.非常感謝你

可能是學生想法用意.一時表達不明.而不是程式問題.浪費老師辛勞及精力.拐繞一大圈.注重在單號修改

    實感抱歉
敏而好學,不恥下問

TOP

本帖最後由 准提部林 於 2021-7-10 17:35 編輯

回復 15# BV7BW

NM = [a2] '客戶
DD = [A4] '日期
Mch = Application.Match(CLng(DD), [訂貨明細表!k:k], 0)  '先檢查日期是否存在
If IsNumeric(Mch) Then
    Arr = Range([訂貨明細表!m1], [訂貨明細表!a1].Cells(Rows.Count, 1).End(xlUp))
    For i = Mch To UBound(Arr)
        If Arr(i, 11) <> DD Then Exit For
        If Arr(i, 11) = DD And Arr(i, 1) = NM Then '日期相同+客戶相同
           MsgBox "※日期:" & DD & ",客戶:" & NM & "已經有資料!   ": Exit Sub
        End If
    Next i
End If

這樣就無法將原單叫出來修改增加品項了!!! 亦即同一天同一客戶只能輸入一次資料!
人為錯誤程式大部份無法排除, 一般打單之前一定有手寫草稿,
要養成習慣, 輸入時, 同時將草稿上的客戶名稱或編號用筆圈起來, 這是一個很重要的確認動作,
輸入完成後, 也必須在草稿上寫下"單號", 這樣就可以排除重覆或key錯的問題~~

TOP

回復 16# 准提部林

准提部林 老師 你好
理解2.3天還是不明白.再理解理解
其中有2段不知可融匯一起
xNum = [V2] '單號
cName = [e2] '客戶.....
NM = [E2] '客戶......
DD = [E4] '日期
QQ = [E2] '客戶......原有設定

Mch = Application.Match(CLng(DD), [訂貨明細表!L:L], 0)  '先檢查日期是否存在
If IsNumeric(Mch) Then
     Arr = Range([訂貨明細表!L1], [訂貨明細表!A1].Cells(Rows.Count, 1).End(xlUp))
     For i = Mch To UBound(Arr)
         If Arr(i, 11) <> DD Then Exit For
         If Arr(i, 11) = DD And Arr(i, 1) = NM Then '日期相同+客戶相同(QQ = [E2] '客戶......原有設定)
            MsgBox "※日期:" & DD & ",客戶:" & NM & "已經有資料!   ": Exit
.................................................................................
Beep '若存在, 發出嗶聲, 並提示是否進行補增???
    If MsgBox("**客戶已存在! 你要繼續輸入本張訂單嗎?  ", 4 + 32 + 256) = vbNo Then Exit Sub '按"否"結束
    [e2] = [訂貨明細表!A:A].Cells(Mch, 1) '按"是", 自動填入"客戶名", 加入增補明細~~
....................................................
匯成
xNum = [V2] '單號
cName = [e2] '客戶.....
NM = [E2] '客戶......
DD = [E4] '日期
QQ = [E2] '客戶......原有設定

'程式資料來源至准提部林_出貨作業D版V01_10905
If Not xNum Like String(10, "#") Then MsgBox "**單號錯誤或空白! ": Exit Sub
If Left(xNum, 7) <> Year([E4]) - 1911 & Format([E4], "mmdd") Then MsgBox "**單號前7碼與日期不相符! ": Exit Sub
Mch = Application.Match(xNum, [訂貨明細表!K:K], 0)
If IsNumeric(Mch) Then MsgBox "**單號已存在! ": Exit Sub
Mch = Application.Match(CLng(DD), [訂貨明細表!L:L], 0)  '先檢查日期是否存在
If IsNumeric(Mch) Then
     Arr = Range([訂貨明細表!L1], [訂貨明細表!A1].Cells(Rows.Count, 1).End(xlUp))
     For i = Mch To UBound(Arr)
         If Arr(i, 12) <> DD Then Exit For
         If Arr(i, 12) = DD And Arr QQ = NM Then '日期相同+客戶相同(QQ = [E2] '客戶......原有設定)
            MsgBox "※日期:" & DD & ",客戶:" & NM & "已經有資料!   ": Exit Sub
         End If
     Next i
End If
........
    Beep '若存在, 發出嗶聲, 並提示是否進行補增???
    If MsgBox("**客戶已存在! 你要繼續輸入本張訂單嗎?  ", 4 + 32 + 256) = vbNo Then Exit Sub '按"否"結束
    [e2] = [訂貨明細表!A:A].Cells(Mch, 1) '按"是", 自動填入"客戶名", 加入增補明細~~
End If

.我先理解 .

謝謝 准提部林 老師
敏而好學,不恥下問

TOP

回復 17# BV7BW

同一個按鈕, 無法同時進行"新增/修改"功能, 因為檢查方式不相同~~
出貨作業D版v01_1100713.rar (355.78 KB)

要"新增"--使用"重置"按鈕--狀態"待命中"--開始輸入
要"更改"--使用"修改輸入"按鈕--狀態"修改中"--輸入單號--開始輸入

自行去套~~

TOP

回復 18# 准提部林

准提部林 老師 你好
理解修改多天.還是不明白"頭暈暈"
我再重新整理再提問
謝謝 准提部林 老師
敏而好學,不恥下問

TOP

回復 19# BV7BW


關于"修改輸入"
例如:今天你輸入了一張出貨單, 客戶:陳一, 單號:1100724001, 共輸入10筆項目,
但臨時客戶追加了3種商品,
就可以使用"修改輸入"按鈕, 在inputbox中輸入單號1100724001, 按確定,
即可輸入追加的商品, 按"輸出", 這3筆就會加入明細裡!!!

當然, 增加這功能後, 原程式就有變動, 要自行去比對哪裡需要修改或增加!!!

TOP

        靜思自在 : 口說好話、心想好意、身行好事。
返回列表 上一主題