ユビキタス世界までの道の駅

アウトドア派のプログラミング奮闘記

ホーム 連絡をする 同期する ( RSS 2.0 ) Login
投稿数  130  : 記事  0  : コメント  1519  : トラックバック  8

記事カテゴリ

書庫

日記カテゴリ

ギャラリ

姉妹ブログ

誰もがうっとうしいやつですねー。

Access2000なんですが、VBAの処理でやってみまして、

今のところちゃんと連番になっていあるものの、

不安なので、記事にしてみましたw

どんな例外があるか、想定できなかったので、見て指摘していただければと思います。

 

テーブルの構成は

ID:String型

作成日:Date型

連番数:Integer型

業務名:String型

 

クエリは、

作成日を月のフォーマットに直して、

今月より前のレコードのカウントをします。

抽出条件に 

<Format(date(),"yyyy/mm")

として入力

 

あと、フォームの挿入前のプロシージャは以下

Private Sub Form_BeforeInsert(Cancel As Integer)

'変数の宣言
Dim tdy As Date        '今日の日付
Dim nbr As Integer      '総番号数
Dim bNbr As Integer    '前の月の番号数
Dim aNbr As Integer    '付番する番号
 
 '入力日を入れる
 tdy = Date
 Me!作成日 = tdy
 
 '付番の計算
 If DCount("番号", "業務") = 0 Then
 nbr = 1
 Me!番号 = 1
  Else
  '前の月までのデータ数
  bNbr = DCount("業務のカウント", "業務 クエリ")
  nbr = DMax("番号", "業務") + 1
  Me!番号 = nbr

  '付番する番号の計算
  aNbr = nbr - bNbr
 End If
 

  'フォーマットを年号+連番にする「H00-00001」
 Me!ID = Format(tdy, "ge") & "-" & Format(aNbr, "00000")
End Sub

こんな感じでしょうか。

もっとこうした方が良いってのがあれば幸いです^^

投稿日時 : 2007年1月23日 15:45

コメント

# re: IDを「年」+「連番」にしてみたい。 2007/01/24 10:49 Zee
自己レス
このテーブルのレコードは削除処理をしないように別で制限を掛けないといけないので注意。

別の方法でも考えてみるので、後日記事にします。

Post Feedback

タイトル
名前
Url:
コメント: