前回(その4)の続きです。
最近、長くなりがちなのでさくさくやっちゃうぞーってことでレポート作成です。クエリはその3の時にほとんど出来てるんでちょこっと抽出条件をフォームを参照するように修正してやればOKです。月別の抽出条件「Between [抽出開始] And [抽出終了]」の部分はメニューフォームに入力された年と月を条件にするため、DateSerial関数を用いて抽出開始と抽出終了を割り出します。式は「Between DateSerial([Forms]![MenuForm]![txtReportYear],[Forms]![MenuForm]![txtReportMonth],1) And DateSerial([Forms]![MenuForm]![txtReportYear],[Forms]![MenuForm]![txtReportMonth]+1,1)-1」となります。「txtReportYear」と「txtReportMonth」はメニューフォームに設置した年入力テキストと月入力テキストの名前です。
さて、ウィザードで一発じゃぁって感じで行こうと思ってましたが実際やってみると何かごちゃっとしてて気にくわなかったので手作業でシンプルに作ります。
日別レポート(商品ベース)
デザインビュー
印刷プレビュー
日別レポート(メーカーベース)
デザインビュー
印刷プレビュー
月別レポート(商品ベース)
デザインビュー
印刷プレビュー
月別レポート(メーカーベース)
デザインビュー
印刷プレビュー
特に手をかけてないんで一気に出しちゃいました。メーカーベースの方は若干寂しい気もしますがまぁ良しとしましょう。どうでも良いことですがレポートの罫線ズレが気になる人は手で上位置、左位置を入力したらちょっとはましになりますよ。
もうマクロもやっちゃいますか。
まずはおなじみ(?)AutoExecです。マクロ名に「AutoExec」とつけると起動時に自動実行されます。これにメニューフォームの起動を設定します。あとは各フォームの起動、各レポートの起動、在庫計算のクエリの実行を作成すればOKです。「マクロは簡単なやつしか駄目!」ってお約束なのでどれもオブジェクト名と表示形式を指定しただけにしています(なので画像等は載せません)。あとは作成したマクロをメニューフォームの各ボタンに割り当てるだけです。
割り当て中の図
これでついに完成です。…終わり方があっさりしすぎですか?
結局5回も費やして初心者に優しくない初心者講座みたいになってしまったような…。まぁ、VBAは何とか使わずに乗り切りました。在庫計算とか若干ひどい気もしますが、まぁこんなもんでいいでょ?◯◯くん。