エラー:3021 対処法 「BOFとEOFのいずれかTRUEになっていか、または現のレコードが要求された操作には、現在のレコードが必要です。」

AccessVBA開発

原因は、CursorLocation が規定値の adUseServer になっているので

Rs.Filter してしまうと 正しく動いてくれません。

Set cn = CurrentProject.Connection
rs.CursorLocation = adUseClient ‘←追加
rs.Open “テーブル”, cn, adOpenKeyset, adLockOptimistic

とするか Filter ではなく

rs.Open “SELECT * FROM テーブル WHERE 店名 ='” & str店名 & “‘ and URL =’未'”, cn, adOpenKeyset, adLockOptimistic
‘rs.Filter = “(店名 = ‘” & str店名 & “‘) And (URL = ‘未’)”
とSQL中にWHERE句で指定します。

でも、更新クエリで片づけたほうが良さそうにも思えます。
UPDATE テーブル SET テーブル.URL = ‘http’
WHERE [テーブル].URL=’未’ AND [テーブル].店名=’来々軒’;

 

ADOでループすると1レコードずつ飛ばしてしまう
アクセスなのですがSub test()Set cn = CurrentProject.Connectionrs.Open "テーブル", cn, adOpenKeyset, adLockOptimisticrs.Filter = "(店名 = '" & str店名 & "') And (URL = '未')" For...

>>おススメのSQL本はこちら

タイトルとURLをコピーしました