| 対象となる Office 製品 : |
| Microsoft Access 2000 |
固定文字列の後に連続した数値を追加して、カウンタ フィールドとして使いたいことがあります。この方法は、数値データが含まれたいくつかのフィールドがあり、フィールド名を確認しなくてもデータを識別できる簡単な方法が必要なときに便利です。たとえば、配役-1 という値が含まれた CustomerID フィールドを設定し、以降のレコードで、このフィールドの値を 配役-2、配役-3 のように連続して増やすことができます。
Access では、イベント プロシージャを使って、カウンタ フィールドの数値部分を連続して増やすことができます。以下の手順では、このテクニックを示しています。テーブルとフォームを作成し、テキスト ボックスを挿入します。次に、イベント プロシージャを入力します。3 つ目のテキスト ボックス コントロールは、カウンタ フィールドを更新するイベントと、レコードの更新の間の時間的な競合が発生しないようにするために使用します。
データが含まれたテーブルを作成する
- データベース ウィンドウで、[オブジェクト] バーの [テーブル] をクリックし、[新規作成] をクリックします。
- [テーブルの新規作成] ダイアログ ボックスの [デザイン ビュー] をクリックし、[OK] をクリックします。
- 最初のフィールド名に [fldCount] を設定し、2 つ目のフィールド名に [名前] を設定します。
- 両方のフィールドで、データ型は [テキスト型] のままにします。
- [tblCount] という名前でテーブルを保存し、データシート ビューでテーブルを開きます。このテーブルには、主キーは設定しないでください。
- [fldCount] 列に「配役-1」と入力し、[名前] 列に「田中花子」と入力します。
- テーブルを閉じます。
フォームを作成し、イベント プロシージャを入力する
- データベース ウィンドウで、[オブジェクト] バーの [フォーム] をクリックし、[新規作成] をクリックします。
- [フォームの新規作成] ダイアログ ボックスの [オートフォーム: 単票形式] をクリックし、[基になるテーブルまたはクエリの選択] ボックスの [tblCount] をクリックします。次に、[OK] をクリックします。
- デザイン ビューに切り替えます。
- ツールボックスの [テキスト ボックス] ツールを使って、フォームに非連結テキスト ボックスを追加します。
- 新しいテキスト ボックスの [名前] プロパティ ボックスに [HiddenCtl] を設定します。
- [HiddenCtl] ボックスの [コントロールソース] プロパティ ボックスに [fldCount] を設定します。
- フォームの [名前] ボックスをダブルクリックし、プロパティ シートを表示します。
- [イベント] タブの [更新後処理] プロパティ ボックスをクリックし、ボックスの右端にある [ビルド] ボタンをクリックします。
- [ビルダの選択] ダイアログ ボックスの [コード ビルダ] をクリックし、[OK] をクリックします。
- "名前" フィールドの AfterUpdate イベント プロシージャで、Sub ステートメントと End Sub ステートメントの間に次のテキストを入力します。
Dim strMax As String
strMax = DMax("fldCount", "tblCount")
Me!HiddenCtl = "配役-" & Right(strMax, Len(strMax) - InStr(1, strMax, "-")) + 1
- フォーム ビューに切り替えます。
- Tab キーを使って [名前] ボックスに移動し、「山本太郎」と入力します。次に、Tab キーを押します。
[fldCount] および [HiddenCtl] ボックスに表示された値には、文字列 配役- に次の増分値である 2 が追加されます。
メモ このプロシージャは、デモのために [HiddenCtl] ボックスが可視になっています。この "可視" プロパティに [いいえ] を設定すると、このボックスをフォームのユーザーには表示しないようにできます。