Add this to a Standard Module:
Public Function HexColor(strHex As String) As Long
'converts Hex string to long number, for colors
'the leading # is optional
'Me.iSupplier.BackColor = HexColor("FCA951")
'Me.iSupplier.BackColor = HexColor("#FCA951")
'the reason for this function is to programmatically use the
'Hex colors generated by the color picker.
'The trick is, you need to reverse the first and last hex of the
'R G B combination and convert to Long
'so that if the color picker gives you this color #FCA951
'to set this in code, we need to return CLng(&H51A9FC)
Dim strColor As String
Dim strR As String
Dim strG As String
Dim strB As String
'strip the leading # if it exists
If Left(strHex, 1) = "#" Then
strHex = Right(strHex, Len(strHex) - 1)
'reverse the first two and last two hex numbers of the R G B values
strR = Left(strHex, 2)
strG = Mid(strHex, 3, 2)
strB = Right(strHex, 2)
strColor = strB & strG & strR
HexColor = CLng("&H" & strColor)
Save the Module and name it HexColorConvert
In Form Design View, select a Control and go to Properties - Format and select the BackColor, using the Color Palette. Note the Hex number that Access generates for this color. One shade of pink is #EFD3D2.
Now use this code, loading the identified Hex number into the HexColor() function:
Private Sub Form_Load()
Me.DatasheetBackColor = HexColor("#EFD3D2")
You can set the BackColor when a Control/Cell has Focus using Conditional Formatting with the 'Field has Focus' Condition.
I've had this code archived for several years, and sadly, do not have the name of the author.
Last edited by Missinglinq; 09-09-14 at 23:12.
Hope this helps!
The problem with making anything foolproof...is that fools are so darn ingenious!
All posts/responses based on Access 2003/2007