• ベストアンサー

Acsess アクセス のクエリでオーバーフローしてしまいます。

かなり初歩的な質問かと大変恐縮ですが、ご指南いただけますと幸いです。 クエリで計算したフィールド名[割合]の値を、予め用意した評価テーブルを用い Between [ ] And [ ]で評価しようとしたのですが、「オーバーフロー」との エラーがでてしまい評価ができない。。 ―――――――――――――――――――――――――――――――――――――――――――― (1)フィールド名割合:([Aフィールド])/([Bフィールド]) ででた結果が以下。 [割合] 0.727272727272727 0.8 #Error 0.333333333333333 0.818181818181818 0.692307692307692 1 #Error ―――――――――――――――――――――――――――――――――――――――――――― (2)上記で出た割合数値を以下の式で評価した際、「オーバーフロー」とのエラーがでてしまい 評価ができない状態です。 Between [最小ランク数値] And [最大ランク数値] ※以下評価テーブルは[割合]フィールドの隣に[ランク評価]とのフィールド名であります。 ID 保留率ランク  最大ランク数値   最小ランク数値 1   A         0    0.5 2   B         0.5    0.6 3   C         0.6    0.7 4   D         0.7    0.8 5   E         0.8    3 6   対象外 ※対象外の数値は空欄としております。 ―――――――――――――――――――――――――――――――――――――――――――― おそらく(1)の結果で「#Error」がはいっているため評価ができない(オーバーフロー)となるかと 思われますが、どうにも解決ができません。 ご教示くださいますと幸いです。

  • E-7MX
  • お礼率46% (15/32)

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.2

考えられるエラーは数値以外のフィールドでの演算とゼロでの割り算ですね。 フィールド名 割合:Iif(Nz([Bフィールド]),Nz([Aフィールド])/Nz([Bフィールド]),1) 

E-7MX
質問者

お礼

完璧です!!早速、本当にありがとうございました!

その他の回答 (1)

  • tkun62
  • ベストアンサー率23% (37/159)
回答No.1

#Errorの原因は判っているのですか?

E-7MX
質問者

お礼

上記、回答者:mshr1962 さまの回答にて解決 致しました。 コメントをいただき、ありがとうございました。

関連するQ&A

  • Access 抽出クエリーについての条件

    先の投稿に重複しますが、 それぞれ異なるテーブルについて、 クエリーで、、 Between #5:00# And #19:00# Between 500 And 1900 上記の方法等で同じ数値ではなく、 期間に幅をもたせて一致としそれぞれの 一致データを抽出するクエリーは つくれますか? もちろん抽出対象のテーブル、列はそれぞれ同じ書式です。 > between関数を使って、 フィールドのデータ型が日付/時刻型の場合 抽出条件欄に、 > 5:00から19:00を抽出したい、 Between #5:00# And #19:00# > 5:00から25:00を抽出したい、 Between #5:00# And #23:59# OR Between #0:00# And #1:00# Access の日付/時刻型では、25:00 というような表現はできないので、上記のように分割することになります。 > また上記がテキストだった場合も、 > 500から1900を抽出したい フィールドがテキスト型の場合、テキスト比較になり数値比較とは異なる抽出結果になるので、 フィールドに Val([テキスト型フィールド]) と式を設定して数値型に変換します。このの抽出条件に、 Between 500 And 1900 と設定します。 通報する

  • アクセスのbetween

    アクセスでbetween ~ and ~ 演算をするとき、数値型のフィールドに対し文字で”3”などと指定しても、エラーではなくそれなしかの回答が出てきてしまいます ”3”はどのような数値と解釈しているのかお分かりの方いらっしゃらないでしょうか?

  • クエリの抽出条件

    アクセス2003/2007のクエリの抽出条件について テーブル名:履歴 フィールド1:名前 フィールド2:履歴No フィールド3:履歴の内容 フィールド4:日付 とあります。 履歴Noは0の人、1~3まである人、1~10まである人と様々。 指定した名前毎に「履歴Noの最大値から3レコードを抽出してレポートにしたいです。 下記のようにしてみました。 Between Val(DMax("履歴No","履歴"))-2 And Val(DMax("履歴No","履歴")) これでは抽出出来ませんでした。 試しに Between 3-2 And DMax("履歴No","履歴") と直接引き算の式を入れると抽出されました。 ※Valはあってもなくても同じでした。 「履歴Noの最大値から3レコードを抽出」をうまく出来る方法は無いでしょうか。 よろしくお願いします。

  • アクセスのクエリで困ってます。

    契約日から6ヶ月めの日付をだして、さらにその日を検索したいんですが・・・ テーブルに契約日のデータがあります。 クエリで、    フィールドに6ヶ月: DateSerial(Year([竣工金入金日]),Month([竣工金入金日])+7,Day([竣工金入金日]))    抽出条件にBetween [開始日] And [最終日] としました。 抽出条件を入れなければ正常に値がでましたが、 抽出条件を入れると  ”式が正しく入力されていないか、複雑すぎるために評価出来ません。たとえば、数式に複雑な要素が多すぎます。変数に式の一部を割り当て、式を簡単にして下さい。” という、エラーメッセージが出てしまいます。 解消する方法を教えて下さい。

  • [Access2000]アクションクエリでお尋ねします。

    テーブル名は Table フィールド名は Filed で Filed 内には abc_uvw、def_xyz のように "_" で仕切られた文字列がはいっています。 そこで、次のようなクエリで "_"より後ろの値でFeildを書き換えようと思うのですが、 もともとのFieldの値がNULLである場合、その部分だけエラーになります。それ以外の値のはいっている部分に関してはエラーにならずに処理されますが、このエラーを回避する方法はないのでしょうか? UPDATE Table SET Field = Mid([Field],InStr(1,[Field],"_")+1,Len([Field])-InStr(1,[Field],"_"));

  • Accessのクエリーで、mymax関数を使ったら

    1)Accessのクエリーで、1レコード内の複数フィールドの数値の最大値を表示させるため、「mymax」関数を使用しました。 その結果が数値型でなくテキスト型で表示されてしまうため、分析に不都合で 2)テーブル作成クエリーにしてテーブルにしてから、テーブルデザインで数値型に変更し、 3)それを抽出クエリーで並べ替えなどデータ分析に使用しています。 以上のように、3段階の手順をふまず、 1)の時点で、最大値を、数値型で吐き出させることはできますでしょうか。 バージョンはACCESS97です。 どうぞ、よろしくお願いします。

  • ACCESS VBAのDSUMを使ってUPDATE

    よろしくお願いします。 通貨型のACCESSデータベースのレコードにDSUMを使ったUPDATE文で更新をしたいのですが、 うまくいきません。 イミディエイトウィンドウで出力したSQLをACCESSのクエリーで実行したところ、 "1個のフィールドで型変換エラー"となります。 実行したSQLは下記のようなものです。 UPDATE テーブル名 SET フィールド名 = DSUM(フィールド名,"テーブル名",コードI = '0000' AND コードII BETWEEN '5110' AND '5410') WHERE コードI = '0000' AND コードII = '5980'; 因みに、更新元テーブルと更新先テーブルは同じテーブルです。 行いたいのは、コードII列の「5110」~「5410」の合計値を、「5980」の場所にUPDATEを させようとしてます。 よろしくお願いします。

  • Access VBAにて Betweenの書き方

    AccessのVBAにて、データを更新したいのですが、 mySQL = "UPDATE テーブル名 SET フィールド名 = '" & kihyouCD & "' where 数量 between 1 and 60;" 上記のBetweenの部分に変数を代入したいのですが、 Dim Kaishi,Syuryo as Integer Kaishi = Me!開始 Syuryo = Me!終了 mySQL = "UPDATE テーブル名 SET フィールド名 = '" & kihyouCD & "' where 数量 between Kaishi and Syuryo;" これだとうまくいきません。 書き方が間違っていると思うのですが・・・ よろしくお願いします。

  • ACCESSのクエリ計算

    Access2003でクエリで特定条件に一致するIDを出して 今度はそのそれぞれのIDから+100(IDが2なら2~102の範囲でというように)の元のテーブルの 値の中からフィールド1が5以上の条件に一致するものの最小のIDをもとめたいと思ってます。 始めたばかりの初心者です DMINでできるのかなと思って下記式にしてみたのですが パラメーターエラーでうまくいかなくて、、 DMin("[テーブル1].ID","[テーブル1]","[テーブル1].ID>=[クエリ1].ID&[ID]<[クエリ1].ID+100&[テーブル1]フィールド2>5")

  • ACCESSのクエリで関数を使うときテーブルを指定しないのはなぜ?

    問題集を解いています。 クエリで質問です。 [学生テーブル]から[クラス]フィールドを以下の様にIIF関数をつかってデザイングリッドに追加しています。 フィールド クラス名:IIF([クラス]=1,"A1",B1") テーブル  学生テーブル これで実行すると構文エラーになるのですが、問題集の答えをみると テーブルは空白のままです。 なぜテーブルにテーブル名を指定しないのですか?

専門家に質問してみよう