Accessではフォームにボタンを設置して、クリックしてフォームやレポートの表示を実行することが多いです。
2個のボタンを設置して同じレポートを開くのですが、1個のボタンはレポートの一部のコントロールを非表示にして開く方法を紹介します。
ここでは、現在の日付と時刻が表示されるレポートと、日付と時刻が非表示のレポートを開くするようにします。
日付と時刻のコントロールを表示したレポートと、コントロールを非表示にしたレポートを作成して、それぞれのボタンに設定するのが簡単かもしれませんが、レポートを増やしたくない場合もあると思います。
同じレポートを開くのですが、日付と時刻のコントロールのみを非表示にする方法もあります。
フォームのボタンのクリック時イベントで設定します。
参考ここでは、ウィンドウは[重ねて表示する]の設定にしています。
-
[タブ付きドキュメント]と[ウィンドウを重ねて表示する]の違い
Access2007以降、オブジェクトを表示すると、タブ付きウィンドウで表示されるようになっています。 昔からAccessを使用している方に ...
レポートの作成
以下のようなテーブルをもとにレポートを作成します。
ここでは、簡単にテーブル[T_商品]を選択して、[作成]タブの[レポート]グループにある[レポート]をクリックして作成しています。
レポート
現在のクエリまたはテーブルのデータの基本レポートを作成します。このレポートにはグループ化や集計などの機能を追加できます。
[レポート]をクリックするだけで、一瞬で作成できて便利です。
ここでは、ヘッダーの標題やページ設定などを変更して、レポートの名前は[R_商品]としています。
自動的にレポートヘッダーに日付と時刻が表示されるようになっています。
日付と時刻のコントロールの名前を確認
レポートをデザインビューで開いて、日付と時刻のプロパティから名前を確認します。
テキストボックスに[=Date()]と表示されているのが日付で、[=Time()]と表示されているのが時刻です。
レポートヘッダーの[=Date()]と表示されたテキストボックスを選択して、[F4]キーを押してプロパティを表示します。
[すべて]タブの[名前]で確認できます。上部のコンボボックスでも確認できます。
参考テキストボックスの[コントロールソース]に[=Date()]で現在の日付、[=Time()]で現在の時刻を表示できます。日付や時刻の書式はプロパティの[書式]のプルダウンメニューから選択して変更できます。
[=Time()]と表示されたテキストボックスも選択して名前を確認します。[名前]は[その他]タブでも確認できます。
日付は[Auto_Data]、時刻は[Auto_Time]となっていることが分かります。
参考レポートウィザードを使用してレポートを作成する方法は、以下の記事で解説しています。
-
レポートウィザードを使って表形式のレポートを作成
Accessのテーブルやクエリを基にレポートウィザードを使用してレポートを作成することができます。 ウィザードで作成した後、より見やすいレポ ...
フォームにボタンを設置
白紙のフォームにコマンドボタンを2個設置します。
[デザイン]タブの[コントロール]グループにある[ボタン]をクリックします。
[コマンドボタンウィザード]が表示されたら、[キャンセル]ボタンをクリックして閉じます。
コマンドボタンの標題
[詳細]領域にドラッグしてボタンを2個作成したら、コマンドボタンの[標題]をそれぞれ、[日付/時刻ありで印刷]と[日付/時刻なしで印刷]とします。
コマンドボタンの名前
コマンドボタンの名前は、プロパティの[その他]タブで変更できます。
ここでは、自動的に付けられた名前のままにしています。
[日付/時刻ありで印刷]と表示されたコマンドが[コマンド0]、[日付/時刻なしで印刷]と表示されたコマンド[コマンド1]です。
参考ボタンの書式設定とスタイルの変更については、以下の記事で解説しています。
-
コマンドボタンの背景色を変更/ポイント時とクリック時の色を設定
Access2010から、フォームで作成したコマンドボタンの背景色がプロパティで設定できるようになりました。 ポイント時の色や、クリック時の ...
-
コマンドボタンのスタイル変更
Accessのフォームでコマンドボタンを作成して、そのコマンドボタンのスタイルを変更する方法です。 [書式]タブの[クイックスタイル]や[図 ...
コマンドボタンのプロパティ[クリック時イベント]で設定
[日付/時刻ありで印刷]と表示されたコマンドボタンをクリックして、プロパティを表示します。
[イベント]タブの[クリック時]の[ビルダー選択]ボタン[...]をクリックします。
または、ボタンで右クリックしてショートカットメニューから[イベントのビルド]をクリックします。
[ビルダーの選択]ダイアログボックスが表示されますので、[マクロビルダー]か[コードビルダー]を選択して設定します。
動作は同じですが、作成方法は異なります。
[コードビルダー]と[マクロビルダー]の相違については、以下の記事で解説しています。
-
マクロアクション(マクロビルダー)とVBA(コードビルダー)
Accessでは、マクロアクション(マクロの実行アクション)やVBA(Visual Basic for Applications)を使って一 ...
[コードビルダー]を選択してコードを入力
[ビルダーの選択]ダイアログボックスが表示されますので、[コードビルダー]を選択して[OK]ボタンをクリックします。
以下のようにコードを入力します。
これで、レポート[R_商品]が印刷プレビューで開かれます。
参考[acViewPreview]は印刷プレビューで開くということになります。ここを[acViewReport]にすると、レポートビューで開きます。
DoCmd.OpenReport "R_商品", acViewPreview
VBEウィンドウは、保存して閉じます。
[コマンド0]のプロパティ[クリック時]には、[イベントプロシージャ]と表示されます。
[日付/時刻なしで印刷]ボタンには日付と時刻を非表示にする設定
[日付/時刻なしで印刷]と表示されたコマンドボタンをクリックして、プロパティを表示します。
[イベント]タブの[クリック時]の[ビルダー選択]ボタン[...]をクリックします。
上記と同じように[ビルダーの選択]ダイアログボックスが表示されたら[コードビルダー]を選択します。
そして、VBEのコードウィンドウに、以下のようにコードを入力します。
注意オブジェクト名に全角括弧やスペースなどが含まれている場合は、半角の角括弧 [] で括ります。例:[R_商品(営業部)] [R_商品 営業部]
名前を付ける時は、できるだけ全角括弧やスペースなどは使用されないことをお勧めします。
Access データベースで特殊文字を使用したエラー - Microsoft 365 Apps | Microsoft Learn(Microsoft)
DoCmd.OpenReport "R_商品", acViewPreview
Reports!R_商品!Auto_Date.Visible = False
Reports!R_商品!Auto_Time.Visible = False
レポートのコントロールを参照するには、レポート名のあとに[!](感嘆符)を付け、プロパティ名をつなぐときは[.](ドット)を使用します。
[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]のプロパティ[クリック時]には、[埋め込みマクロ]と表示されます。
[日付/時刻なしで印刷]ボタンには日付と時刻を非表示にする設定
[日付/時刻なしで印刷]と表示されたコマンドボタンをクリックして、プロパティを表示します。
[イベント]タブの[クリック時]の[ビルダー選択]ボタン[...]をクリックします。
上記と同じように[ビルダーの選択]ダイアログボックスが表示されたら[マクロビルダー]を選択します。
そして、今度は以下のように設定します。
[値の代入]アクションは、[すべてのアクションを表示]をクリックすると表示されます。
[値の代入]の[アイテム]には、以下のように入力します。コントロール[Auto_Time]も同じように入力します。
[式]には以下を入力します。
False
マクロウィンドウは、保存して閉じます。
[コマンド1]のプロパティ[クリック時]には、[コマンド0]と同じように[埋め込みマクロ]と表示されます。
参考同じようなマクロアクションを追加する場合は、コピー&ペーストすると効率的です。また、マクロアクションは、アクションカタログから追加することもできます。
-
マクロツールで既存のアクションをコピーして活用(再利用)するには
Accessでは多くのマクロアクションが使用できます。 しかし、毎回アクションを選択して入力するのは面倒ですね。 マクロアクションは、コピー ...
フォームのボタンをクリックして確認
フォームに設置したボタンをクリックして確認してみます。
フォームビューに切り替えて、[日付/時刻ありで印刷]のボタンをクリックします。
現在の日付と時刻が表示されたレポートが印刷プレビューで表示されます。
[日付/時刻なしで印刷]のボタンをクリックします。
日付と時刻は非表示になっています。
参考以下の記事では、コンボボックスの値集合ソースをボタンで切り替える方法を解説しています。
-
コンボボックスに表示するリスト(値集合ソース)をボタンで切り替え
Accessのフォームでコンボボックスの値集合ソースをボタンで切り替える方法です。 下のようなフォームを作成しています。 [日本食]ボタンを ...
値によって、使用可と使用不可に切り替える方法も解説しています。
-
値によってテキストボックスの使用可と不可を切り替える
Accessのフォームで1つ目のコンボボックスで選択した値によって、次のテキストボックスの使用を有効にしたり、無効にしたりする方法です。 た ...
以下の記事では、埋め込みマクロでボタンを非表示にする設定を解説しています。
-
フォームを参照用と編集用にボタンで切り替え(埋め込みマクロで設定)
Accessで1つのフォームを作成して、すべての内容を見せてレコードの編集ができるようにしています。 でも、そのフォームを開く時に制限を付け ...