
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Access カレントレコードがありません
その他(データベース)
-
Access レコード削除時に「カレントレコードがありません」エラーが表示されてしまう
Access(アクセス)
-
ADO VBA 実行時エラー3021
Visual Basic(VBA)
-
-
4
アクセス2007でのインポートエラー「カレントレコードがありません」に
Access(アクセス)
-
5
アクセス フォームをリクエリしたい
Access(アクセス)
-
6
カレントレコードが無い事を判定させる方法
Visual Basic(VBA)
-
7
ACCESS サブフォームのフィールドにカーソルをあてる
Access(アクセス)
-
8
ACCESS アクセスで他のデータベースからのデータインポート
Access(アクセス)
-
9
AccessのフォームのテキストボックスにLOOKUPで表示したい
Access(アクセス)
-
10
Accessのフォーム上にレコード数とレコード番号の表示
その他(データベース)
-
11
Access サブフォームでの選択行の取得
その他(データベース)
-
12
access テキストボックスの値取得
Access(アクセス)
-
13
accessの SQL文 INSERT命令
Access(アクセス)
-
14
Accessで数値型にNULLをInsertするとエラー
その他(データベース)
-
15
レコードが存在しなかった場合
Microsoft ASP
-
16
ラベルとテキストボックスのグループ化を解除したい
Access(アクセス)
-
17
実行時エラー 3265「要求された名前、または序数
Visual Basic(VBA)
-
18
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
19
Accessでフォームから別フォームのテキストボックスの値を設定する
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
"カレントレコードがありません...
-
Oracleでの文字列連結サイズの上限
-
実績累計の求め方と意味を教え...
-
GROUP BYを行った後に結合した...
-
SELECTで1件のみ取得するには?
-
select句副問い合わせ 値の個...
-
OracleのSQL*PLUSで、デー...
-
集計後の数値が倍になる
-
エラー2「無効な識別子です」
-
ADO VBA 実行時エラー3021
-
ヘッダレコードとトレーラレコ...
-
Oracle8iでSQL文の引数について
-
Excelでセルの書式設定を使用し...
-
ワードの差込印刷で教えて下さ...
-
データセットのレコード更新が...
-
レコードが存在しなかった場合
-
エラー「無効な識別子です」
-
SQLPLUSにて演算子を使う方法と...
-
select insertで複数テーブルか...
-
CREATE テーブルでの複数外部...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
キーが同じを複数行を1行にま...
-
"カレントレコードがありません...
-
改行コード
-
IDENTITY列の番号リセット
-
全体は何という名前で呼ぶので...
-
Oracleでの文字列連結サイズの上限
-
GROUP BYを行った後に結合した...
-
OracleのSQL*PLUSで、デー...
-
ADO VBA 実行時エラー3021
-
決定性有限オートマトン
-
Accessで別テーブルの値をフォ...
-
select句副問い合わせ 値の個...
-
実績累計の求め方と意味を教え...
-
select insertで複数テーブルか...
-
差し込み印刷のレコード数について
-
Access終了時の最適化が失敗?
-
レコードが存在しなかった場合
-
最新の日付とその金額をクエリ...
-
Excelでセルの書式設定を使用し...
-
Excelで、改行がある場合の条件...
おすすめ情報