|
いつもお世話になっています。(かろちんさん、いつもありがとうございます)
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も初心者)
悪戦苦闘しています。
ご教授よろしくおねがいいたします。
|
|