• ベストアンサー

アクセス2000での月別オートナンバー

ARCの回答

  • ベストアンサー
  • ARC
  • ベストアンサー率46% (643/1383)
回答No.1

「テーブル1」の「ID」フィールドに連番を格納する際の方法です。 フォーム上でデータ入力を行ったときのみ有効。 1:フォームをデザインモードで開く 2:フォームの[更新前処理]を「イベントプロシージャ」にして、右の[…]をクリック 3:VBAの編集画面になるので、以下のように入力。 Private Sub Form_BeforeUpdate(Cancel As Integer)  Dim SQL As String  Dim RS As Recordset  Dim MaxID As String  If Me.NewRecord Then   SQL = "SELECT Max(ID3) AS MaxID" _     & " FROM テーブル1"     & " WHERE ID3 Like '" & Format$(Date, "eemm") & "*';"   Set RS = CurrentDb.OpenRecordset(SQL, dbOpenSnapshot)     MaxID = Format$(Date, "eemm") & Format$(Val(Right$(Nz(RS![MaxID]), 3)) + 1, "000")   Me.ID3 = MaxID  End If End Sub 尚、このやり方では、複数のユーザが同時にレコードの更新を行ったときはダブった番号が入力されてしまうかもしれません。 もし複数のPCから同じデータベースを共有されているのでしたら、一旦レコードをロックして…云々ってな処理が必要ですね。

beginner123
質問者

お礼

ありがとうございます! 早速やってみます!助かりました!

関連するQ&A

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

    アクセス超初心者です。 年月で更新される伝票番号をオートナンバーで作成したいのですが、可能でしょうか? 例: 2010年9月4日(2010年9月の1番目の伝票) → 100901 2010年9月18日(2010年9月の2番目の伝票)→ 100902 2010年10月5日 (2010年10月の1番目の伝票)→ 101001 フィールドには日付としてyy/mm/ddで日付型で入力しています。 そこからyymmだけを認識させて、末尾の番号を連番で自動更新させることは可能でしょうか? よろしくお願いします。

  • アクセスのレポートでの集計

    アクセスのレポートで、日付順に数字が入力されているとします。 これを月別、年別のグルーピングで合計値をレポートに出力させるにはどうすればよいのでしょうか。 日付をグループレベルに設定しても毎日のデータが合計されるだけですよね。 日付から年や月の数値を取り出してそれを元にグルーピングするしかないのでしょうか。。。

  • アクセスのオートナンバーが飛びすぎに

    過去の質問検索で、うまく見つけられませんでしたので質問させてください。 【状況】 ・10000件ほどレコードがあります。 ・レコードの項目にはオートナンバーがふられていて、それが主キーになっております。 ・データベースは私が作ったものではありません ・しかも私はアクセス初心者で、最初から作り直せるようなものではありません ・データベースはアクセス2000です 【困っている事】 具体的な数字を例にあげて説明します。 今までは入力すると10000件目の次は10001番と当然番号がついていたのですが、先週に「ファイルのインポート」機能を使って300件追加して、本日入力を再開したら、本来は10301番と番号をふられるハズが80001435番、みたいな大幅に飛んだ番号を振るようになりました。 【どう解決したいか】 既存の今までのデータは10300件までキレイに番号をふられて揃っている為、次の入力を10301から始まるようにしたいです。 ※補足必要であれば聞いてください

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

    アクセス2000で販売管理を作成しています。 顧客マスター処理で顧客番号をオートナンバーに設定しているのですが顧客データ入力フォームに中止するボタンを用意して、押されると入力中のデータは保存されないようにしています。(コマンドボタンウイザードでレコードを元に戻す)を使用 これで、中止を押して再度登録するとオートナンバーが 1つ飛んでしまいます。 例 顧客番号3で入力中中止ボタン押下後、再度新規登録すると顧客番号が5になってしまう。 これを無くす方法(4になるように)はありますでしょうか? それと欲張りで大変申し訳ないのですが、 コンボボックスにキーボードからの入力をさせないようにする方法はありますか? どうぞよろしくお願い致します。

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

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

  • 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の列に自動的に入力されるというのが希望です。

  • ACCESS2000でオートナンバーを1から付けたいのですが

    ACCESS2000のテーブルで新規に作ったときはオートナンバーフィールドが1からになるんですが、何度かレコードの試験入力や削除を繰り返しているうちに、頭の番号が増えていきます。テーブルのデザインで、オートナンバーをテキスト型にして、新しいオートナンバー型行を挿入しても1からになりません。なにかよい方法はないでしょうか?

  • Accessのオートナンバー

    Accessのテーブルのオートナンバー型は、レコードの追加、削除を繰り返すと飛び番号になってしまいますが、再度ふり直すってできますか? よろしくお願いいたします。 Accessは、超初心者です。

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

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

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

    XPのアクセスを使っています。 オートナンバーに主キーが設定されています。 データを入力するとオートナンバーが「1・2・3~」と振られていきますが、もし「3」のデータを消去すると「1・2・4~」となります。 私的にはツメて「1・2・3~」となって欲しいのですが無理なのでしょうか?オートナンバーとはそういうもの? アクセス超初心者ですのでよろしくお願いいたします。