
No.2ベストアンサー
- 回答日時:
#1です
では、次に簡単な方法になります。
条件付き書式を使うことには変わりはありません。
処理で各テキストボックスの Tag を使用します。
この Tag には格納できる文字数に制限があるので注意してください。
連結して表示しているテキストボックスの名前が以下であると仮定します。
"an","日付", "品番ID", "設備ID", "売上", "生産数"
そのレコードを一意に特定できるものが "an" であるとします。
(確認した時の an はオートナンバー)
各テキストボックスの Tag には、変更があった時の an を格納していきます。
an = 1 の "日付" に変更があったら、テキストボックス "日付" の Tag に ,1 を、
さらに an = 2 の "日付" に変更があったら、,1,2 の様に追加していきます。
で、この "日付" の条件付き書式には、
[日付].[OldValue]<>[日付] Or InStr([日付].[Tag] & ",","," & [an] & ",")>0
前回の条件に、Or InStr([日付].[Tag] & ",","," & [an] & ",")>0 を追加しています。
Tag が、,1,2 だったら、,1,2, に加工して、[an] を , , で囲んだパターンがあるか、で判別します。
この Tag を作成するのは、フォームの「更新前処理」で行います。
Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim vFld As Variant
Dim vTmp As Variant
Const FIXAN As String = "an"
If (Not Me.NewRecord) Then
vFld = Array("日付", "品番ID", "設備ID", "売上", "生産数")
For Each vTmp In vFld
With Me(vTmp)
If (.Value <> .OldValue) Then
.Tag = .Tag & "," & Me(FIXAN)
End If
End With
Next
End If
End Sub
※
今回の例では、一意のものがオートナンバーなので、新規登録の更新前処理で確定していない(?)ため処理から外してます。
新規登録時も色付けするのなら、更新後処理と連携して作る必要があります。
(更新前処理では新規であるか Me.NewRecord で判別できますが、更新後処理ではできなかったか、と)
※
Tag の文字数制限に引っ掛かるのなら、
"日付", "品番ID", "設備ID", "売上", "生産数" らの影武者をヘッダーに配置して
Tag 部分の処理を、その影武者に設定すればよいと思います。
もちろん、非表示にしておききます。
影武者の名前先頭に「tk」を付けたとすると
.Tag = .Tag & "," & Me(FIXAN)
は
Me("tk" & vTmp) = Me("tk" & vTmp) & "," & Me(FIXAN)
Or InStr([日付].[Tag] & ",","," & [an] & ",")>0
は
Or InStr([tk日付] & ",","," & [an] & ",")>0
で大丈夫と思います。
Tag では確認しましたが、影武者では未検証
※
一度変更し、確定させ、さらに1つ前に戻しても色は付いたままになります。
(これは変更が2回行われたものになるので)
( ,1 は、,1,1 になりますが判別には影響ありません:文字数の制限に・・・)
※必要であれば、読み込み時等で Tag 部分を初期化します。
使える方法かは、判断してください。
30246kiku様
非常に丁寧なご回答有難うございました。
サンプルを試してみましたが、非常に良い感じです。
私はVBA初心者なのでこの内容を自身のDBに上手く投影できるかどうか不安ですがなんとかチャレンジしてみます。
私は教えて!gooを初めて投稿したのですが、このように非常に早く丁寧なご回答を戴き誠に感謝しております。
No.3
- 回答日時:
#2です
> "日付", "品番ID", "設備ID", "売上", "生産数" らの影武者をヘッダーに配置して
表現が適切ではなかったと思います。
それぞれに対応させる非連結のテキストボックスをヘッダーに配置して
"tk日付", "tk品番ID", "tk設備ID", "tk売上", "tk生産数" の様に名前付けする
ということです。
いまだにこの方法は未検証です。
(多分、大丈夫かと)
No.1
- 回答日時:
> データを変更したレコードのみ変更したいのですが
レコードが更新確定された時には、色は消えてもいいのでしょうか。
(その方が簡単なのですが)
項目を変更している部分だけ色を付けて、確定後は色が消えるということで、
以下例)
条件付き書式を使用します。
1つのテキストボックスのみの例としますので、他にあれば同様な設定をしてください。
連結したテキストボックス名を「txt日付」、そのコントロールソースは「日付」と仮定します。
デザイン画面で、テキストボックス「txt日付」をクリック後、条件付き書式を、
条件部分を「式」として、 [txt日付].[OldValue]<>[txt日付] を記述後、背景色を選びます。
で、OK ボタン。
ここの条件付き書式の設定を必要数分行います。
(それぞれのテキストボックス名に置き換えながら)
最後に、フォームの「更新後処理」で、フォームを再計算させます。
Private Sub Form_AfterUpdate()
Me.Recalc
End Sub
これで、修正したら色が付きます。確定したら色は消えます。
なお、新規登録時には色は付きません。
早速のご回答ありがとうございます。
実行して上手くいきましたが、更新確定すると色は消えてしまいますね。
出来れば、ずっとこの状態を保っておきたいのですが難しいでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS WEBサイトの構築。表示データとWEBデザインを分離する考え方を専門用語・業界用語では何と言うか? 8 2022/09/27 09:16
- Access(アクセス) ACCESS2019 ナビゲーションウィンドウの色 1 2022/05/10 17:15
- Visual Basic(VBA) Excel VBA 書式変更で困ってます。 オートフィルターの日付フィルターを用いて データの絞り込 2 2022/07/26 22:16
- livedoor Blog(ライブドアブログ) LINEに下記メッセージが届きました。 ブログリーダーに登録した事はありませんし、利用もしてません。 1 2023/02/28 16:33
- Excel(エクセル) Excelの複数人での参照について 2 2022/06/01 13:38
- SoftBank(ソフトバンク) ソフトバンクiPhone8→LINEMO iPhone13に機種変更・プラン変更する場合の手順を教え 3 2022/05/07 19:42
- Excel(エクセル) エクセルの表示形式について教えてください あるセルの「A」という値と、別のセルの「B」という値を組み 4 2023/02/21 21:55
- iPhone(アイフォーン) iphone14plusを購入しましたが、現在の通信プランが4Gです。 明後日5Gにプラン変更に行く 2 2022/10/19 22:14
- iPhone(アイフォーン) iPhone キャリア変更のみ iPhoneの本体はそのままで、キャリア変更をします。 iCloud 3 2022/12/24 23:34
- Visual Basic(VBA) Excelのマクロについて教えてください。 作業フォルダ内に2つのファイルがあります。 このファイル 2 2023/07/09 13:40
このQ&Aを見た人はこんなQ&Aも見ています
-
ACCESSで条件によってフォーム上のフィールドの色を変更
Access(アクセス)
-
Accessで別テーブルの値をフォームに表示したい
その他(データベース)
-
選択したチェックボックスのみチェックを入れたいのですが
その他(データベース)
-
-
4
アクセスでレコードの内容が変更されたかどうかを調べるには
Access(アクセス)
-
5
Accessのフォームのみ表示させたい
Access(アクセス)
-
6
Access サブフォームでの選択行の取得
その他(データベース)
-
7
access サブフォームにリストを表示させたいが一件しかレコードが表示されない
Access(アクセス)
-
8
access インポート時、既にあるデータは上書き
Access(アクセス)
-
9
他フォームのチェックボックスを参照した条件付書式
Access(アクセス)
-
10
Access VBAでタブコントロールで選択するタブをしていするには。
Access(アクセス)
-
11
VBAで条件付書式
Access(アクセス)
-
12
Accessのウインドウサイズの固定
Visual Basic(VBA)
-
13
Accessで埋め込んだサブフォーム(データシート形式)でデータ追加ができない
Access(アクセス)
-
14
実行時エラー3001「引数が間違った型、許容範囲外、または競合しています。」
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
回覧板の日付について質問です...
-
「24日の0時」って・・・
-
履歴書の日付間違いで落ちますか。
-
「時間」、「期日」、「日付」...
-
マクロボタンを押すと、ファイ...
-
日付はいつ変わる?25時って考...
-
エクセル マクロ 名前を付けて...
-
word2016 日付の自動更新してな...
-
Excelで1週間毎の集計(今週と...
-
エクセル シート上のTextBox(...
-
日のみ変わった場合の言い方
-
会社や役所などに提出する書類...
-
エクセル VBA 今日の日付...
-
2つの日付の中間の日付 エク...
-
ユニバのチケットを購入したの...
-
wordで日付
-
カレンダーで日付をワンタッチ...
-
差し込み印刷に当日の日付が入...
-
VBAフォームのテキストボックス...
-
ACCESSで日付ごとに自動連番(...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「24日の0時」って・・・
-
マクロボタンを押すと、ファイ...
-
日付の大小の表現
-
差し込み印刷に当日の日付が入...
-
「時間」、「期日」、「日付」...
-
回覧板の日付について質問です...
-
エクセル マクロ 名前を付けて...
-
履歴書の日付間違いで落ちますか。
-
エクセルで日付別にシートを分...
-
Excelについて
-
日付以外のデータを抽出したい...
-
差込印刷 縦書きで和暦(漢数...
-
EXCELで日付を****年上期、****...
-
Excelで1週間毎の集計(今週と...
-
エクセルで日付け表示で、明治...
-
Facebookで投稿日時を変更できない
-
フォームの値をクエリーに反映...
-
会社や役所などに提出する書類...
-
エクセルで6ヵ月後を自動入力で...
-
2つの日付の中間の日付 エク...
おすすめ情報