程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
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事件裡面寫代碼。代碼可以類似:
Sub SplitString()
    Dim strA() As String
    strA() = Split(Me.TextBoxA, "-")
    Dim i As Integer
    For i = 0 To UBound(strA)
        Debug.Print strA(i)
        Me("TextBox" & i).value=strA(i)
    Next
End Sub

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