• ベストアンサー

アクセスでのオートNOのつけかた

アクセスで請求書の管理システムをつくっています。担当者ごとに、請求書NOをどうしてもふらないといけません。 新規の請求書レコードを作成するたびに、各担当者IDごとにその最終値+1の数字になるよにできないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.2

フォームでの新規レコードの入力時に、その担当者のIDでの請求書Noの最終値+1を 新規レコードの請求書Noにしたい、ということでしょうか。 でしたら、フォームの挿入前イベント(BeforeUpdate)辺りで処理するのがよいかと思います。 Private Sub Form_BeforeUpdate() 請求No=DMax("[請求No]","請求書テーブル","[担当者ID]=[Forms]![請求書フォーム]![入力者ID]") 'その担当者によって初めて請求書が出される(→DMax関数でNullを返される)場合に対応 IF IsNull(請求書No)=True Then 請求書ID=1 End Sub ヘッダに「入力者ID」(→記録される値は担当者IDと同じ)というコントロールがある、 という想定です。 これで、フォーム上の請求書Noを使用不可(Enabled=False)か編集ロックをかける (Locked=True)かすれば、入力者が間違った請求書Noを入力することも防げます。

momogai
質問者

お礼

おそくなってしまいましたが、回答、ありがとうございました!

その他の回答 (1)

noname#182251
noname#182251
回答No.1

下記のSQL文で担当者ごとの最終値がでます SELECT テーブル1.担当者ID, Max(テーブル1.請求書No) AS 請求書Noの最大 FROM テーブル1 GROUP BY テーブル1.担当者ID; こういうことではないのでしょうか?

momogai
質問者

お礼

おそくなりましたが、回答、ありがとうございました!

関連するQ&A