|
>クエリの方に問題があるのかもしれないと思いました。
>
>確かめる方法はありますか??
とりあえず、Set rs = qd.OpenRecordSet() の次の行に
Msgbox "rsのレコード数:" & rs.RecordCount
と入れて、コードを実行してください。
レコードセットに格納されているレコード数がメッセージボックスに表示されます。
もう少し詳しく知るには、上記の
Msgbox "rsのレコード数:" & rs.RecordCount
を消し、
Set rs = qd.OpenRecordSet() の次の行に
With rs
Do Until .Eof = true
Debug.Print !フィールド名.Value _
& "," & !フィールド名.Value _
& "," & !フィールド名.Value
.MoveNext
loop
End with
と入力してください。
なお、「フィールド名」には、「クエリ1」のフィールド名を入れてください。
次に、VBEのメニューから「表示」→「イミディエイト ウィンドウ」を選択して
イミディエイト・ウィンドウを開いてください。
そして、コードを実行すると、レコードセットに格納されているレコードが
イミディエイト・ウィンドウに表示されます。
ただ、抽出条件を入力するテキストボックスを設けたのであれば、
「クエリ1」を変えてしまったらどうでしょうか。
テキストボックスが配置されたフォームがF検索だとし、
テキストボックスの名前がそれぞれ txtBigin と txtEnd だとして、
クエリ・ビルダにおいて、
「クエリ1」の日付のフィールドの抽出条件欄に
Forms!F検索!txtBigin.Value Between Forms!F検索!txtEnd.Value
と書いて、「クエリ1」を保存し、
txtBiginとtxtEndに適宜値を入力し、「F抽出」を開いたまま「クエリ1」を開けば、
所要の絞り込みがなされた状態でレコードが表示されるはずです。
この「クエリ1」のレコードセットを取得して、
CopyFromRecordsetに渡してやればいいです。
こうすれば、Parameterオブジェクトを使う必要がないですし、
「クエリ1」においてきちんとレコードが抽出されているか確認しやすいと思います。
|
|