• ベストアンサー

Access レポート オーバーフローとデータ型の不一致

レポートでグループ化したフッターに平均を求めるためにAvg関数で 平均を求めようとしたのですが、オーバーフローやデータ型の不一致が 発生してしまい平均を求めることが出来ません。 (Access2003) クエリでの計算時に#エラーが発生しているのと平均する内容にNULL値が含まれるのが原因だと思いますが、 どのような対処をすればよいでしょうか? #エラーに関しては0/0が原因だと思うので計算対象の0をNULLにすればよいですが NULLだとデータ型の不一致が発生してしまうのですかね? 平均する内容はレコードすべてがNULLの場合や#エラーが含まれる場合があります。

  • sskj
  • お礼率24% (75/303)

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

  • ベストアンサー
noname#140971
noname#140971
回答No.1

tab1: ID__区分__値 01_____1__\100 02_____1__\200 03_____1 [イミディエイト] ? DBAvg("値", "tab1", "区分=1") 150 ? DBAvg("Nz(値)", "tab1", "区分=1") 100 ですから、通常はエラーではなく150と異なった平均値で表示されると思いますが・・・。 実際、レポートウィザードで[区分フッター]に平均を生成すると、 =Avg([値]) となり 150 と表示されます。 =Avg(Nz([値])) で 100 と正しく表示されます。 >オーバーフローやデータ型の不一致が発生してしまい平均を求めることが出来ません。 となると、起きている現象が今一つ推測しかねます。

sskj
質問者

お礼

ありがとうございます。 オーバーフロー及びデータ型の不一致に関しては自己解決しました。 データ型の不一致に関しては♯エラーが文字として扱われているためと 実際にデータ型が間違っている箇所もありました。 オーバーフローに関しては♯エラーをNULL値に置き換えることによって 解消されました。

その他の回答 (1)

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.2

>クエリでの計算時に#エラーが発生しているのと >平均する内容にNULL値が含まれるのが原因だと思いますが、 エラーは中身を見ないとなんともいえませんが Nullは関係ありません。集計関数はNullを除いて集計してくれます >平均する内容はレコードすべてがNULLの場合や#エラーが含まれる場合があります。 全てがNullの場合はNullになります エラーがある場合はエラーになります エラーは出なくなるようにするしかないですね

sskj
質問者

お礼

ありがとうございます。 オーバーフロー及びデータ型の不一致に関しては自己解決しました。 集計関数はNull値を無視するのですか、知りませんでした。 オーバーフローに関しては♯エラーをNULL値にしたところ 解消されました。

関連するQ&A

  • なぜオーバーフローになるのでしょうか。

    VB6です。 こんな現象初めてでびっくりしました。 変数A、h、mはLong型です。 A = 9 * 3600 + 54 * 60 ->オーバーフロー発生 A = 35640 ->オーバーフローにならない h = 9 : m = 54 A = h * 3600 + m * 60 ->オーバーフローにならない 変数ではなく、実数で計算するとオーバーフローする意味がわかりません。また、計算結果を直接実数で代入した場合、なぜオーバーフローは 発生しないのかも意味不明です・・・ なぜ、オーバーフローが発生したりしなかったりするのでしょうか。

  • 不一致クエリでnullまで抽出されてしまいます

    質問です。 現在、accessにて不一致クエリを使用し、テーブルAをチェックし、 マスタテーブルに無い情報が書かれてしまっているフィールドがある場合 抽出して確認をする、というクエリを作りたいと考えています。 不一致クエリにて自動で入る「is null」を使用すると マスタテーブルに無い事が書いてあるレコードは抽出するのですが (逆になぜis nullで相違するレコードが抽出されるのか理解に苦しんでもいるのですが) is nullですので、nullのレコードも抽出されてしまいます。 抽出条件として、マスタテーブルと相違するもの&nullは抽出しない、としたいのですがお知恵を拝借出来ませんでしょうか。 よろしくお願いいたします。

  • ACCESS2010 データ一致でテキストを返す

    ACCESS2010でクエリー内の計算式について質問です。 クエリー内にフィールド1とフィールド2があり、この中のデータの組み合わせによって別のフィールドにテキストのコメントを返すための計算式を教えていたたきたいのです。 例:同一のレコードで、フィールド1が”A”でフィールド2が”1”であった場合、フィールド3に”当たり”といったテキストを返したい。 そのほかの組み合わせであった場合はブランクのままとするか、そのパターンによってテキストを変えたいのです。(Bと2の組み合わせではずれ、Cと3の組み合わせでもう一回、それ以外はブランク) フィールド1 フィールド2 フィールド3    A      1     当たり    B      2     はずれ    C      3     もう一回 IIf 関数を使ってチャレンジしてみたのですが、エラーが出てうまくいきません。 一つだけのフィールドを対象とした場合、下記の計算式で表示されるのですが、複数となった場合うまくいきません。 式1: IIf([フィールド1]="A","当たり") よろしくお願いします。

  • ACCESS抽出条件でデータ型が一致しません

    ACCESSのクエリで抽出条件に"20140106"と入力しますと下記のエラーメッセージが出てきます。 教えて頂けないでしょうか? 抽出条件でデータ型が一致しません。(Error 3464) Find 系メソッドの抽出条件式で、比較する値のデータ型がフィールドのデータ型と一致していません。

  • Accessでデータシートに同じデータがいくつもでてしまいます。

    こんにちは。 今、Accessであるデータベースを作っているんですが、 テーブルを作って、リレーションをはって、クエリを実行 すると、データシートに同じデータがいくつも出てきて しまいます。 例えば、Aさんのレコードが3つ表示されてしまうんです。 5人分のデータが入っているとすると、3倍の15のレコードが出てしまうんですね・・・。 Accessの勉強をはじめて1ヶ月位の私には、何がなんだか 意味不明です。 こういうエラーの原因は何にあるのでしょうか??? どなたか、教えてください。

  • 【access】複数のフィールドの不一致クエリ

    アクセスはまったくのド素人です。 OS:WindowsXP バージョンは2000です。 A,Bのテーブルがあり、それぞれのレコードは以下の通りです。 A a b c 1 4 7 2 5 8 3 6 9 5 6 8   B  d e f 5 6 8 1 4 7 2 1 3 4 4 6 d,e,fのフィールドがa,b,cと一致しないレコード(ここでは『2 12 13』と『2 1 3』)をクエリで抜き出したい時はどうすればよいでしょうか? d,e,fに『Is Null』を指定して不一致クエリを実行しても思うように行きませんでした。

  • ACCESSのレポートでグラフを作成(2)

    こんにちは、以前質問したのですが まだできずにいます。 どなたか力を貸してください。よろしくお願いします。 --------------------------- レポート作成で苦戦しておりまして、質問させてください。 クエリ1 商品、品番、売上額、月を集計しパラメータで品番を入力するとその商品のデータだけを表示するようにしています。 クエリ2 クエリ1と同じに内容ですがパラメータの設定をしていません。 (1)レポートでクエリ1を使用してパラメータで指定した商品だけのデータを詳細に一覧表表示し(月別の売上)、フッターでそれをグラフ化(プロパティでクエリ2を指定)しているのですが、一覧表とグラフが一致しません。 (2)グラフのプロパティでクエリ1を指定するとレポートを開くときにパラメーターで品番入力を2回行うことになりスムーズではなくなります。 今までは(1)の方法でうまくグラフ表示できていたのですが今回は何度やってもうまくいきません。 何かよい方法はないでしょうか?

  • ACCESSのレポートでグラフ作成

    こんばんは。 レポート作成で苦戦しておりまして、質問させてください。 クエリ1 商品、品番、売上額、月を集計しパラメータで品番を入力するとその商品のデータだけを表示するようにしています。 クエリ2 クエリ1と同じに内容ですがパラメータの設定をしていません。 (1)レポートでクエリ1を使用してパラメータで指定した商品だけのデータを詳細に一覧表表示し(月別の売上)、フッターでそれをグラフ化(プロパティでクエリ2を指定)しているのですが、一覧表とグラフが一致しません。 (2)グラフのプロパティでクエリ1を指定するとレポートを開くときにパラメーターで品番入力を2回行うことになりスムーズではなくなります。 今までは(1)の方法でうまくグラフ表示できていたのですが今回は何度やってもうまくいきません。 何かよい方法はないでしょうか?

  • アクセスのデータ取り込みについて

    UTF8のテキストデータを取り込みする際 データが10フィールドあるとします。 1レコード目の1フィールド目から9フィールド目までデータがあり、10フィールド目はNULL 2レコード目の1フィールド目から10フィールド目までデータがある場合 テキストデータ自体9フィールド目までしか取り込めない場合がございます。 こういったレコード終端がNULLの場合とNULLでない場合に取り込む際 注意することはありますでしょうか?? 因みにデータを取り込む際、文字コードを指定しフィールドの データ型を変更する際 存在するフィールドに比べアクセス上ではフィールド数が足らなくなるのですが・・・ どうぞよろしくお願いします。

  • 選択クエリを基に不一致クエリを作成したけれど...

    識者の力をお借りしたく質問いたします。 質問ページから不一致クエリに関する内容を参考に、ある不一致クエリを作成しています。 しかし、出来るはずの方法で結果が正しく表示されず途方にくれています。 処理の内容としては、あるクエリのフィールドを参考に不一致クエリで差分レコードを抽出したいというものです。 通常不一致クエリはテーブルの主キーを基に作成するものと私は理解しているのですが、今回の処理では基のテーブルに主キーが無く、(作成できない事情があり)クエリで無理矢理主キーもどきのものを作りました。 クエリで作成したのは、数字6桁(最大で)の後ろにチェックディジットとしてアルファベット1文字を追加した計7文字のフィールドです。 例:131401A 不一致を抽出したい基となる2つのテーブルに対しこのクエリを作成しました。 この2つのクエリから不一致クエリで差分を抽出し、基のテーブルに追加クエリで追加したいのですが、どうやっても不一致項目が表示されません。 根本的にクエリからの不一致クエリは作成できないのでしょうか? よろしくお願いいたします。 ■状況 テーブル1/テーブル2(基となるテーブル、主キー無し) クエリ1/クエリ2(テーブル1/テーブル2のレコードにコードを追加するクエリ) コード1/コード2(クエリ1/クエリ2で作成したコード)例:131401A 不一致クエリ テーブル2 → テーブル1 (リレーションシップ) コード2 条件:Not Null ※テーブル2の方が最新レコードが入っているので、テーブル2の差分レコードをテーブル1に追加したいというのが基本的な内容です。 よろしくお願いいたします。

専門家に質問してみよう