タイトル : Re^3: IF文で判断ミス 投稿日 : 2009/05/15(Fri) 10:00 投稿者 : 魔界の仮面弁士
> ※実際のソースをコピペはしていません。 > 見て頂く方にコピペでは分かり辛いですし、 「現象を再現可能」な「最低限のコード」を見せて頂けないでしょうか。 現象の再現しない、しかもコンパイルの通らないコードを提示されても、 第三者が問題箇所を指摘するのは難しいです。文法違反の指摘ならば容易ですが。 > INSDATARS!Min a はレコードセットですので あれ? Recordset なのは「INSDATARS」であって、「INSDATARS!Min a」ではありませんよね。 ADO 2.5 の階層型レコードセットや、DAO 12.0 の複数値型フィールドを使っている場合は、 フィールド値が別の子レコードセットを返す事もありえますが、今回の件では そうでは無いみたいですし。 それに、Min と a の間の空白も、VB 構文としては文法エラーとして扱われるでしょう。 INSDATARS![Min a].Value や INSDATARS.Fields("Min a").Value といった 記述ならばできますが……。 > ソースの貼り付けだけではエラーになります。 『見て頂く方にコピペでは分かり辛いですし』とありましたが、このように 文法エラーなソースを見て、そこから元のコードを推測するというのは、 元のソースを貼り付けられる以上に難しいです。 もし、コードでの掲載ができないのであれば、現在の判定フローを日本語で 説明してみては如何でしょうか? そうすれば、ロジックが間違っているのか、 それともそのロジックを VB に書き起こす際にミスがあったのかを切り分けられる人が 居るかもしれません。 それと、MSFlexGrid1.TextMatrix が返す値は、数値では無く文字列です。 文字列と数値を型変換する事無く比較する事は避け、数値型/文字列型の いずれかに統一してから比較するようにした方が良いでしょう。型を意識しておかないと、 「"2" < 10」… True 「"2" < "10"」… False であるといった、分かりにくい問題を生む事になります。 |