程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Access數據庫 >> 關於Access數據庫 >> Access新手來看:編號的生成問題

Access新手來看:編號的生成問題

編輯:關於Access數據庫

問題:

我跟你說說我這邊的情況吧。似乎工號03-0756-004-1JF,表示:03表示03年生產,0756是合同號,004表示對方單位的編號,1表示合同的第幾項,JF是表示車間。你說這樣的工號會不會很煩?

回答:

我只能說,你在設計數據結構的時候就已經錯誤了。

很多程序員認為“編號”是一個字段,在計算機中這的確是正確的,但是,在計算機中,編號是沒有含義的,沒有語法、沒有組合、沒有任何意義,僅表示記錄的唯一標識。而實際生產中,編號往往包含很多意義(除非你使用數據庫查詢系統來治理隨機編號)。因此就像你說的,編號的每個部分都有含義。所以,應該以每個部分為最小單位來建立數據庫結構。簡單的說,就是生產日期、合同號、對方單位編號、車間分幾個字段存儲,這也可以說是“原子性”擴展。其實SQL不僅僅可以查詢數據,還可以組織數據,比如
select日期&合同號&單位號&車間as編號,全名from產品表

問題:

但很慘的是:錄入員已經習慣很連續地錄入03-0456-002-4JF這樣的工號了,叫他們分開來錄入,恐怕很麻煩。

回答:

你可以在保存按鈕上寫點代碼切分數據,即使連續窗體也可以在BEFOREUPDATE事件裡面寫代碼。代碼可以類似:
SubSplitString()
DimstrA()AsString
strA()=Split(Me.TextBoxA,"-")
DimiAsInteger
Fori=0ToUBound(strA)
Debug.PrintstrA(i)
Me("TextBox"&i).value=strA(i)
Next
EndSub

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved