Conditional Format

  • Thread starter quinto via AccessMonster.com
  • Start date
Q

quinto via AccessMonster.com

Would like a field in a form to turn yellow when another field in the same
record has focus but I have problems with the expression, is it possible?

Thanks

Quinto
 
B

banem2

Would like a field in a form to turn yellow when another field in the same
record has focus but I have problems with the expression, is it possible?

Thanks

Quinto

Hm, not sure that is possible? However, you can always use some code:

Private Sub SecondField_GotFocus()
FirstField.BackColor = vbYellow
End Sub

Private Sub SecondField_LostFocus()
FirstField.BackColor = vbWhite
End Sub

Regards,
Branislav Mihaljev, Microsoft Access MVP
 
Q

quinto via AccessMonster.com

It work but, not as intended. the whole column turns yellow, can I add
another line of code to apply to the same record only?

Thanks

Quinto

Would like a field in a form to turn yellow when another field in the same
record has focus but I have problems with the expression, is it possible?
[quoted text clipped - 5 lines]
Hm, not sure that is possible? However, you can always use some code:

Private Sub SecondField_GotFocus()
FirstField.BackColor = vbYellow
End Sub

Private Sub SecondField_LostFocus()
FirstField.BackColor = vbWhite
End Sub

Regards,
Branislav Mihaljev, Microsoft Access MVP
 
B

banem2

It work but, not as intended. the whole column turns yellow, can I add
another line of code to apply to the same record only?

Thanks

Quinto



Would like a field in a form to turn yellow when another field in the same
record has focus but I have problems with the expression, is it possible?
[quoted text clipped - 5 lines]
Hm, not sure that is possible? However, you can always use some code:
Private Sub SecondField_GotFocus()
   FirstField.BackColor = vbYellow
End Sub
Private Sub SecondField_LostFocus()
   FirstField.BackColor = vbWhite
End Sub
Regards,
Branislav Mihaljev, Microsoft Access MVP

It looks like (you didn't tells us so) that you have subform or form
as Continuous form or as Datasheet view where one field in Design View
contains many records in Form View. Using above code it will paint
whole column (it actually paints one field on form).

Regards,
Branislav Mihaljev, Microsoft Access MVP
 
Q

quinto via AccessMonster.com

OK I guess I should have expalain it better. Is there a way to highlight the
whole record in continous form when a condition is met in one field of the
record?

Thanks

Quinto

It work but, not as intended. the whole column turns yellow, can I add
another line of code to apply to the same record only?
[quoted text clipped - 25 lines]
It looks like (you didn't tells us so) that you have subform or form
as Continuous form or as Datasheet view where one field in Design View
contains many records in Form View. Using above code it will paint
whole column (it actually paints one field on form).

Regards,
Branislav Mihaljev, Microsoft Access MVP
 
L

Linq Adams via AccessMonster.com

That's a different question entirely, and depends on exactly what you mean by
"highlight the
whole record."

You can change the backcolor of each textbox in the record using Conditional
Formatting by

Holding down the <Shift> Key and selecting all of the textboxes
Going to Format - Conditional Formatting and entering

Expression Is [YourFieldName] = "Adams"

or

Expression Is [YourFieldName] > 100

or whatever, then choose your backcolor. The square brackets have to be
around the field name.

Another method, that's quite a bit more complicated, involves using an
unbound textbox below your other textboxes.

Make it slightly taller than your other textboxes, and long enough to appear
a little to the left of and a little to the right of your row of textboxes.

With the unbound textbox selected, goto Format and select "Send to Back"

Set the Conditional Format for this unbound textbox as described above.

Now, position the textbox so that it's behind the row of other textboxes,
slightly above and below, and slightly to the left and to the right of the
row.

Now, when the conditional for the given control is met, the unbound textbox,
which should now "envelop" your row of textboxes, will change color, "hi-
lighting" the record.

The only problem with this method is that if the unbound control gets focus,
it will come to the front, covering your row of textboxes. To prevent this

For the unbound textbox, go to Properties - Other and set Tab Stop to No

Then place this bit of code

Private Sub YourUnboundTextbox_Click()
Me.Field1.SetFocus
End Sub

where Field1 is any control on your record you'd like the focus on. By doing
this, if the user should acidentally click on the "background" textbox, focus
will go to the Field1 and the textboxes won't be covered up.

Good luck!
 
Q

quinto via AccessMonster.com

Thank you for your attempt to help me out. I do not want to the record to
change color when a condition is met but I want the record to change color
when the "ID" field has focus. This will make it easier for the user to focus
on the whole raw across the form.
Thanks Again

Quinto

Linq said:
That's a different question entirely, and depends on exactly what you mean by
"highlight the
whole record."

You can change the backcolor of each textbox in the record using Conditional
Formatting by

Holding down the <Shift> Key and selecting all of the textboxes
Going to Format - Conditional Formatting and entering

Expression Is [YourFieldName] = "Adams"

or

Expression Is [YourFieldName] > 100

or whatever, then choose your backcolor. The square brackets have to be
around the field name.

Another method, that's quite a bit more complicated, involves using an
unbound textbox below your other textboxes.

Make it slightly taller than your other textboxes, and long enough to appear
a little to the left of and a little to the right of your row of textboxes.

With the unbound textbox selected, goto Format and select "Send to Back"

Set the Conditional Format for this unbound textbox as described above.

Now, position the textbox so that it's behind the row of other textboxes,
slightly above and below, and slightly to the left and to the right of the
row.

Now, when the conditional for the given control is met, the unbound textbox,
which should now "envelop" your row of textboxes, will change color, "hi-
lighting" the record.

The only problem with this method is that if the unbound control gets focus,
it will come to the front, covering your row of textboxes. To prevent this

For the unbound textbox, go to Properties - Other and set Tab Stop to No

Then place this bit of code

Private Sub YourUnboundTextbox_Click()
Me.Field1.SetFocus
End Sub

where Field1 is any control on your record you'd like the focus on. By doing
this, if the user should acidentally click on the "background" textbox, focus
will go to the Field1 and the textboxes won't be covered up.

Good luck!
 
Top