今、とあるレコードがテーブルにあるか否かを確認するために、SQLを投げているのですが。
そのテーブルはデータが大きすぎるゆえか。
例えば、
-----------------
select * from テーブルA where ID = 1234567
-----------------
というSQLを投げた場合、「レコードが大きすぎます。」というエラーが出てしまい、レコードを抽出することができないのです。
where句を使ってソートしているはずなのに、なぜ…という状況です。
また、この大きすぎるテーブルAは、ダブルクリックで開こうとした場合も「レコードが大きすぎます。」と、出てきてしまいます。
このような状況の時に、どのようなSQLを投げれば、目的のデータの抽出が可能でしょうか。
ご助言いただけますと幸いです。
よろしくお願い致します。
https://support.microsoft.com/ja-jp/office/access-%E3%81%AE%E4%B...
そのメッセージは、↑の「テーブル」の表の下から 2番目のレコードの文字数が何とかという制限に引っかかったやつだという気がします。
Access が古いバージョンだと 2000 だったかも。
そのテーブルが、別の RDB へのリンクじゃなくて、素直に Access のファイル内のテーブルだとしたら、ぼくだったら、以下のようなのを試してみると思います。
確実に短いと分かっているカラムだけを select する。
select ID from テーブルA where ID = 1234567
count を使ってみる。
select count(ID) as N from テーブルA where ID = 1234567
この場合には、record set のレコード数が必ず 1 になるので、record set から N の値を取得して、0 か 1以上か(ID だから 1よりも大きいことはないかもしれませんが)という判断をするように、プログラムの方も修正しなくちゃいけません。
途中の「別の RDB へのリンクじゃなくて」というのは、別の地雷があったような気がするから書いておきました。
ありがとうございます、こんな仕様があるんですね!
レコード内の文字数、4000ですか…開けず、エクスポートもできないので確認ができていません(;´Д`)
a-kuma3さんがおっしゃるように、カラムを指定すればうまく取得できました!
必要なカラムを書き出すようにします。
ありがとうございます。