AccessVBAで、サブフォーム(データシート)を開くときに、パラメータクエリにパラメータ設定で全データ取得したRecordsetを、データシートに表示しようとして、以下のコードで実行してみましたが、データが表示されませんでした。
サンプルコード
VBA
1Private Sub Form_Load() 2 Dim dbs As Database 3 Dim qd As QueryDef 4 Dim rs As Recordset 5 6 Set dbs = CurrentDb 7 Set qd = dbs.QueryDefs("Q_ViewData") 8 9 With qd 10 .Parameters("[名前]") = "" 11 12 Set rs = .OpenRecordset 13 End With 14 15 Set Me.Recordset = rs 16 17 rs.Close 18 Set rs = Nothing 19 20End Sub
クエリ構造:Q_ViewData
フィールド:ID,名前,性別,年齢 テーブル:m_alldata,m_alldata,s_subdata,m_subdata 並べ替え:昇順 表示:全チェック 抽出条件:,"[名前]"または"[名前] is Null",,
「Set Me.Recordset = rs」時点では、rsにはレコードが入っています。
また、「rs.Close」をブレイクで止めてみたところ、データシートに行自体は作成(値は入っていませんが)されていましたが、その後行は消えて空になりました。
※サブフォームについては、レコードソースを設定していません。
サブフォームのデータは、メインフォームで「パラメータ入力⇒検索ボタンクリック」といった流れで、検索結果データに表示更新します。
レコードソースでパラメータクエリを設定すると、パラメータ入力を示唆されたため、紐づけをしませんでした。
以下の可能性を考えていますが、実際のところどうなのかが判断できていない状況です。
・サブフォーム内でフィールドが設定されていないため。
・Loadイベント後に何かしらのイベントで消されているため。
要変更、処理不足などございましたら、ご教授お願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/12 05:35
2019/07/12 05:54 編集
2019/07/12 07:28
2019/07/12 09:16
2019/07/18 07:48