概要
Accessのレポートに 『Access自身のファイルパス』 や 『レポート名』 などを印字したい。
ただ印字するのではなく、Accessのファイル名やレポート名を変更してもメンテ不要にしたい。
(動的に値を印字)
何でこんなことをするのか?
トレースしやすくするため。
トレースとは どこに置いてあるAccessファイル の どのレポート から出力した印刷物かを調べる作業のこと。
Accessファイルはコピペやファイルの移動が、 ユーザー側で簡単にできてしまいがち 。
また、『リファクタリングによるレポート名変更』や『コピペで別名レポート作成』も考えられる。
なので、動的に値を印字した方がいい。
やり方(VBA不使用)
テキストボックスのコントロールソースに記述するだけで実装できる。
=[Application].[CurrentProject].[FullName]
テキストボックスのコントロールソースに Me
は使えないので、 Report
を使う。
=[Report].[Name]
=Now()
実装例
やり方(VBA使用)
VBA不使用の場合の応用なので詳細は割愛。
Private Sub ページヘッダーセクション_Format(Cancel As Integer, FormatCount As Integer)
Me.テキスト359.Value = Application.CurrentProject.FullName
Me.テキスト358.Value = Report.Name
Me.テキスト360.Value = Now()
End Sub
VBAの場合は実装が少し面倒だけど、 なぜこの値を印字しているのか というコメントを残せるメリットがある。
参考サイトさん
バージョン
Windows 10 Pro 21H2 OSビルド 19044.1889
Microsoft Access for Microsoft 365 MSO (バージョン 2207 ビルド 16.0.15427.20166) 32 ビット