• ベストアンサー

Access 入力フォームのエラーについて

単票フォームを作成したのですが、抽出条件のデータ型が違うとエラーがでてしまいます。 どの抽出条件が不味いのかが分からないのですが、こういった場合メインフォームのエラーなのでしょうか? また特定する方法はないでしょうか? (エラーが表示される前までは集計内容、サブフォームともに正常に動作しておりますが、 エラーの後はすべてのデータが表示さらず、集計ボックスもエラーと表示されています。) ://upload.jpn.ph/img/u22359.jpg

質問者が選んだベストアンサー

  • ベストアンサー
  • DexMachina
  • ベストアンサー率73% (1287/1744)
回答No.1

> こういった場合メインフォームのエラーなのでしょうか? 「抽出条件のデータ型が違う」ということでしたら、レコードソース(たぶんクエリ)に問題が ある(又は発生した)ものと思います。 思い当たるのは・・・直接の原因となる式は異なると思いますが、以前のご質問と同様に、 演算コントロール絡みではないか、ということです。 http://oshiete1.goo.ne.jp/qa4041631.html 例えば、  ・文字列しか指定できない引数(Left関数の第1引数)に対し、抽出結果の中にNullが   含まれるものがあったとか、  ・正の数しか指定できない引数(InStr関数の第1引数)に対し、結果が負となる式を   入れていた といった場合、上記回答でも述べましたが、「フィールドの結合」や「並べ替え」、 「絞り込み」などを行うと「データ型が一致しない」エラーが発生します。 こうなると、原因になったフィールド・レコードに関係なく、全レコードの全フィールドが、 ご質問の画像と同様に、エラー表示になります。 > 特定する方法はないでしょうか? 原因がフォームかクエリかを切り分けるには、クエリのみで同様の抽出を行ったときに エラーが発生するかを見る、しかないように思います。 これで、クエリが原因とわかったら、  a)どんな抽出条件の場合にエラーが発生し、どの条件ならエラーが発生しないかを   トライ&エラーで地道に探すか、  b)クエリで使用している式などをもう一度見直して、以前の経験から原因となって   いそうなものにあたりをつける、 というのが私のやり方です。 ・・・今日の業務中に、私も全く同じエラーを引き起こして、「b)」で原因を把握したばかり ですが(汗)

sskj
質問者

お礼

原因を探したところ入力ミス原因がありました。 ありがとうございました。

sskj
質問者

補足

ありがとうございます。 Left関数は使っていますがNULLが原因かよく分からないのですが 以下に原因があることが分かりました。 決算期を-6ヶ月したものを年度としてこちらで扱っているので、以下の関数で変換してます。 決算期 1810→年度 2006年 売上年度: Format(DateAdd("m",-6,CDate("H" & Left([決算期],2) & "年" & Right([決算期],2) & "月")),"yyyy" & "年") これに抽出条件でFormat(DateAdd("yyyy",-2,Date()),"yyyy\年")または2006年と指定したのですが、 この抽出条件を指定するとエラーが起きるようです。同様に2006年にフィルタを掛けてもエラーがでます。 「抽出条件でデータ型が一致しません」 となるとどこかで決算期の入力をミスしているということですよね? それともこの関数に抽出条件を掛ける事が不味いということはあるのでしょうか?

関連するQ&A

専門家に質問してみよう