Office 2019 Access 2019

コマンドボタンでコントロールの表示と非表示を切り替える

投稿日:2019年9月25日 更新日:

Accessではフォームにボタンを設置して、クリックしてフォームやレポートの表示を実行することが多いです。

2個のボタンを設置して同じレポートを開くのですが、1個のボタンはレポートの一部のコントロールを非表示にして開く方法を紹介します。

ここでは、現在の日付と時刻が表示されるレポートと、日付と時刻が非表示のレポートを開くするようにします。

Accessのメニューフォーム

日付と時刻のコントロールを表示したレポートと、コントロールを非表示にしたレポートを作成して、それぞれのボタンに設定するのが簡単かもしれませんが、レポートを増やしたくない場合もあると思います。

同じレポートを開くのですが、日付と時刻のコントロールのみを非表示にする方法もあります。

フォームのボタンのクリック時イベントで設定します。

参考ここでは、ウィンドウは[重ねて表示する]の設定にしています。

[タブ付きドキュメント]と[ウィンドウを重ねて表示する]の違い

Access2007以降、オブジェクトを表示すると、タブ付きウィンドウで表示されるようになっています。従来からAccessを使用している方に ...

続きを見る

レポートの作成

以下のようなテーブルをもとにレポートを作成します。

テーブルのデータシートビュー

ここでは、簡単にテーブル[T_商品]を選択して、[作成]タブの[レポート]グループにある[レポート]をクリックして作成しています。

レポート

現在のクエリまたはテーブルのデータの基本レポートを作成します。このレポートにはグループ化や集計などの機能を追加できます。

[作成]タブの[レポート]グループにある[レポート]

[レポート]をクリックするだけで、一瞬で作成できて便利です。

レポートの完成

ここでは、ヘッダーの標題やページ設定などを変更して、レポートの名前は[R_商品]としています。

自動的にレポートヘッダーに日付と時刻が表示されるようになっています。

現在の日付と時刻が表示されたレポート

日付と時刻のコントロールの名前を確認

レポートをデザインビューで開いて、日付と時刻のプロパティから名前を確認します。

テキストボックスに[=Date()]と表示されているのが日付で、[=Time()]と表示されているのが時刻です。

レポートヘッダーの[=Date()]と表示されたテキストボックスを選択して、[F4]キーを押してプロパティを表示します。

[すべて]タブの[名前]で確認できます。上部のコンボボックスでも確認できます。

参考テキストボックスの[コントロールソース]に[=Date()]で現在の日付、[=Time()]で現在の時刻を表示できます。日付や時刻の書式はプロパティの[書式]のプルダウンメニューから選択して変更できます。

テキストボックスのプロパティ

[=Time()]と表示されたテキストボックスも選択して名前を確認します。[名前]は[その他]タブでも確認できます。

時刻が表示されたテキストボックスのプロパティ

日付は[Auto_Data]時刻は[Auto_Time]となっていることが分かります。

参考レポートウィザードを使用してレポートを作成する方法は、以下の記事で解説しています。

レポートウィザードを使って表形式のレポートを作成

Accessのテーブルやクエリを基にレポートウィザードを使用してレポートを作成することができます。 ウィザードで作成した後、より見やすいレポ ...

続きを見る

フォームにボタンを設置

白紙のフォームにコマンドボタンを2個設置します。

[デザイン]タブの[コントロール]グループにある[ボタン]をクリックします。

[コマンドボタンウィザード]が表示されたら、[キャンセル]ボタンをクリックして閉じます。

[デザイン]タブの[コントロール]グループにある[ボタン]

コマンドボタンの標題

[詳細]領域にドラッグしてボタンを2個作成したら、コマンドボタンの[標題]をそれぞれ、[日付/時刻ありで印刷]と[日付/時刻なしで印刷]とします。

コマンドボタンのプロパティ[表題]

コマンドボタンの名前

コマンドボタンの名前は、プロパティの[その他]タブで変更できます。

ここでは、自動的に付けられた名前のままにしています。

[日付/時刻ありで印刷]と表示されたコマンドが[コマンド0]、[日付/時刻なしで印刷]と表示されたコマンド[コマンド1]です。

プロパティの[その他]タブの[名前]

参考ボタンの書式設定とスタイルの変更については、以下の記事で解説しています。

コマンドボタンの背景色、ポイント時とクリック時の色を設定

Access2010から、フォームで作成したコマンドボタンの背景色がプロパティで設定できるようになりました。 ポイント時の色や、クリック時の ...

続きを見る

コマンドボタンのスタイル変更

Accessのフォームでコマンドボタンを作成して、そのコマンドボタンのスタイルを変更する方法です。 [書式]タブの[クイックスタイル]や[図 ...

続きを見る

コマンドボタンのプロパティ[クリック時イベント]で設定

[日付/時刻ありで印刷]と表示されたコマンドボタンをクリックして、プロパティを表示します。

[イベント]タブの[クリック時]の[ビルダー選択]ボタン[...]をクリックします。

コマンドボタンのクリック時イベント

または、ボタンで右クリックしてショートカットメニューから[イベントのビルド]をクリックします。

ボタンを右クリックした時のショートカットメニュー[イベントのビルド]

[ビルダーの選択]ダイアログボックスが表示されますので、[マクロビルダー]か[コードビルダー]を選択して設定します。

動作は同じですが、作成方法は異なります。

[コードビルダー]と[マクロビルダー]の相違については、以下の記事で解説しています。

[マクロビルダー]と[コードビルダー]を使う場合に気をつけること

Accessでは、マクロアクション(マクロの実行アクション)やVBA(Visual Basic for Applications)を使って一 ...

続きを見る

[コードビルダー]を選択してコードを入力

[ビルダーの選択]ダイアログボックスが表示されますので、[コードビルダー]を選択して[OK]ボタンをクリックします。

[ビルダーの選択]ダイアログボックス

以下のようにコードを入力します。

これで、レポート[R_商品]が印刷プレビューで開かれます。

参考[acViewPreview]は印刷プレビューで開くということになります。ここを[acViewReport]にすると、レポートビューで開きます。

DoCmd.OpenReport "R_商品", acViewPreview

VBEに入力したコード

VBEウィンドウは、保存して閉じます。

[コマンド0]のプロパティ[クリック時]には、[イベントプロシージャ]と表示されます。

[コマンド0]のプロパティ[イベントプロシージャ]

[日付/時刻なしで印刷]ボタンには日付と時刻を非表示にする設定

[日付/時刻なしで印刷]と表示されたコマンドボタンをクリックして、プロパティを表示します。

[イベント]タブの[クリック時]の[ビルダー選択]ボタン[...]をクリックします。

上記と同じように[ビルダーの選択]ダイアログボックスが表示されたら[コードビルダー]を選択します。

そして、VBEのコードウィンドウに、以下のようにコードを入力します。

注意オブジェクト名に全角括弧やスペースなどが含まれている場合は、半角の角括弧 [] で括ります。例:[R_商品(営業部)] [R_商品 営業部]

名前を付ける時は、できるだけ全角括弧やスペースなどは使用されないことをお勧めします。

Access データベースで特殊文字を使用したエラー - Office | Microsoft Docs(Microsoft)

DoCmd.OpenReport "R_商品", acViewPreview

Reports!R_商品!Auto_Date.Visible = False
Reports!R_商品!Auto_Time.Visible = False

VBEに入力されたコード

レポートのコントロールを参照するには、レポート名のあとに[!](感嘆符)を付け、プロパティ名をつなぐときは[.](ドット)を使用します。

[Reports!R_商品!Auto_Date.Visible = False]は、レポート[R_商品]の[Auto_Data]の[可視]を[False]にして、非表示にするということです。

[Reports!R_商品!Auto_Time.Visible = False]は、レポート[R_商品]の[Auto_Time]の[可視]を[False]にして、非表示にするということです。

VBEウィンドウは、保存して閉じます。

[コマンド1]のプロパティ[クリック時]には、[コマンド0]と同じように[イベントプロシージャ]と表示されます。

[マクロビルダー]を選択してマクロアクションで設定

[日付/時刻ありで印刷]と表示されたコマンドボタンをクリックして、プロパティを表示します。

[イベント]タブの[クリック時]の[ビルダー選択]ボタン[...]をクリックします。

コマンドボタンのクリック時イベント

[ビルダーの選択]ダイアログボックスが表示されますので[マクロビルダー]を選択します。

[ビルダーの選択]ダイアログボックスで[マクロビルダー]を選択

[マクロウィンドウ]が表示されます。

[新しいアクションの追加]の▼ボタンをクリックして、アクションの一覧から[レポートを開く]を選択します。

アクションの一覧から[レポートを開く]を選択

[レポートを開く]ウィンドウになりますので、[レポート名]の▼ボタンをクリックして[R_商品]を選択します。

[ビュー]には[印刷プレビュー]を指定します。

[レポートを開く]アクションの設定

上書き保存して、マクロウィンドウを閉じます。

マクロウィンドウの[上書き保存]と[閉じる]ボタン

[コマンド0]のプロパティ[クリック時]には、[埋め込みマクロ]と表示されます。

[コマンド0]のプロパティ[埋め込みマクロ]

[日付/時刻なしで印刷]ボタンには日付と時刻を非表示にする設定

[日付/時刻なしで印刷]と表示されたコマンドボタンをクリックして、プロパティを表示します。

[イベント]タブの[クリック時]の[ビルダー選択]ボタン[...]をクリックします。

上記と同じように[ビルダーの選択]ダイアログボックスが表示されたら[マクロビルダー]を選択します。

そして、今度は以下のように設定します。

[値の代入]アクションは、[すべてのアクションを表示]をクリックすると表示されます。

[すべてのアクションを表示]をクリックして[値の代入]を選択

[値の代入]の[アイテム]には、以下のように入力します。コントロール[Auto_Time]も同じように入力します。

[Reports]![R_商品]![Auto_Date].[Visible]

[式]には以下を入力します。

False

マクロウィンドウのアクション

マクロウィンドウは、保存して閉じます。

[コマンド1]のプロパティ[クリック時]には、[コマンド0]と同じように[埋め込みマクロ]と表示されます。

フォームのボタンをクリックして確認

フォームに設置したボタンをクリックして確認してみます。

フォームビューに切り替えて、[日付/時刻ありで印刷]のボタンをクリックします。

フォームビューのボタン

現在の日付と時刻が表示されたレポートが印刷プレビューで表示されます。

日付と時刻が表示されたレポート

[日付/時刻なしで印刷]のボタンをクリックします。

[日付/時刻なしで印刷]のボタンをクリック

日付と時刻は非表示になっています。

日付と時刻が非表示のレポート

参考以下の記事では、コンボボックスの値集合ソースをボタンで切り替える方法を解説しています。

コンボボックスに表示するリスト(値集合ソース)をボタンで切り替え

Accessのフォームでコンボボックスの値集合ソースをボタンで切り替える方法です。 下のようなフォームを作成しています。 [日本食]ボタンを ...

続きを見る

値によって、使用可と使用不可に切り替える方法も解説しています。

値によってテキストボックスの使用可と使用不可を切り替える

Accessのフォームで1つ目のコンボボックスで選択した値によって、次のテキストボックスの使用を有効にしたり、無効にしたりする方法です。 た ...

続きを見る

以下の記事では、埋め込みマクロでボタンを非表示にする設定を解説しています。

フォームを参照用と編集用にボタンで切り替え(埋め込みマクロで設定)

Accessで1つのフォームを作成して、すべての内容を見せてレコードの編集ができるようにしています。 でも、そのフォームを開く時に制限を付け ...

続きを見る

検索

ほかの記事も検索してみませんか?

Profile

執筆者/はま

-Office 2019 Access 2019

Copyright © 2001-2022 初心者のためのOffice講座 All Rights Reserved.

Copyright© 初心者のためのOffice講座 , 2022 AllRights Reserved Powered by AFFINGER4.