作者 主題: [問題]編號得取得問題  (閱讀 3400 次)

0 會員 與 1 訪客 正在閱讀本文。

ektron

  • 鑽研的研究生
  • *****
  • 文章數: 502
    • 檢視個人資料
[問題]編號得取得問題
« 於: 2004-03-10 22:33 »
我用access設計一個表單來讓使用者記錄維修資料,裡面的資料表是透過odbc來連sqlserver的資料表,當中有個欄位為編號的欄位,我想讓編號的產生方式為日期加上流水號(我已在討論區的文章找到相關例子了),只不過出現兩個問題,一就是當我開啟access的時候,沒錯編號會按我設計的規則:日期+流水號來編號,可是當我把表單給關閉後,再開啟表單時它又再重頭開始編號了 二就是因為這個表單是在user端建立的,a使用者新增一筆時,編號即建立為20040310001,只不過b使用者可能等一下也隨即建立一筆資料,可是它並不會說判斷20040310001這個編號有人用了,它不會往後累加上去,我該如何解決這兩個問題呢?(我現在的想法是能不能把編號的取的方式寫在server端,當使用者新增一筆時儲存後才給予一個編號,只不過這個動作我不知道要怎麼寫,是寫在storeprocedure嗎?),謝謝

Pail

  • 俺是博士!
  • *****
  • 文章數: 1040
  • 性別: 男
    • 檢視個人資料
[問題]編號得取得問題
« 回覆 #1 於: 2004-03-11 10:47 »
把 流水號 記在其它的地方, 每日 歸零重數.
新增資料時, 取出該值, 並+1 處理後, 放回去....
時間....抓系統的就行........
Pail Luo.
Email: pail.luo@gmail.com

ektron

  • 鑽研的研究生
  • *****
  • 文章數: 502
    • 檢視個人資料
[問題]編號得取得問題
« 回覆 #2 於: 2004-03-11 12:31 »
把 流水號 記在其它的地方, 每日 歸零重數.
是記在那呢?sqlserver端嗎?那是要寫storeprocedure嗎?

新增資料時, 取出該值, 並+1 處理後, 放回去....
時間....抓系統的就行........
如何來抓系統的時間呢?

謝謝

Pail

  • 俺是博士!
  • *****
  • 文章數: 1040
  • 性別: 男
    • 檢視個人資料
[問題]編號得取得問題
« 回覆 #3 於: 2004-03-12 11:21 »
記在哪?
隨便呀~ 最簡單的, 再開一張table, 就這麼一筆資料, 記錄 流水號.

系統時間...
1. 程式抓系統時間.
2. 查查 access 的 function, 應該可直接要出時間, 只是可能格式不對, 要處理一下?
Pail Luo.
Email: pail.luo@gmail.com

chaofu

  • 可愛的小學生
  • *
  • 文章數: 15
    • 檢視個人資料
[問題]編號得取得問題
« 回覆 #4 於: 2004-04-04 21:33 »
最好是儲存時再去產生編號,若用另一TABLE去記錄流水號,可能會有跳號的情況產生!
A : 001 --> 取消 ? 001就跳號了~
B : 002 --> 儲存

建議的作法
儲存的時候,將資料庫中編號的最後一筆取出,拆成兩段!
日期與系統日期比對,若相同,則將流水號累加1!
若不相同,則流水號為001~

系統日期可用SELECT查詢~
MS SQL 是用 select GETDATE()