• ベストアンサー

データ型について

クエリで 抽出をしようとビューで確認をすると 抽出条件でデータ型が一致しません と出ます このまま OK を押すと 全フィールドのデータが“#Name?”に なってしまいます どのように データ型を一致させたら良いのでしょうか?  日付の更新で テーブル1に氏名 Tel などが入り テーブル2に契約年 と 契約開始日とあります クエリに 契約終了日のフィールドをつくり さらに 2ヶ月前で 更新年と更新月のフィールドを作り この時点では データを確認することができるのですが、 更新年と更新月に パラメータを入れると 先ほどのエラーが出てきます どのように データ型を合わせた良いのでしょうか 教えてください 宜しくお願いします。

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

  • ベストアンサー
  • bobble
  • ベストアンサー率34% (111/323)
回答No.2

こんにちわ。むむむですね。 私は達人でもないので、何とも言えないのですが・・・ こちらでaccessでローカルテーブルを作成した場合とオラクルにテーブルを作成し そのテーブルをaccessにリンクした場合の両方テストして見たんですが、 どちらにしてもうまくいきました。 後、私がアドバイスできそうな事と言えば、 データの件数って結構多いんでしょうか? パラメータを入れずにビューを開いた状態で計算式を入れている項目(更新月や更新年)で、どこかのデータが計算できずにエラーになっている所がないですかねえ。 例えば、契約開始日に変な値が入っている為に計算できずに更新年が計算されずに エラー表示されているとかです。 エラーになっている時にパラメータを入れてフィルタリングするとエラーになったような気がするんですが・・・・ お力添えできなくてすいません。

minamihe
質問者

お礼

ありがとうございます。 解決しました。 やはり データでエラーになっているものがあって 出て来れなかったようです。 エラーになってると抽出できなくなるんですね、学びました。 かなりグルグルになっていたので、ありがとうございます。

その他の回答 (2)

回答No.3

こんにちは これはほとんど勘ですが・・・ DateAdd関数って戻り値の西暦年が2桁になってしまうんですよね。 ですので Year(DateAdd("m",-2,(DateAdd("yyyy",([保守年数]),[保守契約開始日]))))  の二つ目のDateAddの前に Year(DateAdd("m",-2,(format(DateAdd("yyyy",([保守年数]),[保守契約開始日]),"yyyy/mm/dd"))) とすればどうでしょうか? これでも“#Name?”エラーになるなら 保守年数]は数値データか? [保守契約開始日]は日付の形式になっているか? が怪しいところですが・・・

minamihe
質問者

お礼

ありがとうございます。 今回はbobblさんの方法で解決しました。 また何かあったら宜しくお願いします。

  • bobble
  • ベストアンサー率34% (111/323)
回答No.1

こんにちわ。 ちょっと判らない部分があるので教えて下さい。 >さらに 2ヶ月前で 更新年と更新月のフィールドを作り とありますが、更新年と更新月ってテーブル2にある項目なんですか? それともテーブルにないクエリで新たに作成している項目ですか? 二ヶ月前という言葉が判らないんです(笑)

minamihe
質問者

補足

内容が伝わらず すみません お返事ありがとうございます 更新年と更新月はテーブルにはなく クエリで新たに作成しているものです 更新年: Year(DateAdd("m",-2,(DateAdd("yyyy",([保守年数]),[保守契約開始日])))) といった形で入力しています  更新月も同じです 契約年数と開始日を使ってクエリに終了日を作り その終了日に対して 2ヶ月前に更新のお知らせをしたいので 抽出を考え 今こういった形でクエリをつくっているのですが、 作成して 普通に見る分には可能なのですが、 パラメータを入れて 2005年5月分として抽出をしたりすると 式が複雑過ぎるとか   データ型が一致しないなどの エラーが出てしまい    かなり 困っています  宜しくお願いします

関連するQ&A