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も見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
Access カレントレコードがありません
その他(データベース)
-
ADO VBA 実行時エラー3021
Visual Basic(VBA)
-
カレントレコードが無い事を判定させる方法
Visual Basic(VBA)
-
-
4
レコードが存在しなかった場合
Microsoft ASP
-
5
エラー(型が一致しません。)の対処方法
Visual Basic(VBA)
-
6
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
7
Access レコード削除時に「カレントレコードがありません」エラーが表示されてしまう
Access(アクセス)
-
8
アクセス2007でのインポートエラー「カレントレコードがありません」に
Access(アクセス)
-
9
フィルタ後のフォームの件数の取得の仕方
Access(アクセス)
-
10
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
11
ACCESSで値を代入できないとは?
Visual Basic(VBA)
-
12
アクセスで入力したデータの順番が変わってしまいます
その他(ビジネス・キャリア)
-
13
MS Accessでフォームの「開く時」と「読込み時」のイベントの違い
Access(アクセス)
-
14
ADOを使ったDBアクセス後のメモリ解放
その他(データベース)
-
15
Access サブフォームでの選択行の取得
その他(データベース)
-
16
Accessのフィールド名に半角括弧を使ってしまった
Visual Basic(VBA)
-
17
AccessVBAで作成したExcelファイルを削除する方法は?
Visual Basic(VBA)
-
18
access の 最終レコードの判定はどう記述しますか
Access(アクセス)
-
19
指数表示しない方法
その他(データベース)
-
20
ACCESS更新クエリで型変換エラー
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
キーが同じを複数行を1行にま...
-
"カレントレコードがありません...
-
改行コード
-
IDENTITY列の番号リセット
-
Oracleでの文字列連結サイズの上限
-
Accessで別テーブルの値をフォ...
-
SELECTで1件のみ取得するには?
-
GROUP BYを行った後に結合した...
-
select insertで複数テーブルか...
-
ファイル書込みで一行もしくは...
-
SQL文で右から1文字だけ削除す...
-
select句副問い合わせ 値の個...
-
ADO VBA 実行時エラー3021
-
レコードが存在しなかった場合
-
OracleのSQL*PLUSで、デー...
-
MERGE文を単体テーブルに対して...
-
GROUP BYを使ったSELECT文の総...
-
Access終了時の最適化が失敗?
-
JSPのNULLレコード表示について...
-
自己相関サブクエリと自己結合...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
キーが同じを複数行を1行にま...
-
改行コード
-
"カレントレコードがありません...
-
IDENTITY列の番号リセット
-
GROUP BYを行った後に結合した...
-
Oracleでの文字列連結サイズの上限
-
Accessで別テーブルの値をフォ...
-
SELECTで1件のみ取得するには?
-
SQL文で右から1文字だけ削除す...
-
GROUP BYを使ったSELECT文の総...
-
select句副問い合わせ 値の個...
-
ADO VBA 実行時エラー3021
-
SELECTの結果で同一行を複数回...
-
カレントレコードが無い事を判...
-
Access終了時の最適化が失敗?
-
Date型にNULLをセットしたい V...
-
レコードが存在しなかった場合
-
実績累計の求め方と意味を教え...
-
Excelでセルの書式設定を使用し...
-
SQL文で素早くNULLを除外する方法
おすすめ情報