程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
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