使いやすいように設計された Microsoft リレーショナル データベース管理システムのファミリ。
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/値集合ソース プロパティを意図する契機で変更することです。
変更点は、
- ベースとしているクエリから パラメータを使用する抽出条件を削除
- Row Source/値集合ソース プロパティに代入するSQLに抽出条件を追加
です。2は [forms]![企業リストフォーム]![社名] が値に読み替えられるSQL文字列を作成してプロパティに代入。ここは VBA を使うことになります。
以上