返回列表 上一主題 發帖

出貨單建立

回復 9# cclo0728
前輩很有想法
後學請教前輩
1.出貨資料表是用來列印?列印完就刪除
2.還是累積到隔天才刪除?
3.或者是當天多次累積後列印?
4.還是其它情境?

5.資料輸入會一直累積資料?
6.還是資料輸入匯至出貨資料後就刪除?
7.還是累積資料給其他人員看而已

因為這些疑問會影響此樓的情境
例如:
資料輸入表只是純粹輸入介面表?還是資料庫?

TOP

回復 11# Andy2483
感謝耐心看完
5.資料輸入會一直累積資料?
7.還是累積資料給其他人員看而已
因親人想在出貨這塊建立資料,以利後續查詢當時報價與相關資訊
所以會建立出貨明細,以利後續相關其他員工觀看
所以,會想要建立流水號串查當天出貨資訊

TOP

本帖最後由 Andy2483 於 2022-10-8 16:13 編輯

回復 12# cclo0728


    謝謝前輩再回覆
範例請試試看
[B2].滑鼠快按兩下開始!就會有提示
今天習得資料庫建立
練習陣列與字典
test_1_20221008_3.zip (38.02 KB)

資料輸入:


出貨資料:


資料庫:

TOP

本帖最後由 Andy2483 於 2022-10-9 11:35 編輯

回復 12# cclo0728
建議前輩公用的資料庫獨立出來
1.可以設計個excel檔做為界面,各依各的使用者身份及密碼按鈕程序開起資料輸入檔或不必密碼只唯讀開啟資料庫來使用
1.1.開啟後界面即關閉
1.2.界面檔可以多人唯讀開啟且不能另存,即使把界面檔要複製到其它地方也不能使用,方便於管理,且程式可以邊上線使用邊修改程式碼
1.3.資料輸入檔與資料庫檔是獨立的,也都讓使用者按界面檔,按按鈕唯讀開啟,且都具備使用者使用中時,程式開發員修改程式碼的效果,方便更新程式版本
1.4.可以記錄誰使用了檔案存入新的出貨資料
........

Excel vb很好用!前輩很有想法!
後學經驗分享,僅供前輩參考!

TOP

回復 14# Andy2483

感謝幫忙,讓我吸收一下,有些要思考一下你寫的邏輯
謝謝,看不懂地方在發問

TOP

回復 13# Andy2483


    謝謝前輩再回覆
後學把 搜尋資料庫決定單號複習並註解了一下!
後學也是藉由這一主題學到變數的宣告將字串與數字做變換
謝謝前輩發表此主題與範例
以下心得供前輩參考

Sub 搜尋資料庫決定單號()

'↓數字與字串可以由一開始的宣告就決定這變數是字串或數字!
Dim Arr, T, xA, xB, xC, N, Mx&, D1$, O1$, D2&, O2&, M1$, M2&
'↑宣告變數

Set xA = Sheets("資料輸入")
'↑令xA是 "資料輸入" 工作表

Set xB = Sheets("出貨資料")
'↑令xB是 "出貨資料" 工作表

Set xC = Sheets("資料庫")
'↑令xA是 "資料庫" 工作表

If xB.Cells(Rows.Count, "B").End(3).Row > 1 Then
'↑如果 "出貨資料" 最後一列列數大於1 !

   xB.Activate
   '↑畫面就跳到 "出貨資料" 工作表
   
   MsgBox "舊的出貨資料未處理!"
   Exit Sub
   '↑出現提示!結束程式!
   
End If
O1 = xA.[B2]: O2 = O1
'↑令O1這變數是 "資料輸入" 工作表.[B2] 字串
'↑令O2這變數是 O1變數轉整數


M1 = xC.Cells(Rows.Count, "B").End(3)
'↑令M1這變數是 "資料庫" 工作表.B欄最後那儲存格 字串

M2 = M1
'↑令M2這變數是 M1變數轉整數

D1 = Format(Date, "yymmdd")
'↑令D1是今天日期組成的字串例如22/10/11 轉成 "221011"

D2 = D1 & "001"
'↑令D2是 組成今日第一筆出貨單的序號(數字)

If InStr(M1, D1) Then
'↑如果M1字串有包含D1字串

   xA.[B2] = M2 + 1
   '↑條件若成立!代表 "資料庫" 工作表已經有今天的序號
   '↑M2是數字就+1 填到 "資料輸入" 工作表的.[B2]

   
   xA.[B2].Interior.ColorIndex = xlNone
   '↑令 "資料輸入" 工作表的.[B2]底色無色
   
   xA.[B2].Font.ColorIndex = 1
   '↑令 "資料輸入" 工作表的.[B2]字色是黑色
   
   Else
      xA.[B2] = D2
      '↑否則代表今天還沒有存入今天的出貨單
      '↑"資料輸入" 工作表的.[B2] 就讓他是今天的第一筆序號D2

      
      xA.[B2].Interior.ColorIndex = xlNone
      '↑令 "資料輸入" 工作表的.[B2]底色無色
      
      xA.[B2].Font.ColorIndex = 1
      '↑令 "資料輸入" 工作表的.[B2]字色是黑色
      
End If
End Sub

TOP

回復 15# cclo0728


    後學的範例邏輯如下
1.想要自動判斷[B2]序號的流水號!必須先將出貨資料表資料存到資料庫並清空出貨資料表資料
2.判讀資料庫最後一筆的序號才給予[B2]新的序號
3.如果按刪除出貨資料_帶入新資料鈕!不管出貨資料表是不是已清空!都會詢問是不是真的要刪除舊的出貨資料
4.出貨資料表可以再做編輯後才連同格式複製到資料庫!出貨資料表可以做這部分的緩衝!
5.資料存入資料庫後要記得存檔!當然前輩也可以讓資料移到資料庫就存檔!

以下是 存入資料庫 程式碼的心得供參考!

Sub 存入資料庫()
Dim Arr, T, xB, xC
Dim CH
'↑宣告變數

Set xB = Sheets("出貨資料").[A1].CurrentRegion.Offset(1, 0).EntireRow
'↑令xB是 "出貨資料" 工作表有使用的列範圍往下偏移1列的範圍
'就是不包含第一列的意思


Set xC = Sheets("資料庫")
'↑令xC是 "資料庫" 工作表

T = xC.Cells(Rows.Count, "B").End(3).Row + 1
'↑令T是 "資料庫" 工作表的第1 個空白列

xB.Copy xC.Cells(T, "A")
'↑將"出貨資料" 工作表的資料複製到"資料庫" 工作表的第1 個空白列

xB.Delete xlUp
'↑將"出貨資料" 工作表的資料刪除

MsgBox "記得要存檔!"
End Sub

TOP

回復 16# Andy2483
我這邊的流程想法,是想要資料輸入完成後,複製到出貨資料,這時候就存檔或列印出貨單

請問我想要直接出貨資料就當資料庫呢?
再輸入客戶時,按鈕產生下一筆流水號(或者說資料輸入完成後,複製到出貨資料時,經由程式給予流水號建立至出貨資料內)
嘗試著修改程式,但好像會卡在流水號判定這邊

TOP

回復 18# cclo0728
謝謝前輩回覆
後學現在不方便處理!
如果是只有新序號問題,前輩可再試著改看看!後學的範例有註解!
Samwang的範例跟您的需求更貼近,
如果您急著要用,可以以回覆的方式,請samwang前輩幫忙!

後學干擾了兩位前輩的研討!
向兩位道歉!sorry!

TOP

回復 9# cclo0728
這範例有幾個疑問
1.一家廠商一個檔案?還是所有的廠商混合在一起在一個檔案裡?
2.序號是分各廠商累加?還是所有的廠商混合在一起先出先累積序號?

最好是提供更貼近需求情境的範例!

TOP

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