ID非公開
ID非公開さん
2021/1/22 0:44
1回答
アクセスvba
アクセスvba 詳しい方、教えて下さい。 テーブル1 (分類 詳細) 果物 りんご 果物 みかん 乗物 車 乗物 電車 たとえばフォームで「分類」を乗物と選択した際に「車、電車」をリスト(配列?)に入れたいです。 どのようなコードになりますでしょうか? 何卒よろしくお願い致します。
Visual Basic | Microsoft Access・21閲覧
ベストアンサー
フォーム上のコンボボックス(分類)の[値集合ソース]を 「SELECT 分類 FROM テーブル1 GROUP By 分類」 にします。 [更新後処理]を[イベント プロシージャ]にして下を入力します。 配列dに結果が取得できます。 結果は2次元配列になります。 Private Sub 分類_BeforeUpdate(Cancel As Integer) Dim rs As Recordset Dim d As Variant Set rs = CurrentDb.OpenRecordset("select 詳細 from テーブル1 where 分類='" & 分類 & "'") rs.MoveLast rs.MoveFirst d = rs.GetRows(rs.RecordCount) rs.Close '結果表示 Dim i As Integer Dim s As String For i = 0 To UBound(d, 2) s = s & d(0, i) & vbCrLf Next MsgBox s End Sub
フォームにコンボボックス(コンボ1)とリストボックス(リスト1)がある場合です。 コンボ1の[値集合ソース]を SELECT [分類] FROM [テーブル1] GROUP BY [分類] リスト1の[値集合ソース]を SELECT [詳細] FROM [テーブル1] WHERE [分類]=[コンボ1] にしてください。 コンボ1を変更したらリスト1の内容を変更する必要があります。 個人的にはVBAが楽なのですがマクロを使う場合です。 コンボ1の[更新後処理]の右の[...]をクリックして[マクロ ビルダー]を選んでください。 アクションカタログの[フィルタ/クエリ/検索]の中の[再クエリ]を選んでください。 コントロール名に[リスト1]と入力して閉じるを押してください。 2回目の回答以降の図は拡大できなくて見にくいかもしれませんが添付します。
質問者からのお礼コメント
ありがとうございました!
お礼日時:1/24 0:03