Accessお手本データベースのホームへ戻る

グラフウィザードで作成したグラフを電子メールで送信するお手本

 

6-4-1 グラフウィザードで作成したグラフを電子メールで送信するサンプルデータベース

 

このサンプルデータベースは、Access のグラフウィザードを使用してレポート上に作成したグラフを、電子メールで送信します。Access のグラフウィザードを使用すると、商品区分別売上高などのグラフを、フォームやレポートに表示させることができます。

 

サンプルデータベースでは、グラフウィザードを使用してレポートに4種類のグラフを作成しています。これらのグラフは、ポップアップフォームからトグルボタンをクリックすることにより、瞬時に切り替えることができます。ポップアップフォームには、面グラフ(3D効果付きの積み上げ面グラフ)、折れ線グラフ(データにマーカーが付けられた折れ線グラフ)、縦棒グラフ(積み上げ縦棒グラフ-項目ごとに値の相対関係を表示、100%積み上げ縦棒グラフ-項目ごとに値の全体に対する割合を比較)の4種類のトグルボタンが配置されていますので、売上分析に最適なグラフを選択することができます。

 

レポートに表示されているグラフは、ポップアップフォームのメール送信ボタンをクリックすることにより、Outlookの添付ファイルとして送信することができます。添付ファイルは、スナップショットファイル形式(*.snp)で保存されています。メール受信者は、添付ファイルをダブルクリックすると、SnapshotViewerが起動されてグラフが表示されます。表示されたグラフは、印刷することもできます。

 

サンプルデータベース(CH6-4.mdb)では、以下に示すノウハウを習得することができます。

 

◆ レポートをスナップショットファイル形式で保存して電子メールの添付ファイルとして送信する方法

◆ グラフウィザードを使用してフォーム/レポートにグラフを表示させる方法

◆ ポップアップフォームからグラフの種類を選択してプレビュー印刷する方法

◆ リンクされたテーブルを再リンクする方法

◆ Windowsのコモンダイアログを表示させる方法

 

   サンプルデータベースで使用するテーブル/クエリを準備するには

 

1 Access を起動したら作業フォルダに、新規データベースCH6-4.mdbを作成します。

 

2 メニューから外部データの取り込みテーブルのリンクをクリックします。リンクのダイアログが表示されたら、Access のサンプルデータベースNortwind.mdbを選択してリンクボタンをクリックします。(Northwind.mdbは、デフォルトでは”C:\Program Files\Microsoft Office\Office\Sample”にインストールされます。)

 

3 テーブルのリンクダイアログが表示されたら、すべて選択のボタンをクリックします。最後に、OKボタンをクリックしてリンクを完了させます。

 

6-4-2 Northwind.mdbの全てのテーブルをリンクさせる

 

4 テーブルをリンクしたら、データベースウィンドウにNorthwind.mdbの全てのテーブルが表示されているか確認します。

 

5 データベースウィンドウからクエリをクリックしたら、一覧からデザインビューでクエリを作成するをダブルクリックします。テーブルの表示ダイアログが表示されたら、閉じるをクリックして閉じます。メニューからSQLのアイコンをクリックして、SQLビューのウィンドウを表示させたらリスト6-4-1SQLを入力します。(SQLを入力する代わりに、CH6-4.mdbからqry1997SalesbyCategoryをインポートしてもよい。)クエリをデザインビューに切り替えたら、図6-4-3のようになっているか確認します。

 

リスト6-4-1 qry1997SalesbyCategorySQLコマンド

SELECT 商品区分.区分名, CCur([受注明細].[単価]*[受注明細].[数量]*(1-[受注明細].[割引])) AS 金額, 受注.出荷日

FROM (商品区分 INNER JOIN 商品

ON 商品区分.区分コード = 商品.区分コード) INNER JOIN (受注 INNER JOIN 受注明細

ON 受注.受注コード = 受注明細.受注コード) ON 商品.商品コード = 受注明細.商品コード

WHERE (((受注.出荷日) Between #1/1/1997# And #12/31/1997#))

ORDER BY 受注.出荷日;

 

 

6-4-3 1997SalesbyCategoryをデザインビューで表示した例

 

6 メニューから実行アイコンをクリックして、クエリを実行させます。実行結果を確認したら、クエリをqry1997SalesbyCategoryの名称で保存して閉じます。

 

 

6-4-4 qry1997SalesbyCategoryを実行させた例

 

7 テーブルとクエリの準備が完了したら、Access を終了させます。

 

   グラフウィザードを使用してレポートにグラフを表示させるには

 

1 Accessを起動したら、作業フォルダに作成したCH6-4.mdbを開きます。

 

2 データベースウィンドウが表示されたら、レポートをクリックして新規作成ボタンをクリックします。

 

3 レポートの新規作成ダイアログが表示されたら、リストボックスからグラフウィザードを選択します。基になるテーブル/クエリのコンボボックスからqry1997SalesbyCategoryを選択したら、OKボタンをクリックします。

 

6-4-5 グラブウィザードを選択して、コンボボックスからqry1997SalesbyCategoryを選択

 

4 グラフウィザードのダイアログが表示されたら、>>ボタンをクリックして、左側の選択可能なフィールドに表示されている全てのフィールドを、右側の選択したフィールドに移動します。次へのボタンをクリックして続行します。

 

6-4-6 グラフに表示するフィールドを選択した例

 

5 グラフの種類のダイアログが表示されたら、折れ線グラフ(左から3列目の上から3行目)を選択して、次へのボタンをクリックします。

 

6-4-7 グラフの種類から折れ線グラフを選択

 

6 グラフウィザードは、クロス集計クエリを前提にしていますので、“区分名”と“月ごとの出荷日”が逆に配置されています。

 

6-4-8 グラフウィザードが作成したサンプルレイアウト

 

7 X軸とY軸を入れ替えるには、グラフウィザードの右側に表示されているフィールドリストから“区分名”をクリックしてY軸の“月ごとの出荷日”にドラッグします。同様の手順で、フィールドリストから“出荷日”をクリックしたら、X軸の“区分名”にドラッグします。

 

6-4-9 出荷日と区分名を置換した例

 

月ごとの出荷日”をダブルクリックすると、グループ化の設定ダイアログが表示されますので、一覧からを選択してOKボタンをクリックします。次へのボタンをクリックして、最後のウィザードに移動します。

 

6-4-10 出荷日のグループ化設定で“月”を選択

 

8 最後のグラフウィザードが表示されたら、グラフのタイトルに“1997年商品区分別売上高”を入力して完了ボタンをクリックします。

 

9 グラフが表示されたら、閉じるのボタンをクリックしてデザインモードに戻ります。このグラフは、あまり見栄えがよくなりませんが、次のステップで見易いグラフに編集します。レポートを“rpt折れ線グラフ”の名称で保存します。

 

6-4-11 グラフウィザードで作成したグラフをプレビュー印刷した例

 

10 レポートを保存したら、Access を終了させます。

 

 

   グラフウィザードで作成したグラフが見栄え良く表示されるように編集するには

 

1 Accessを起動したら、作業フォルダに作成したCH6-4.mdbを開きます。

 

2 データベースウィンドウが表示されたら、レポートをクリックして、“rpt折れ線グラフ”をデザインモードで開きます。

 

3 グラフのOLEオブジェクトをクリックしたら、オブジェクトのサイズを20 x 8cmぐらいの大きさに拡大します。OLEオブジェクトをダブルクリックして、Graph OLE Serverを起動します。グラフの輪郭のサイズハンドラー(■)をドラッグしてOLEオブジェクトのフレームと同じサイズになるように調整します。(グラフの輪郭は、太字の斜線で表示されます。)

 

6-4-12 Graph 2000 OLE Serverを起動したところ

 

4 マウスをグラフタイトルの上に移動したら、ダブルクリックします。グラフタイトルの書式設定ダイアログが表示されたら、フォントタブをクリックしてスタイルを太字、サイズを12に設定します。次に、自動サイズ調整のチェックを外してOKボタンをクリックします。

 

6-4-13 グラフタイトルの書式設定

 

5 グラフ上の凡例をダブルクリックして、凡例の書式設定ダイアログを表示させます。フォントタブをクリックしたら、サイズをに設定します。自動サイズ調整のチェックを外したら、OKボタンをクリックします。

 

6-4-14 凡例の書式設定

 

6 数値軸(Y軸)をダブルクリックして、軸の書式設定ダイアログを表示させます。目盛タブをクリックしたら、最大値に800000、目盛間隔に100000、補助目盛間隔に20000を設定します。フォントタブをクリックしたら、サイズをに設定して、自動サイズ調整のチェックを外します。最後に、表示形式のタブをクリックしたら、通貨を選択してOKボタンをクリックします。

 

6-4-15 Y軸の書式設定

 

7 項目軸(X軸)をダブルクリックして、軸(X軸)の書式設定ダイアログを表示させます。フォントタブをクリックしたら、サイズをに設定します。自動サイズ調整のチェックを外したら、OKボタンをクリックします。

 

6-4-16 X軸の書式設定

 

8 フォーム上のグラフ領域以外をクリックしてGraph OLE Serverを終了させます。グラフのOLEオブジェクトのプロパティを表示させたら、値集合ソースをクリックしてクエリビルダのダイアログを表示させます。行見出しが英語の年月を表示する形式になっていますので、1: (Format([出荷日],"m\"))のように書き替えます。クエリビルダの閉じるのボタン(X)をクリックしてダイアログを閉じます。

 

6-4-17 グラフの値集合ソースの行見出しを日本語にする

 

9 ファイルメニューからページ設定をクリックして、ページ設定のダイアログを表示させます。ページのタブをクリックしたら、印刷の向きをに設定してOKボタンをクリックします。印刷プレビューのアイコンをクリックして、グラフが書式設定通りに表示されるか確認します。閉じるのボタンをクリックして、プレビュー印刷を閉じます。

 

 

6-4-18 グラフをプレビュー印刷した例(rpt折れ線グラフ)

 

10 レポートを保存したら、Access を終了させます。

 

以上、グラフウィザードを使用してレポートに折れ線グラフを作成する手順を説明しましたが、同様の手順で、積み上げ面グラフ、積み上げ縦棒グラフ、100%積み上げ縦棒グラフを作成します。

 

 

6-4-19 積み上げ面グラフ(rpt積み上げ面グラフ)

 

6-4-20 積み上げ縦棒グラフ(rpt積み上げ縦棒グラフ)

 

6-4-21 100%積み上げ縦棒グラフ (rpt100%積み上げ縦棒グラフ)

 

 

   4種類のグラフ表示をダイナミックに切り替えるポップアップフォームを作成するには

 

Access を起動したら、作業フォルダに作成したCH6-4.mdbを開きます。

 

2 データベースウィンドウが表示されたら、フォームをクリックして一覧からデザインビューでフォームを作成するをダブルクリックします。

 

3 フォームのデザインビューが表示されたら、メニューからツールボックスのアイコンをクリックして、ツールボックスを表示させます。ツールボックスのコントロールウィザードのアイコンがクリック(有効になっている)されているか確認します。

 

4 ツールボックスから、オプショングループのアイコンをクリックして、フォームの詳細に配置します。ウィザードの指示に従って、4個のトグルボタンを作成します。オプショングループのプロパティは、表6-4-1のように設定します。トグルボタンのタグプロパティには、レポートの名を設定しておきます。タグに設定されているレポート名は、トグルボタンをクリックしたときに参照します。

 

6-4-22 フォームの詳細にオプショングループを作成

 

5 ツールボックスからコマンドボタンのアイコンをクリックしたら、オプショングループの下に配置します。コマンドボタンのプロパティは、表6-4-1のように設定します。

 

6-4-1 フォームに配置したコントロールのプロパティ

コントロールの種類

プロパティ

オプショングループ

名前

grpChartType

既定値

トグルボタン1

名前

tgl1

標題

折れ線

タグ

rpt折れ線グラフ

オプション値

トグルボタン2

名前

tgl2

標題

積み上げ面

タグ

rpt積み上げ面グラフ

オプション値

トグルボタン3

名前

tgl3

標題

積み上げ縦棒

タグ

rpt積み上げ縦棒グラフ

オプション値

トグルボタン4

名前

tgl4

標題

100%積み上げ縦棒

タグ

rpt100%積み上げ縦棒グラフ

オプション値

コマンドボタン

名前

cmdSnapshot

 

 

6-4-23 フォーム詳細にコマンドボタンを配置

 

6 フォームのプロパティを表示させたら、表6-4-2のようにプロパティを設定します。メニューからコードのアイコンをクリックして、フォームモジュールを表示させます。フォームモジュールが表示されたら、CH6-4.mdbを開いて、frmEmailGraphのフォームモジュールをコピーして貼り付けます。フォームモジュールのコードは、リスト6-4-2を参照してください。

 

6-4-2 フォームのプロパティ

コントロールの種類

プロパティ

フォーム

ポップアップ

はい

スクロールバー

なし

レコードセレクタ

いいえ

移動ボタン

いいえ

区切り線

いいえ

サイズ自動修正

いいえ

自動中央寄せ

いいえ

 

 

7 フォームをfrmEmailGraphの名称で保存したら、メニューからビューアイコンをクリックしてフォームを表示させます。フォームが表示されると、デフォルトの折れ線グラフがプレビュー印刷されます。オプショングループから積み上げ面、積み上げ縦棒のトグルボタンをクリックして、グラフが表示されるか確認します。積み上げ面グラフを再表示させたら、メール送信ボタンをクリックします。

 

6-4-24 折れ線グラフがプレビュー印刷された例

 

8 メール送信ボタンをクリックすると、レポートがスナップショット形式で保存されて、メールに添付されます。電子メールの宛先、件名、本文などは、任意の内容を指定することができます。図6-4-25Outlookから送信ボタンをクリックすると、Outlookの送信トレイにメールが登録されます。Outlook の送信トレイをクリックして、メールが登録されていることを確認したら、送受信ボタンをクリックします。メール受信者が、添付ファイルをダブルクリックすると、Snapshot Viewerが起動されてグラフが表示されます。グラフは、Snapshot Viewerファイルメニューから印刷をクリックして、印刷することができます。Snapshot Viewerは、AccessCD-ROMに同梱されています。AccessCD-ROMがない場合は、マイクロソフトのホームページから無償にてダウンロードすることができます。

 

6-4-25 積み上げ面グラフのレポートが電子メールに添付された例

 

6-4-26 電子メールに添付されてグラフをSnapshot Viewerで表示させた例

 

9 フォームを保存したら、Access を終了させます。

 

 

Form_Open()イベントの処理

このイベントは、フォームが開かれたときに発生します。このイベントでは、VerifyLinks_FS()関数を呼び出して、CH3-4.mdbのテーブルのリンクが壊れていないか調べます。リンクが破壊されているときは、Windowsのコモンダイアログが表示されますので、リンク先のデータベースを選択して再リンクします。

 

 

Form_Load()イベントの処理

このイベントは、フォームが開かれて、データをロードするときに発生します。このイベントでは、PrintGraphプロシージャを呼び出して、デフォルトの折れ線グラフをプレビュー印刷します。

 

 

Form_Unload()イベントの処理

このイベントは、フォームが閉じられるときに発生します。このイベントでは、プレビュー印刷されているレポートを閉じます。

 

 

grpChartType_AfterUpdate()イベントの処理

このイベントは、オプショングループのトグルボタンをクリックしたときに発生します。このイベントでは、PrintGraphを呼び出して、トグルボタンに対応したレポートをプレビュー印刷します。

 

 

cmdSnapshot_Click()イベントの処理

このイベントは、メール送信のコマンドボタンをクリックしたときに発生します。このイベントでは、DoCmdSendObjectメソッドを使用して、レポートをスナップショット形式で保存して電子メールに添付して送信します。SendObjectメソッドの引数には、レポート名、保存するファイル形式、宛先、件名、本文などを指定することができます。

 

  DoCmd.SendObject ObjectType:=acSendReport, _

    ObjectName:=mstrReportName, _

    OutputFormat:=acFormatSNP, _

    To:="ceo@friendlysw.com", _

    Subject:="Monthly Report", _

    MessageText:="Here is the monthly sales report."

 

 

PrintGraph()の処理

このプロシージャは、現在表示されているレポートを閉じて、引数で指定されたレポートを新たに開きます。DoCmdOpenReportメソッドで指定するレポート名は、トグルボタンのタグプロパティから取得します。

 

mstrReportName = Me("tgl" & intChartType).Tag

  DoCmd.OpenReport mstrReportName, acViewPreview

 

リスト6-4-2 frmEmailGraphのフォームモジュール

Option Compare Database

Option Explicit

 

Private mstrReportName As String

 

Private Sub cmdSnapshot_Click()

  On Error Resume Next

  DoCmd.SendObject ObjectType:=acSendReport, _

    ObjectName:=mstrReportName, _

    OutputFormat:=acFormatSNP, _

    To:="ceo@friendlysw.com", _

    Subject:="Monthly Report", _

    MessageText:="Here is the monthly sales report."

End Sub

 

Private Sub Form_Load()

  PrintGraph 1

End Sub

 

Private Sub Form_Open(Cancel As Integer)

  If Not VerifyLinks_FS("Northwind.mdb", "得意先") Then

    MsgBox "テーブルの再リンクに失敗しました!" & vbCrLf & _

      "Accessのリンクテーブルマネージャから Northwind.mdb “ & _

を再リンクしてください.", _

      vbCritical + vbOKOnly

  End If

  Call SetAppTitle_FS("Email Graphs (C) " & Year(Date) & " by Akio Kasai")

End Sub

 

Private Sub Form_Unload(Cancel As Integer)

  If Len(mstrReportName) Then

    DoCmd.Close acReport, mstrReportName

  End If

End Sub

 

Private Sub PrintGraph(intChartType As Integer)

  If Len(mstrReportName) Then

    DoCmd.Close acReport, mstrReportName

  End If

  mstrReportName = Me("tgl" & intChartType).Tag

  DoCmd.OpenReport mstrReportName, acViewPreview

End Sub

 

Private Sub grpChartType_AfterUpdate()

  PrintGraph Me.grpChartType

End Sub

 

 

ダウンロード (CH6-4.lzh)
Accessお手本データベースのホームへ戻る