• ベストアンサー

アクセスのオートナンバーを拡張?したいのですが

アクセスのオートナンバー機能というのは1,2,3...しか順番がつけられないと思うのですがもう少し拡張した?使い方をしたいのです。例えば、ID項目をID=2x(xは自然数)のような関数定義はできないのでしょうか?そうすれば2,4,6,8...と偶数だけが入りますよね?こういった感じで単純に1,2,3ではなくユーザーの定義に基づいて自動的に項目に入れていってくれるような方法はないでしょうか?

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

  • ベストアンサー
  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.1

オートナンバー型フィールドの値に計算式は、使用できないと思います。 フォームからデータ入力するのであれば、代換策として数値型フィールドに 順に偶数だけを自動的に設定することは、出来ると思います。 例えば、フォームのレコード移動時イベントに次のように記述します。 [番号]が「数値型フィールド」とします。 Private Sub Form_Current() '数値型用 If Me.NewRecord = False Then Exit Sub Dim maxno As Variant maxno = DMax("[番号]", "テーブル1") If IsNull(maxno) Then   Me.番号.DefaultValue = 2 Else   Me.番号.DefaultValue = maxno + 2 End If End Sub クエリーの場合は、DMax関数を使うといいと思います。

shitake
質問者

お礼

ありがとうございました。お陰様で何とかなりました。

その他の回答 (1)

noname#7099
noname#7099
回答No.2

レコード追加時にオートナンバーのフィールドに数字を代入することができます。同一数字のレコードがなければ保存できます。 オートナンバーで出てくる次の番号は今までに使ったことのある最大の番号+1の数字です。 オートナンバーの項目はそのままにしておいて、別のフィールドにオートナンバーのフィールド×2を代入してはどうですか?

shitake
質問者

お礼

ありがとうございました。こちらの方がNo1さんの方法より簡単に実現できますね。変にフィールドを追加したくなくオートナンバーフィルールドはそれだけのために使いたくなかったので今回はNo1さんの方法で実現しました。

関連するQ&A