Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


554 / 2272 ツリー ←次へ | 前へ→

【11170】findメソッド エラー さりー 09/8/5(水) 20:12 質問[未読]
【11171】Re:findメソッド エラー 小僧 09/8/6(木) 9:06 回答[未読]

【11170】findメソッド エラー
質問  さりー  - 09/8/5(水) 20:12 -

引用なし
パスワード
   テーブル(tbl_m)に 性別 名前 フィールドを作っています

ADOで性別が男だけイミディエイトさせたいのですがエラーが出ます。

実行時エラー 3021
 BOFとEOFのいずれかがTrueになっているか。または現在のレコードが削除されています

イミディエイトに結果はでますがエラーも出るといった具合です。

どこがおかしいか教えてください


Public Sub kim()

Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim sex As Variant

Set cn = CurrentProject.Connection
Set rs = New ADODB.Recordset

rs.Open "tbl_m", cn, adOpenKeyset, adLockOptimistic

sex = "性別='男性'"

Do Until rs.EOF
rs.Find sex
Debug.Print rs!社員名
rs.MoveNext
Loop

rs.Close: Set rs = Nothing
cn.Close: Set cn = Nothing

End Sub

【11171】Re:findメソッド エラー
回答  小僧  - 09/8/6(木) 9:06 -

引用なし
パスワード
   ▼さりー さん:
こんにちは。

> 実行時エラー 3021
> BOFとEOFのいずれかがTrueになっているか。
> または現在のレコードが削除されています


h tp://msdn.microsoft.com/ja-jp/library/cc948692.aspx

こちらの中ほどにある

> DAO と ADO では、指定する検索条件に一致するレコードが
> 見つからなかった場合の動作が異なります。

あたりが参考になるでしょうか。

>Do Until rs.EOF
>rs.Find sex
>Debug.Print rs!社員名
>rs.MoveNext
>Loop

Find メソッドを使った後に
見つかったかどうかの判定が必要になってきそうですね。

554 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078197
(SS)C-BOARD v3.8 is Free