• ベストアンサー

演算結果から抽出できない

生徒管理をするために、生年月日から学年を計算しようと思い http://jphagi.com/access/ota2003/3942.htm の笑心者さんのレスを参考に、クエリで作成しました。 学年は正しく計算できるようになったのですが、 そこから、学年を分けての抽出ができません。 たとえば 抽出条件に "中学校2年生"といれると、「抽出条件でデータ型が一致しません」とメッセージが出ます。 どのようにすれば、学年で抽出できるのでしょうか? access2003 OSはXPです。 ご教授よろしくお願いいたします。

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

  • ベストアンサー
  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.4

> クエリが表示されました。 データ(レコード)が表示されたのか、エラーが発生してデータ表示できなくてデザインビューとして表示されたのか。どちら? ※最も大事なことなのでもう一度確認しますよ。 検索条件を付けなければ(=Whereを加える以前の段階で)、「学年」「学年1」「学年2」「学年3」は表示されますか? 小学6年生や中学3年生などの結果でもかまいません。 Jokyoの変換が正しいのかどうか。 テーブル[生徒マスター]の列[生年月日]は、何の型で宣言してありますか?

h_shinon
質問者

補足

> クエリが表示されました。 データ(レコード)が表示されました。 >検索条件を付けなければ(=Whereを加える以前の段階で)、「学年」「学年1」「学年2」「学年3」は表示されますか?  抽出条件をしていなく、生年月日を入力している場合には、中学2年生等の学年が、正しく学年の列に表示されています。ちなみに生年月日を記入していない場合は、【#エラー】の表示が出ています。 >テーブル[生徒マスター]の列[生年月日]は、何の型で宣言してありますか? 【日付/時刻型】です。

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.3

#1です。 検索条件を付けなければ「学年」「学年1」「学年2」「学年3」は表示されますか? > FROM 生徒マスター; これだと検索条件が設定されてませんね。 SQLビューのままで最終行を以下の2行に書き換えてテストしてください。 FROM 生徒マスター where 学年 = "中学校2年生"; これでもエラーがでるなら、ユーザ定義関数[Jokyo]の戻り値が Stringになってないのかも。Function (中略) as Stringの部分。

h_shinon
質問者

補足

返事が遅くなり申し訳ありません。 書き換えてテストしたところ パラメータの入力 学年 とかいたウィンドウが開きました そこに「中学校2年生」としても、絞込みは行われずクエリが表示されました。

すると、全ての回答が全文表示されます。
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.2

>「抽出条件でデータ型が一致しません」とメッセージが出ます。 条件は"中学校2年生"なので文字型ですよね。 検索対象のフィールドにあるのが年齢(数値)で"中学校2年生"を参照表示とかしてませんか? そのぐらいしかデータ型の不一致は考えられないのですが... そうだとすると検索条件を14にして"中学校2年生"が抽出できるような気がします。

h_shinon
質問者

補足

Jokyo([生年月日])のフィールドの抽出条件に"中学校2年生"と入力しています。14にしても、同様のエラーがでます。 それが原因でしょうか? 何度もすみません。

すると、全ての回答が全文表示されます。
  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.1

そのクエリ、デザインビューで開いてSQLビューにして、コピペしてください。

h_shinon
質問者

補足

SELECT 生徒マスター.生徒名, 生徒マスター.生年月日, Jokyo([生年月日]) AS 学年, 生徒マスター.学年ID, 生徒マスター.郵便番号, 生徒マスター.住所1, 生徒マスター.住所2, 生徒マスター.住所3, 生徒マスター.住所4, 生徒マスター.保護者氏名, 生徒マスター.家族1, 生徒マスター.家族1生年月日, Jokyo([家族1生年月日]) AS 学年1, 生徒マスター.家族2, 生徒マスター.家族2生年月日, Jokyo([家族2生年月日]) AS 学年2, 生徒マスター.家族3, 生徒マスター.家族3生年月日, Jokyo([家族3生年月日]) AS 学年3, 生徒マスター.家族4, 生徒マスター.家族4生年月日, Jokyo([家族4生年月日]) AS 学年4 FROM 生徒マスター; で良いでしょうか?

すると、全ての回答が全文表示されます。

関連するQ&A