タイトル : Re^2: 該当レコードが存在しない場合にRecordcount=1と返される 投稿日 : 2014/07/10(Thu) 22:41 投稿者 : 山田
魔界の仮面弁士様、ご回答有難うございます。 > > そもそもRecordcountを判断材料にするのは間違っているのか? > 基本的には、RecordCount プロパティを使用するべきではありません。 了解です。根本的な間違いをしておりました。 > ここで具体的な理由について言及することは避けますが、ざっくり言えば > レコードの存在確認なら EOF プロパティを用いるべきですし、 > 総件数を求めるなら、COUNT 集計関数を用いる方が望ましいです。 hogeの中での最大値を取得するのが目的でした。 その為に 0<Recordcount であれば.Fields(0).Valueを覗くつもりでした。 結果、IsNull(.Fields(0).Value)で判定してみました。 > 今回は、『集計関数』を使っているため、集計対象のデータが 0 件であっても、 > 集計結果のレコードは生まれることになります。 言われてみれば仰るとおりですね!結果レコードが格納されるレコードですものね! > 『 HAVING MAX(hoge) IS NOT NULL 』を加えてみて下さい。 > 今度は .RecordCount が 1 を返さなくなるでしょうし、また、 > .Fields(0).Value から値が返されることも無くなるはずです。 確かに、HAVING〜を加えると、.Recordcount=0となり、 .Fields(0).Valueには格納されなくなりました! 求めるべきはhoge中の最大値。昔の私はMAXすら使わずに恥ずかしいコードを書いております… 「プログラムは思った通りに動かない。書いた通りに動く。」という言葉が思い出されました。 ありがとうございます。 |