Access (VBA)

Access VBAに関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(指定なし : 指定なし)
レポートに表示する日付を自動で変更
投稿日時: 21/04/14 11:25:16
投稿者: DIVAA

レポートに日付を表示していますが、その日付を一定の期間が過ぎると変更するようにしたいです。
例えば
4/11〜5/10の間は
「2021年5月10日」とレポートに表示 
 
5/11〜6/10の間は
「2021年6月10日」とレポートに表示
 
という風に日付を変更したいのですがこういう仕様は可能でしょうか?
 
また別件で質問ですが、フォームからデータを変更した場合その変更箇所をレポート上でテキストボックスに色をつけることは可能ですか?
データの変更箇所をレポートに出力した際一目見て分かるようにしたいです。
もし可能であればそちらの方法も知りたいです。
 
お手数をおかけしますが宜しくお願い致します。

回答
投稿日時: 21/04/14 12:12:02
投稿者: hatena
投稿者のウェブサイトに移動

判断基準の日付は現在日付ということでよろしいですか。
だとしたら、テキストボックスのコントロールソースに下記の式を設定すればいいでしょう。
 
=DateSerial(Year(Date()),Month(Date())+IIf(Day(Date())>10,1,0),10)
 
> また別件で質問ですが、フォームからデータを変更した場合その変更箇所をレポート上でテキストボックスに色をつけることは可能ですか?
 
できないことはないですが、簡単ではないですよ。
 
まず、その前に変更したという判断はどのように基準でするつもりでしょうか。
最初に新規入力した後、そのレコードを再び開いて、元の値から変更したら、更新という判断でよろしいですか。
 
まずは、フォーム、レポートのレコードソースに更新したかどうかを記録しておくフィールド(Yes/No型)を追加する必要があります。更新を記録したいフィールド数分追加してください。
 
例えば、「フィールド1」に対して「フィールド1更新」というように、名前付けしてください。
 
フォームの更新前処理のイベントプロシージャで、「フィールド1」のValue と OldValue を比較して異なっていたら、「フィールド1更新」に True を代入するようにします。
 
レポートでは「フィールド1」の条件付き書式で「フィールド1更新」を参照してTrueなら色を付けるように設定します。
 

回答
投稿日時: 21/04/14 15:18:51
投稿者: Suzu

引用:
フォームからデータを変更した場合その変更箇所をレポート上でテキストボックスに色をつけることは可能ですか?
データの変更箇所をレポートに出力した際一目見て分かるようにしたいです。
もし可能であればそちらの方法も知りたいです。

 
色をつけるとなると VBA または 条件付書式 にて 行う事になります。
その為には、当該の レコード/フィールド に対し 変更が行われた事を保存する必要があります。
 
それは、hatenaさんが仰る様に、
1. テーブル構造を変更し 同じテーブルにYes/No型をフィールド数分用意する
 
別案として
2. 同じ構造のテーブルを用意しフォームの更新前処理等で、更新前のデータを別テーブルに保存
     → クエリ等で、色を変えるフィールドを特定
 
3. 別テーブル に、更新したレコード、フィールドを特定する情報を保持
 
 2. 3. では、条件付書式ではなく、VBAで処理する必要があります。

トピックに返信