
ACCESS2003です。
SQLのSELECT文で取得した結果に対して、条件を満たすかどうかを
判定して、1レコードずつ結果を更新していくロジックを考えました。
wSQL = "SELECT * FROM ~"
Set wREC = wCNN.OpenRecordset(wSQL, dbOpenDynaset)
Do Until wREC.EOF
If 条件を満たすか Then
wREC.Edit
wREC.Fields("結果") = "○"
wREC.Update
Else
wREC.Edit
wREC.Fields("結果") = "×"
wREC.Update
End If
wREC.MoveNext '次レコードへ
Loop
これを実行すると、途中で「レコードが大きすぎます。」というエラーが
発生します。SELECT文を*でなく、項目を絞ったのですが相変わらずです。
レコード数は1800行ほどです。
これはどういった対処が必要でしょうか?
No.4ベストアンサー
- 回答日時:
#1です。
エラーの起こるレコードの他のフィールドの値を確認してみる事をお勧めします。
この回答への補足
その後、そのレコードの他の項目の長さを削ってやってみたところ、
うまくいきました。
どうも、1レコードは半角2000文字以内という制限があるようです。
今までご回答いただいた方々、ありがとうございました。
同じテーブルの他の項目も一応見てみましたが、特に変わったところはないように思いました。SELECT文で項目を絞っても出るのですが、そのテーブルの全項目も関係してくるのでしょうか。
No.5
- 回答日時:
ロックの問題だと思いますよ。
1度にロックできるレコードの件数は1000件程度です。
レジストリで変更できるはずですが。
例えば、10000件のテーブルを開いて
全レコードを選択して、DELキーを押しても
1度に削除できません。

No.3
- 回答日時:
なぜでしょうね?
mdbを作り直してみると、エラーが起こらなくなったりすることもありますが、毎回同じところで起こるのは、もっとはっきりした原因がありそうですね。
あまり、参考にならなくてすみません。
参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=338749

No.2
- 回答日時:
エラーはどの行で出ているのでしょうか?
直接的な回答ではありませんが、1件ずつ更新するよりUpdate文(更新クエリ)を使ったほうが早いし、簡単ですよ。
この回答への補足
SQLで、
UPDATE テーブル名 SET 結果="○" WHERE 条件式 ;
というのを作って実行してみましたが、なんと同じエラーが
発生しました。(レコードが大きすぎます。)
う~ん、なぜだろう?
ご回答ありがとうございます。
エラーは「wREC.Fields("結果") = "○"」の行で発生します。
SQLのUPDATE文の方が確かに簡単そうなので試してみます。
でも、どうもすっきりしないので、原因を知りたいのですが・・。
No.1
- 回答日時:
Access2003では緩和されているのかもしれませんが、
テキストフィールドの合計が2000バイトを越えていませんか?
また、Access2000以降ではテキストフィールドの大きさの指定がバイト数から文字数へと変更されたため、
ユーザー側での容量計算に間違いが起こる恐れがあります。
文字型フィールドに設定できる文字数は255文字となっていますが、これはあくまで文字数であってバイト数ではありません。従って最大510バイトを占めてしまいます。
文字型フィールドの文字数の既定値は255ですので、キチンと必要文字数を設定せずに使用していませんか?
ご回答ありがとうございます。
どのレコードで発生するかを絞り込んで行ったところ、ある特定の
レコードで発生することがわかりました。ところがそのレコードは
上の例では条件を満たすので○を入れようとするのですが、その
代入文で表題のエラーが発生します。○を入れる前はNULLでしたが、
それがまずいのでしょうか?○を入れる前がNULLだったケースは
このレコードが最初です。(それまでは何らかの値が入っていました。)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- PHP PHP MySql ページング 2 2022/09/20 06:38
- Access(アクセス) docmd.gotorecordを起動するには 5 2022/06/17 15:20
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- PHP クエリObjectをforeachで回す時に、次のレコードへ移動せずに次のレコードを取得したい 2 2022/07/28 15:29
- Access(アクセス) DoCmd.SearchForRecord が動かない時の解決方法 3 2022/07/22 15:31
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- Oracle SQL update方法 2 2022/06/22 14:07
- Oracle 列1と列2の関係性で列3の条件に一致するレコードを抽出したい 1 2022/04/13 07:46
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
このQ&Aを見た人はこんなQ&Aも見ています
-
ACCESSでクエリを作成したら「式が複雑すぎます。」の表記が…
その他(データベース)
-
アクセスのフォームで、文字を中央揃えにしたい
Access(アクセス)
-
Accessのフィールド数が255しかない=業務では使えない?
PowerPoint(パワーポイント)
-
-
4
INSERT INTO ステートメントに認識できないフィールド
その他(データベース)
-
5
ACCESSで400以上のフィールドがある場合の作成方法‥
その他(データベース)
-
6
アクセスのエラー「クエリには出力フィールドが1つ以上必要です。」
その他(Microsoft Office)
-
7
Excel→Accessへ貼り付けがおかしい
Access(アクセス)
-
8
「データベースまたはオブジェクトは読み取り専用なので、更新できません」エラーについて
その他(データベース)
-
9
ACCESSにEXCELからインポートした時に先頭に空列ができる
Excel(エクセル)
-
10
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
11
Accessでフィールド名を変数(文字列)で・・・
Access(アクセス)
-
12
ACCESS2000「定義されているフィールドが多すぎます。」のエラーについて
その他(データベース)
-
13
Accessでテーブルからテーブルにデータをコピーしたい
その他(データベース)
-
14
アクセスの初心者の質問です(空白の場合に他のフィールドを表示させたい。)
Access(アクセス)
-
15
accessのエクスポートエラーについて
その他(データベース)
-
16
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
17
アクセスで数値型のフィールドにNullをいれたい
その他(データベース)
-
18
アクセスのフォームのビューが表示されないのですが、
その他(データベース)
-
19
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
20
空白をそのままインポートする方法について
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ファイル書込みで一行もしくは...
-
ADO VBA 実行時エラー3021
-
アクセスでレポートの1印刷内...
-
DataGridViewの内容をDBに反映...
-
カレントレコードが無い事を判...
-
DataGridViewの、選択されてい...
-
Access でレコードセレクタが押...
-
JSPのNULLレコード表示について...
-
レコードが存在しなかった場合
-
サブフォームに新規レコードを...
-
vbからmdbのレコード削除
-
データセットのレコード更新が...
-
ACCESS VBA テーブルデータに...
-
ACCESSのフォームで複数レコー...
-
ワードの差込印刷で教えて下さ...
-
クラスモジュールを使ったレコ...
-
VB.netでmdbのレコードを取得
-
Line Inputで文字化け(助けて...
-
HTA上データをExcelへ転記する...
-
DataGridViewにてセル以外をク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
レコードが存在しなかった場合
-
DataGridViewの、選択されてい...
-
ADO VBA 実行時エラー3021
-
差し込み印刷のレコード数について
-
ACCESSで大量の更新を行うと「...
-
ファイル書込みで一行もしくは...
-
カレントレコードが無い事を判...
-
ワードの差込印刷で教えて下さ...
-
アクセスでレポートの1印刷内...
-
DataGridViewの内容をDBに反映...
-
[VBA] ADOの Clone と AddNew
-
固有レコード識別子の選択とは
-
JSPのNULLレコード表示について...
-
Access を×ボタンで閉じ...
-
サブフォームに新規レコードを...
-
データセットのレコード更新が...
-
サブレンジ分割されたNDB(富士...
-
レコードセット(ADO.Recordset)...
-
DataGridViewにてセル以外をク...
-
COBOLでのランダムアクセス
おすすめ情報