| 
    
     |  | いつもお世話になっています。(かろちんさん、いつもありがとうございます) 
 ADOを使ってフォームにデータ一覧を表示させたいと思い、
 以下のコードをフォームのOpenイベントに書いています。
 ケース1)
 rs.Open "テーブルA", cn, adOpenKeyset, adLockOptimistic
 rs.Filter = "ID = 5"
 MsgBox (rs.RecordCount)
 Set Me.Recordset = rs
 ケース2)
 rs.Open "テーブルA", cn, adOpenKeyset, adLockOptimistic
 MsgBox (rs.RecordCount)
 Set Me.Recordset = rs
 
 実行すると、ケース1のRecordCountは1になり、ケース2のRecordCountは10
 になるのですが、フォームに表示されるのは、ケース1も2も10件で
 ケース1の場合は、ID=5がカレントレコードになるだけです。
 RecordCountでチェックするとちゃんと件数が変わっているので
 フィルタできているとは思うのですが、どうしてこうなってしまうのか・・・。
 
 そもそもがこういった使い方はイレギュラーなのか。。
 
 やりたいことは、
 「検索条件を入れて検索ボタンをクリックすると該当するデータの一覧が
 表示される」処理を汎用性のあるコード(アクセス以外に移行可能)で
 書きたい。ということです。それにはADOで処理するのがよい、
 と聞きかじったので、チャレンジしてみました。
 SQL(Oracle)はわかるのですが、VB等の知識がなく(Accessも初心者)
 悪戦苦闘しています。
 
 ご教授よろしくおねがいいたします。
 
 |  |