トップ > スキル : アプリケーション > Access(アクセス) > データベースシステム(マクロの作成)

Access

売上管理データベースの作成

マクロの作成4

コンボボックスのマクロ作成

最後に、コンボボックスで選択された項目に応じた売上情報が表示されるようなマクロを作成します。

操作を行っている当日の日付を基本に、今日、今週、先週、今月、先月分の売上情報が抽出表示できる[F売上メイン]フォームにします。
マクロに条件を設定しますが、少し難易度の高い条件式になります。条件式の詳細は解説しておりませんが、式の構造を見ていくことで、ある程度の理解はできます。表にまとめて書かれている条件式をそのまま入力してください。


① [M売上メイン用]マクロをデザインビューで開きます。
[マクロツール]-[デザイン]の[表示/非表示]-[条件]ボタンをクリックして、「条件」列を表示させます。

② [マクロ名]に「売上日で抽出」と入力します。
右セルの[条件]欄に「[Forms]![F売上メイン]![抽出]="すべて"」と入力します。これは、"[抽出]コンボボックスで「すべて」という項目が選択されたら"という条件になります。
[アクション]には「全レコードの表示」を選択します。

※ [全レコードの表示]アクションには、引数がありません。

条件式の入力

③ 下の[条件]欄に「[Forms]![F売上メイン]![抽出]="今日"」と入力し、[アクション]は「フィルタの実行」を選択します。
[アクションの引数]の[Where条件式]に「(Year([売上日])=Year(Date()) And Month([売上日])=Month(Date()) And Day([売上日])=Day(Date()))」と入力します。

※ これは、[売上日]の年と、月、日が本日の年と月と日が同じであることを条件にしています。

④ 同様な方法で、以下の表のとおり設定してください。

条  件 アクション Where条件式
[Forms]![F売上メイン]![抽出]="今週"フィルタの実行(Year([売上日])=Year(Date()) And DatePart("ww",[売上日],0)
=DatePart("ww",Date(),0))
[Forms]![F売上メイン]![抽出]="先週"(Year([売上日])*53+DatePart("ww",[売上日],0)
=(Year(Date())*53+DatePart("ww",Date(),0)-1))
[Forms]![F売上メイン]![抽出]="今月"(Year([売上日])
=Year(Date()) And Month([売上日])=Month(Date()))
[Forms]![F売上メイン]![抽出]="先月"(Year([売上日])
=Year(Date()) And Month([売上日])=(Month(Date())-1))

※ Where条件式は、括弧やカンマの打ち間違えに気をつけながら入力してください。また、2段になっていますが、1行で書き切るように入力します。内容は、良く見てもらえれば何となく意味が理解できると思います。

条件式の確認

⑤ [M売上メイン用]マクロを上書き保存して閉じます。

⑥ [F売上メイン]フォームをデザインビューで開きます。
[売上日で注文]のコンボボックスを選択します。

⑦ コンボボックスのプロパティシートを開きます。
[イベント]タブを選択して、[更新後処理]プロパティをクリックし、一覧から[M売上メイン用.売上日で抽出]を選択します。

※ [更新後処理]プロパティに設定した理由は、コンボボックスの一覧を表示し、項目を選んだ直後に処理するためです。

イベントの設定

⑧ プロパティ画面を閉じて、上書き保存をします。フォームビューに切り替えて、動作を確認します。
[売上日で注文]から「先月」を選択します。2つのデータのみが表示されることを確認します。ただし、これは2009年7月に行った操作時の動作になります。

※ パソコンの日付を変えて、動作を確認しても良いでしょう。

最下部にフィルタの適用が表示され、レコードが2件あることが確認できます。これで[F売上メイン]フォームの完成となります。このデータベースを運用する時は、この売上フォームを中心に操作できるようになります。