次の方法で共有

Access2013 フォーム上のグラフについて

Anonymous
2014-06-03T10:36:11+00:00

お世話になります。

2003で使っていたサブフォームのピボットグラフが2013では無くなってしまったので、同じクエリを元にしたグラフコントロールに置き換えたいのですがうまく描画してくれません。どなたかアドバイス頂けないでしょうか。

法人顧客の出張を取り扱う仕事で、顧客毎の取り扱い規定をまとめた「企業リスト」テーブルが元のクエリをソースに、営業担当者をコンボで選ぶと情報が表示されるメインフォームに、サブフォームで昨年度・今年度の取り扱い実績を月毎に出張方面別の積み上げ棒グラフにしています。

グラフの元データは「出発リスト」というテーブルを元にしたクエリで、抽出条件として[会社名]フィールドに上記メインフォームの[社名]フィールドのレコードを対象に、

「Like "*" & [forms]![企業リストフォーム]![社名] & "*"」、

また、[出発日]フィールドには今年度の抽出条件として、

「Between DateSerial(Year(Date())-IIf(Month(Date())<4,2,1),4,1) And DateSerial(Year(Date())-IIf(Month(Date())<4,1,0),3,31)」

としてあります。

この2つの抽出条件をはずすと全期間・全企業の月毎・方面毎の積み上げグラフが描画されるのですが、何れか一方でも入れると真っ白のままです。

企業毎のデータを今年度・昨年度の2つのグラフに書き分けたいので、条件抜きでは意味を成しません。

どこがいけないのでしょう。ご教示頂ければ幸いです。

Microsoft 365 と Office | アクセス | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

15 件の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2014-06-05T14:48:24+00:00

    MukkuMukuです。

    クエリなら意図通りの抽出がされることが前提の話です。

    また、抽出条件があることについては問題はなく、その内容により事象は発生します。

    レコードソースが設定できるピボットグラフ フォームではなく埋め込まれた OLE オブジェクトなので手段が異なるのです。

    この件での登場人物は3名

    • Access
    • データベースエンジン(ACE)
    • Microsoft Graph

    です。で、それぞれが別の役割を持ってます。

    グラフ ウィザードでグラフ コントロールを設定するとき、テーブルもしくはクエリを基にしてMicrosoft Graph が グラフを描画するための SQL が作成され、コントロールのRow Source/値集合ソース プロパティに設定されます。ウィザードを使用しない場合、適するクエリなどを作成しプロパティに設定します。以降、Microsoft Graph はこの SQL を基にデータを問合せグラフを描画します。

    ここで問題になるのが、クエリに使用している [forms]![企業リストフォーム]![社名] というパラメータです。該当する パラメータ を持つ Access オブジェクトを操作するとき、Accessであればプロンプトを表示するなどある程度適切に捌いてくれますが、Microsoft Graphのグラフ描画には Access は関与しませんのでその解決ができず、結果的にグラフの描画は行われないことが起きます。 [forms]![企業リストフォーム]![社名] に関するアラートダイアログが表示されるはずなのですが、この件について情報がないのは不思議に思っています。

    話は戻ります。Microsoft Graph は 値集合ソースに設定された SQL を ACE に問い合わせているようです。これは表示されるアラートから判断しています。そして、 ACE は [forms]![企業リストフォーム]![社名] が何のことかわかりません。[forms]![企業リストフォーム]![社名] という表現は Access しかわからない独自のものだから。

    解決の方針としてはいくつかありそうで、Microsoft Graph 15.0 Object Library を参照してコーディングしてもできそうなのだけど、もっとも簡単かなと思うのは、Row Source/値集合ソース プロパティを意図する契機で変更することです。

    変更点は、

    1. ベースとしているクエリから パラメータを使用する抽出条件を削除
    2. Row Source/値集合ソース プロパティに代入するSQLに抽出条件を追加

    です。2は [forms]![企業リストフォーム]![社名] が値に読み替えられるSQL文字列を作成してプロパティに代入。ここは VBA を使うことになります。

    以上

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2014-06-05T03:05:16+00:00

    MukkuMuku様

    書き込みありがとうございます。

    ユーザーがダイアログに条件を入力する様な「パラメータクエリ」になっている訳ではありませんが、

    フォームのコンボボックスの値を抽出条件にしています。2003の時はこれでピボットグラフを描画し

    ていましたが、2013ではピボットでなくただのグラフになってしまいました。クエリの条件をはずせば

    2013でも描画しますので、或いは抽出条件を設定したクエリはソースに出来ないのかも知れません。

    果たしてそうなのでしょうか?

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2014-06-04T13:45:58+00:00

    MukkuMukuです。

    パラメータクエリがグラフオブジェクトのソースになるかどうかって話?

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  4. Anonymous
    2014-06-04T08:19:07+00:00

    楠部様

    別の質問と同時進行でお世話になり恐縮です(「実行時エラー7866」の件です)。

    ご指摘の点、一度に書かず申し訳ありませんでした。

    グラフの元になっているクエリは、グラフをサブフォームに持つメインフォームの[社名]がクエリの[会社名]に

    あいまい検索で一致する事が条件ですので、条件参照先であるフォームが開いている状態でクエリを実行する

    限りにおいて該当データを過不足無く表示します。

    よろしくお願い致します。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  5. Anonymous
    2014-06-04T08:04:54+00:00

    yamataku43235 さん、こんにちは。

    投稿、ありがとうございます。

    Access 2013 のフォームに配置したグラフ コントロールの表示についての質問ですね。

    クエリ、グラフ設定のどちらに要因があるのかを切り分けるために、抽出条件を設定してグラフ作成に使っているクエリを実行するとどのようになるのかを確かめておいてはどうでしょうか。

    クエリの実行結果が正常なら次はグラフの設定を確認する、という感じで進むことができると思います。

    返信、お待ちしています。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません