オプショングループとオプションボタンを使用し文字データを保存する方法 - Access
オプショングループ内にオプションボタンを配置し使用する場合、戻り値は数値になります。
選択結果を保存したいフィールドがテキスト型の場合、直接オプショングループに接続することができません。
そこでVBAを作成し文字データを保存するようにします。
オプショングループについては「オプショングループの作成方法」を参照してください。
オプションボタンについては「オプションボタンの作成方法」を参照してください。
下の型番テーブルの型番フィールドに選択データを保存します。
型番フィールドはテキスト型になっています。
オプショングループの作成
1.フォーム デザインでフォームを作成し、リボンの[フォーム デザイン ツール]~[デザイン]~コントロール グループの[オプション グループ]を選択します。
2.フォーム上でドラッグし配置します。
3.オプション グループ ウィザードが開くので、オプションに付けるラベルを入力します。
[次へ]ボタンをクリックします。
[既定のオプションを設定しない]を選択し、[次へ]ボタンをクリックします。
[後の作業で使用する]を選択し、[次へ]ボタンをクリックします。
変更しないで、[次へ]ボタンをクリックします。
変更しないで、[次へ]ボタンをクリックします。
グループの標題を入力し、[完了]ボタンをクリックします。
これでオプショングループの挿入は完了です。
フォームのレコードソースに、保存先のテーブルを指定します。
ここではT_型番テーブルになります。
保存するフィールドと接続するテキストボックスを挿入し、コントロールソースに保存先のフィールドを指定します。
ここでは型番フィールドになります。
VBAでオプショングループの選択結果を保存する
オプショングループを選択した状態で、プロパティシートの[更新後処理]~[イベントプロシージャ]を選択し、右の[…]ボタンをクリックします。
更新後処理イベントの、AfterUpdate()が表示されるので、テキストボックスに選択結果を代入するVBAを入力します。
・オプショングループの選択結果を、Switchでそれぞれ処理しています。
・テキストボックスには直接文字データを代入することもできますが、ここではオプションボタンのラベルの標題を代入しています。これにより表示されているデータが変更されても、そのデータが代入されるので間違いや手間が省けます。
Private Sub フレーム13_AfterUpdate()
Select Case Me!フレーム13.Value
Case 1: Me!テキスト11.Value = Me!ラベル17.Caption
'AP-001
Case 2: Me!テキスト11.Value = Me!ラベル19.Caption
'RS-225
Case 3: Me!テキスト11.Value = Me!ラベル21.Caption
'YU-301
Case 4: Me!テキスト11.Value = Me!ラベル23.Caption
'OP-458
End Select
End Sub
実行画面です。
型番を選択すると、選択した文字データがテキストボックスに表示されています。
テキストボックスはコントロールソースで型番フィールドと接続されているので、自動的にテーブルに保存されます。
いくつか新規レコードで選択した後、テーブルの状態を確認したところ、間違いなく保存されていました。
今回レコードに移動させたところ、オプショングループは前のレコードで選択した位置を記憶していました。
それはそれでいいのですが、今回はレコード移動の時点で何も選択されていない状態にします。
フォームのプロパティシートの[レコード移動時]~[イベントプロシージャ]を選択し、右の[…]ボタンをクリックします。
オプショングループが何も選択されていない状態にするVBAです。
Private Sub Form_Current()
Me!フレーム13.Value = 0
End Sub