
Access97を使用しています。
データは テーブルAの項目B、項目Cが下記のようにあるとします。
フォーム上のText"B"に項目Bを入力します。
項目B項目C
11a
11b
22aa
22bb
22cc
33aaa
33ccc
この時
Set DB = CurrentDb()
strSQL = "SELECT * FROM A WHERE "
strSQL = strSQL + "B='" & Me.B & "';"
Set RS = DB.OpenRecordset(strSQL, dbOpenDynaset, dbReadOnly)
RS.MoveFirst
RS.MoveLast
m = RS.RecordCount
For i = 1 To m
COIL_N = RS.Fields("C")
Call RS.MoveNext
Next i
上記のようなモジュールですが、例えば
項目Bの"11"を選んだ時、項目Cの二番目のデータbが 取得できません。
"カレントレコードがありません"とでてきます。何故でしょうか?
No.2
- 回答日時:
こんにちは。
maruru01です。No.1の人の言う通り、1行実行しながら変数などに格納される値をモニタしてみることです。
"カレントレコードがありません。"
というエラーの場合は、レコードセットのEOFかBOFプロパティがTrueになっていることが原因ではないでしょうか。
それから、気になった点は何故
RS.MoveFirst
RS.MoveLast
としているのかという点です。
あと、レコードセットの読み込みはForループより、DoループでEOFプロパティに格納される値を条件にした方がいいと思います。
Do Until (RS.EOF)
COIL_N = RS.Fields("C")
RS.MoveNext
Loop
という感じです。
MoveFirstとMoveLastをなしにして、上記のコードにすればOKだと思います。
No.1
- 回答日時:
ブレイクポイントを設定して1行ずつ実行すれば、原因がわかりそうな
質問ですね。
とりあえず、mにしかるべき数字(この場合は2)がちゃんと入ってる
か確認してみては?
あと最後から2番目のCALL文て必要なんですか? なくてもいいような・・。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) docmd.gotorecordを起動するには 5 2022/06/17 15:20
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Access(アクセス) 実行時エラー3131 FROM 句の構文エラーです について 7 2022/06/13 15:45
- Access(アクセス) DoCmd.SearchForRecord が動かない時の解決方法 3 2022/07/22 15:31
- Visual Basic(VBA) データベースから絞り込んでデータを読み込み 1 2023/02/21 19:51
- Visual Basic(VBA) Excelで下記のようにマクロを作ったところ、一回目は実行できたのですが、二回目以降「実行時エラー1 1 2022/03/25 08:08
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- Access(アクセス) チェックボックスにチェックが入った後の挙動 1 2022/08/21 12:39
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- その他(プログラミング・Web制作) Windowsのバッチファイルについてご教示ください 5 2023/07/25 20:23
このQ&Aを見た人はこんなQ&Aも見ています
-
Access カレントレコードがありません
その他(データベース)
-
Access レコード削除時に「カレントレコードがありません」エラーが表示されてしまう
Access(アクセス)
-
ADO VBA 実行時エラー3021
Visual Basic(VBA)
-
-
4
Access サブフォームでの選択行の取得
その他(データベース)
-
5
アクセス2007でのインポートエラー「カレントレコードがありません」に
Access(アクセス)
-
6
カレントレコードが無い事を判定させる方法
Visual Basic(VBA)
-
7
Access 2010で実行時エラー3061
その他(Microsoft Office)
-
8
アクセス フォームをリクエリしたい
Access(アクセス)
-
9
AccessからExcelにエクスポートする時に常に上書きしたい
Excel(エクセル)
-
10
Access 最後のレコードに到達するまでループ処理を行う方法
Access(アクセス)
-
11
Accessの桁区切りについて教えてください。
Access(アクセス)
-
12
AccessのFormの設定で、開いた時に必ず最大化で表示する方法が分からず困っています
Access(アクセス)
-
13
AccessのフォームのテキストボックスにLOOKUPで表示したい
Access(アクセス)
-
14
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
15
ラベルとテキストボックスのグループ化を解除したい
Access(アクセス)
-
16
access マクロでのフィルタの解除の方法
Access(アクセス)
-
17
レコードが存在しなかった場合
Microsoft ASP
-
18
実行時エラー 3265「要求された名前、または序数
Visual Basic(VBA)
-
19
Access Error3061 パラメータが少なすぎます。4を指定してください。
Access(アクセス)
-
20
ACCESSでデータ読み取り専用を解除する方法
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
IDENTITY列の番号リセット
-
キーが同じを複数行を1行にま...
-
Oracleでの文字列連結サイズの上限
-
GROUP BYを行った後に結合した...
-
iserease のDB2 UDBに対してODB...
-
Accessで別テーブルの値をフォ...
-
access2003で学籍番号から生徒...
-
OracleのSQL*PLUSで、デー...
-
DataGridViewの、選択されてい...
-
クライアントからのDBアクセス
-
Date型にNULLをセットしたい V...
-
MERGE文を単体テーブルに対して...
-
実績累計の求め方と意味を教え...
-
同じ表内の比較
-
最新の日付とその金額をクエリ...
-
ACCESSで大量の更新を行うと「...
-
日付データの抽出方法を教えて...
-
ACCESS2000 コンボボックス絞込み
-
select句副問い合わせ 値の個...
-
VBScript(WSH)でのランダムア...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
キーが同じを複数行を1行にま...
-
"カレントレコードがありません...
-
改行コード
-
新しい日付のデータ副問い合わせ
-
accessからexcelへのエクスポー...
-
Access2007 Mid関数
-
GROUP BYを行った後に結合した...
-
Oracleでの文字列連結サイズの上限
-
OracleのSQL*PLUSで、デー...
-
SELECTで1件のみ取得するには?
-
select句副問い合わせ 値の個...
-
select insertで複数テーブルか...
-
DataGridViewの、選択されてい...
-
Excelでセルの書式設定を使用し...
-
実績累計の求め方と意味を教え...
-
SELECTの結果で同一行を複数回...
-
Accessで別テーブルの値をフォ...
-
カレントレコードが無い事を判...
-
レコードが存在しなかった場合
-
Excelで、改行がある場合の条件...
おすすめ情報