解決済み

Access2000で入力されていない値で出るエラーを回避したい。

  • すぐに回答を!
  • 質問No.299581
  • 閲覧数158
  • ありがとう数3
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 66% (871/1309)

Ac2000です。

「F_年度別」というフォームに
・データ年度
・データ種類
・Aの値段
・Bの値段
・Cの値段
・Dの値段
という項目があり、これらに入力をして、コマンドボタンをクリックすると、
「T_年度別」というテーブルが作成されるようになっています。
この「T_年度別」と「T_会社ID」を使って「Q_年度別」というクエリを作成しました。
「T_年度別」
・データ年
・データ種類・
・ランク(上記のA~Dのこと)
・会社グループID
「T_会社ID」
・会社グループID
・会社グループ
(会社グループIDにリレーション)

「Q_年度別」はクロス集計クエリで、
・会社グループID   グループ化   行見出し
・会社グループ    グループ化    行見出し
・ランク         グループ化    列見出し
・データ種類     カウント       値
・データ種類     カウント       行見出し
となっています。

この「Q_年度別」をもとに「R_年度別」というレポートを作成しています。
手順自体は間違いではなく、ちゃんと合っていて、表示されるのですが、
ランクで、たとえば「D」の入力がなかった場合(A~Cしか該当がなかった場合)に
エラーになってしまうのです。
エラーは以下の通りです。
------------------------------------------------------------
実行時エラー:'3070';

'D'を有効なフィールド名、または式として認識できません。
------------------------------------------------------------

このエラーを回避し、スムーズに表示させるためにはどのようにしたらいいのでしょうか?

よろしくお願いします。

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

  • 回答No.1

ベストアンサー率 47% (77/163)

こんにちは。

以下の方法で回避できませんか?

1.「Q_年度別」のクロス集計結果の形のテーブルを作成する。
 「T_年度別集計」
 項目
 ・会社グループID
 ・会社グループ
 ・A
 ・B
 ・C
 ・D
 注意:A~Dまではちょっとあやふやです。
    実際のクロス集計の結果と合わせてください。

2.「T_年度別集計」のレコードを削除するクエリーを作成する。
 「Q_年度別集計_全削除」
3.「Q_年度別」をクロス集計クエリーから追加クエリーに変更し、追加先に
 「T_年度別集計」を指定する。
4.「R_年度別」のレコードソースを「Q_年度別」から「T_年度別集計」に変更する。
5.実行の手順を
 「Q_年度別集計_全削除」クエリー実行
 「Q_年度別」クエリー実行
 「R_年度別」レポートを開く

つまり、想定されるクロス集計結果の項目を先にテーブルとして作っておけば、
クロス集計に値が無くても項目はあるのでレポート等ではエラーが発生しない
と言うわけです。

こんなので分かりますか?

ではでは・・・
お礼コメント
KODAMAR

お礼率 66% (871/1309)

早速の回答ありがとうございます。

大体の流れは理解できました。

>3.「Q_年度別」をクロス集計クエリーから追加クエリーに変更し、追加先に
> 「T_年度別集計」を指定する。

とありますが、これはいったいどのようにしたら・・・?
クロス集計クエリから追加クエリにすると、カウントの数がおかしくなってしまうのです。

クロス集計の結果は以下のような感じになっています。
--------------------------------------------------
会社グループID | 会社グループ | データ種類のカウント | <> | A | B | C |
   120      | ○○      |     4         |  4   |   |   |   |
   130      | □□      |     40        |      | 3 | 5 | 32 |
   170      | △△      |     1          |     | 1 |   |   |

--------------------------------------------------

こちらのやり方が違うのだとは思うのですが、わからないので、
申し訳ありませんが、もう一度よろしくお願いします。
投稿日時 - 2002-06-25 10:29:42
感謝経済、優待交換9月20日スタート

その他の回答 (全1件)

  • 回答No.2

ベストアンサー率 47% (77/163)

すっすいませ~ん!
ごめんなさい!間違っていました。

>3.「Q_年度別」をクロス集計クエリーから追加クエリーに変更し、追加先に
> 「T_年度別集計」を指定する。

のところですが、
「Q_年度別」のクロス集計クエリーはそのままで、「Q_年度別」を表示する
クエリーを作っていただき、そのクエリーを追加クエリーにしてください。

クエリー「新規作成」→「デザインビュー」を選択→「テーブルの表示:Q_年度別」
を選択→「フィールド」に「Q_年度別.*」、クエリーの種類「追加」に変更→
追加先に「T_年度別集計」
としてください。
お礼コメント
KODAMAR

お礼率 66% (871/1309)

再び回答ありがとうございます。

言われた通りのことを私もなんとなくながらやってみたら
できているようです。
ですので、この方法で行こうと思います。
ありがとうございました。
投稿日時 - 2002-06-25 13:02:38
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

特集


より良い社会へ。感謝経済プロジェクト始動

ピックアップ

ページ先頭へ