返回列表 上一主題 發帖

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

回復 2# BV7BW


允許重覆, 就刪去, 不檢查即可~~

TOP

回復 4# BV7BW

__第1次是輸入正常訂購.但有時在輸入時會可能產生重複輸入客戶名
每張單號只會有一個客戶名, 怎會有重覆客戶名的問題???
同一客戶會有不同單號, 在出貨明細表當然會有重覆, 這時檢查客戶名是否重覆, 是不正確的(以後的都無法輸入了)!!!
我原來寫的並沒有檢測客戶是否重覆??? 你自己加的吧!!!

若第1次輸入了錯誤的客戶名, 只能在出貨明細表中手動更正了~~~

TOP

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

回復 4# BV7BW

原寫的檔案已被更動, 只能瞎寫, 以下的位址須自行更改~~

Mch = Application.Match(xNum, [訂貨明細表!K:K], 0) '檢查單號是否存在
If IsNumeric(Mch) Then
   Beep '若存在, 發出嗶聲, 並提示是否進行補增???
   If MsgBox("**單號已存在! 你確定要增加本張訂單的出貨明細?  ", 4 + 32 + 256) = vbNo Then Exit Sub '按"否"結束
   [e2] = [訂貨明細表!A:A].Cells(Mch, 1) '按"是", 自動填入"客戶名"
End If

TOP

回復 8# BV7BW

xNum&  ---這定義為長整數
客戶名是文字型態
另定義一個 cName$ 替換

TOP

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

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

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

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

回復 17# BV7BW

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

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

自行去套~~

TOP

回復 19# BV7BW


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

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

TOP

回復 21# BV7BW

現在問題所在是因訂貨明細表中
例)7月1日客戶:陳一, 單號:"1100701001"共輸入10筆項目
   7月1日客戶:陳一臨時追加, 單號:"1100701002"共輸入1筆項目
   7月2日客戶:陳一, 單號:"1100702001"共輸入5筆項目
  


我18樓上的附件, 你可能都沒測試....
7月1日客戶:陳一, 單號:"1100701001"共輸入10筆項目....ok
7月1日客戶:陳一臨時追加, 單號:"1100701002"共輸入1筆項目....不行, 程式會擋掉, 因同一天, 一個客戶只能有一張單子, 不能有兩個單號, 只能輸入1100701001執行修改增加

7月2日客戶:陳一, 單號:"1100702001"共輸入5筆項目....OK, 日期已經不同, 不會視為客戶重覆

TOP

這是新增的部份:
注意:儲存格 N5...會有"待命中/修改中" 狀態, 以判斷你執行的是"新增" 或 "修改
  

Sub 客戶訂購表_修改輸入() '=2021.07.10增修===========
Dim cNo$, xF As Range
If [n5] = "修改中" Then MsgBox "※正在修改作業中,若想進行其他操作,請按〔重置〕! ": Exit Sub
Re_Try:
cNo = InputBox("※請輸入十位數出貨單號,再按確定! ", , cNo)
If StrPtr(cNo) = 0 Then Exit Sub
If Not cNo Like String(10, "#") Then MsgBox "※出貨單號空白或格式錯誤!  ": GoTo Re_Try
Set xF = [訂貨明細表!J:J].Find(cNo, Lookat:=xlWhole)
If xF Is Nothing Then MsgBox "※找不到這筆出貨單號!  ": GoTo Re_Try
Set xF = xF(1, 2 - xF.Column) '將xF定位到A欄
[o2] = cNo '單號
[a2] = xF  '客戶名稱
[A4] = xF(1, 11) '日期
[a8] = xF(1, 13) '採購單號
[n5] = "修改中"  '狀態格
End Sub

TOP

        靜思自在 : 心中常存善解、包容、感思、知足、惜福。
返回列表 上一主題