• ベストアンサー

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

アクセスのオートナンバー機能というのは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

  • Accessのオートナンバー型について

    Accessのオートナンバー型についての質問です。 ある項目をオートナンバー型にしているのですが、 何かの拍子で番号が変化してしまったようです。 たとえば当初は4の番号が7に変わったというようにです。 このようなことはよくあるものなのでしょうか。 これを防ぐ手立てなどありますでしょうか。

  • Accessのオートナンバーを1から始めないには

    Accessのオートナンバーを設定すると1から自動的に始まるのですが、最初に4桁の数字入力して始めることは可能でしょうか。 それとも、この最初の番号を指定して、ひとつずつ数字が自動的に増える設定はオートナンバー意外でおこなうのでしょうか。

  • access2007のオートナンバーについて

    access2007のオートナンバーについて こんにちは、さっそくですが質問させていただきます。 accessの勉強を始めた者ですが、 オートナンバーを指定したフィールドと、その他の必要な項目の フィールドから成るテーブルを作成して、 オートナンバー1~3までのレコードを入力して、 オートナンバー3のレコードを削除した時、 そのあとで、レコードを追加すると、 オートナンバー4のレコードが作成されるのですが、 このレコードをオートナンバー3のレコードとして、 作成することはできるのでしょうか? そのような設定ができろのかどうか、もしできるのであれば、 その方法や、参考になるサイトなど、なにぶん初心者ですので 教えていただけないでしょうか。 よろしくお願いします。

  • アクセスのオートナンバーの法則

    アクセスのオートナンバーについての質問です。 いま、1~100までのオートナンバーで付番されたIDを持った顧客データがあって 101件目を間違えて削除してしまい、その次に入力をしたデータは102番になってしまうため、 欠番を埋めるために、ここでも紹介されている、オートナンバー再設定の方法を行いました。 すると、今までついていた1~100までの番号が、どういう法則かわからないのですが順番がぐちゃぐちゃになって付番されてしまいます。 これを、1から100までの数字は変えず、最後の欠番1こ分だけ詰めて、新しいデータを101番から付番させたいのですが、どうしたらよいのでしょうか。 解決方法ご存知の方ぜひ教えてください。 よろしくお願いします。

  • アクセス2000 オートナンバーについて

    いつもお世話になります。 アクセス2000を使用しているのですが、Dsum関数を使用したいので、時系列を付けるためにオートナンバーを付けています。必要データが日々変わるためにこのテーブルは全データを削除し追加クエリーを使用して計算もとのテーブルをその都度必要なデータのみにしています。 現在テスト中で特に問題はないのですが、本稼動した場合、オートナンバーが一日に10000程になってしまいます。計算に使うレコード数は200程度なのですが、処理作業を1日に50回程度行いますので。 2年程度メンテナンスはする予定をしていないので、このままではオートナンバーが7000000程度になってしまいます。オートナンバーの数字が多くなることによるエラー等は発生しないのでしょうか。またオートナンバー以外に連番をふる方法はあるのでしょうか。 宜しくお願い致します。

  • ACCESSのオートナンバーについて

    ACCESSのオートナンバーを使用したいのですが、 4バイト(Long)で表現できる数値を越えた時どうなるのかが心配です。 自動的に0に戻るのでしょうか?それともエラーが発生してしまうのでしょうか?やはり、意図的にオートナンバーを初期化するべきなのでしょうか? とても大きな数値になるので、簡単にテストしてみる訳にも行かないので、 どなたか知っていたら教えてください。

  • Access2003 オートナンバーの現在値取得方法

    Access2003 オートナンバーの現在値取得方法 Access2003 VBAでDAO.DBEngineオブジェクトを使用して テーブル定義の取得を行っています。 オートナンバー型のシーケンスの現在値を取得する方法はないでしょうか? MAX関数で最大値を取得する方法は不可です。

  • アクセスのクエリでオートでナンバーを振りたいのですが?

    アクセスのクエリでレコードをスコアの大きい順に並べ替えて、オートでナンバーを振り順番をつけたいのですが、可能でしょうか?ご解答宜しくお願い致します。

  • ACCESSのようなオートナンバー

    EXCELの質問なんですが、ACCESSのようなオートナンバーは可能なんでしょうか?    A     B 1|管理番号   船番 2| 1    第1船 3| 2    第2船 4| 3    第3船 5| 4    第1船 ・ ・ ・ 例えばBの縦の列に船番という列があって、この番号は年度管理 で、4/1から第1船という風にカウントされていき、年度が終わるとリセットされ翌年度から、また第1船となります。 で、質問はAの縦の列に、年度は関係なくカウントされていくオートナンバーみたいな関数ってあるのでしょうか? わかりにくい質問ですが、頭の良い方お願いします。 Bの列に番号を入力するとAの列に自動的に入力されるというのが希望です。

  • Accessのオートナンバーについて

    Access2002を使用しています テ-ブルのデータ型をオートナンバーに指定して 使用していました。 自動で今までできた数字をすべて消して1からやり直したいのですが どうしたらいいでようか? ちなみにテーブルのデータを消して作り直しても続きからになってしまいました。

専門家に質問してみよう