前提・実現したいこと
当方ACCESS、プログラミング初心者です
1.コンボボックスで値を選択、その選択した値を横のラベルに表示する。
2.コンボボックスにAfterUpdateイベントを用意しておき、コンボボックスの値が変更された際に選択した値を用いMe.RecordSourceでレコードソースを抽出する。
3.各ラベル等に設定していたコントロールソースを元に先ほどMe.RecordSourceで設定したレコードソースの値が入る。
発生している問題・エラーメッセージ
ブレイクポイントを挿入し検証
1.コンボボックスで選択した値がラベルに表示される。
2.値を選択後AfterUpdateが発動しMe.RecordSourceが実行される。
問題→コンボボックスで選択した値を表示するラベルの値がクリアされてしまう
※コンボボックスの値を基に抽出したレコードソースの値は各ラベルにきちんと表示されています。
※コンボボックスで選択した顧客IDで抽出したレコードソースが存在する場合は顧客名称は表示される
該当のソースコード
コンボボックスにプロパティシートから値集合ソースを設定します。今回は顧客マスタを設定しています(顧客IDと顧客名称)
コンボボックスで選択した値をラベルに表示させます。コンボボックスで顧客IDを選択しその横のラベルに顧客名称を表示させます
顧客名称を表示させるラベルにはプロパティシートからコントロールソースに=[顧客ID].Columnと設定しています。
コンボボックスにはAfterUpdateイベントを用意しておりAfterUpdateで下記のSetRecordSource()が実行されます。
Private Sub SetRecordSource()
Dim strSQL As String
strSQL = "" strSQL = strSQL & "select " strSQL = strSQL & " * " strSQL = strSQL & " from " strSQL = strSQL & " 顧客買い物 "
strSQL = strSQL & "Where"
strSQL = strSQL & "'" & コンボボックスの値 & "'"
Me.RecordSource = strSQL Me.Requery Me.Recalc
End Sub
試したこと
ブレイクポイントを用いてMe.RecordSource = strSQLを実行しレコードソースが変更されると顧客名称を表示するラベルがクリアされることが分かった。
補足情報(FW/ツールのバージョンなど)
ACCESS2019
ここにより詳細な情報を記載してください。