今回は、mihoちゃんが書いてくれたブログの続編をお送りします。
グループごとに連番をふりたい(Access2007編)では、関数を巧みに使って、連番を設定していましたね。
今回は、AccessVBAを使って連番をふってみます。
なお、Access2002以降なら、問題なく動作すると思います。(動作確認してませんので多分・・・)
まず、テーブルの確認です。mihoちゃんの時と同じテーブルを用意しました。
ただし、このテーブルには、班IDというフィールドが既に定義されています。
(データ型は、数値型です)
班IDフィールドに、連番を書き込んでいくのが今回の目的です。

このテーブルは、班ごとにグループ化されていないので、プログラム処理しやすいように、
まずは、班ごとに並び変えるクエリを作成します。
以下のようなデザインで、クエリを作成します。
班フィールドをソートしてあれば十分ですが、今回は、さらにID順に並べ替えておきました。

データシートビューで表示すると、以下のようになります。

この状態で、班IDフィールドに連番を振るということは、班1が4件あるので、1、2、3、4と連番を振った後、
班の値が2に変わるので、また、1から連番が降られることになります。
この流れをプログラムしていくのです。
さて、プログラムを実行するために、ボタンを備えたフォームを用意します。

ボタンを1つ配置します。
ボタン名は、表題と同じ「連番を振る」にしました。

プロパティシートのイベントタブから、クリック時イベントの右端をクリックします。
コードビルダを選択して、Visual Basic Editorが表示されたら、以下のようにコードを記述してください。
画像を載せておきます。(なぜかテキストにすると、はじかれてしまうので画像でごめんなさい)

コードの解説は、コメントを参照してください。

それでは、フォームビューに切り替えて、ボタンをクリックしてみましょう。
よほどたくさんのレコード件数でない限り、処理は、あっという間に終わります。
クエリを開いて、確認してみると、ちゃんと連番がふられています。

今回の例は、mihoちゃんの紹介してくれた方法を使えば、バッチリですが、VBAをうまく使うと、
Accessは、ますます使い勝手が良くなります。
だい
グループごとに連番をふりたい(Access2007編)では、関数を巧みに使って、連番を設定していましたね。
今回は、AccessVBAを使って連番をふってみます。
なお、Access2002以降なら、問題なく動作すると思います。(動作確認してませんので多分・・・)
まず、テーブルの確認です。mihoちゃんの時と同じテーブルを用意しました。
ただし、このテーブルには、班IDというフィールドが既に定義されています。
(データ型は、数値型です)
班IDフィールドに、連番を書き込んでいくのが今回の目的です。

このテーブルは、班ごとにグループ化されていないので、プログラム処理しやすいように、
まずは、班ごとに並び変えるクエリを作成します。
以下のようなデザインで、クエリを作成します。
班フィールドをソートしてあれば十分ですが、今回は、さらにID順に並べ替えておきました。

データシートビューで表示すると、以下のようになります。

この状態で、班IDフィールドに連番を振るということは、班1が4件あるので、1、2、3、4と連番を振った後、
班の値が2に変わるので、また、1から連番が降られることになります。
この流れをプログラムしていくのです。
さて、プログラムを実行するために、ボタンを備えたフォームを用意します。

ボタンを1つ配置します。
ボタン名は、表題と同じ「連番を振る」にしました。

プロパティシートのイベントタブから、クリック時イベントの右端をクリックします。
コードビルダを選択して、Visual Basic Editorが表示されたら、以下のようにコードを記述してください。
画像を載せておきます。(なぜかテキストにすると、はじかれてしまうので画像でごめんなさい)

コードの解説は、コメントを参照してください。

それでは、フォームビューに切り替えて、ボタンをクリックしてみましょう。
よほどたくさんのレコード件数でない限り、処理は、あっという間に終わります。
クエリを開いて、確認してみると、ちゃんと連番がふられています。

今回の例は、mihoちゃんの紹介してくれた方法を使えば、バッチリですが、VBAをうまく使うと、
Accessは、ますます使い勝手が良くなります。
だい
※コメント投稿者のブログIDはブログ作成者のみに通知されます