Adrian,
It's a good practice to get in the habit of making things like this 'table-driven'. What that means in this case, is to make a small table, load it (you can load it in a loop similar to the loop that sets the Got/Lost focus events--automate everything if you can!)
The table, we'll call it tblCtrlColor, will have several fields, depending on how involved you want to get.
Key field is CtrlName, which you'd have the name of each control on the form. The other fields might be
CtrlNormalForeColor
CtrlNormalBackColor
CtrlFocusForeColor
CtrlFocusBackColor
Load the appropriate color values.
Now, you can rename the SetBlue and SetWhite so they're not confusing (since Blue and White aren't relavent here anymore)
Name them something like HiLite() and UnHilite().
Then, the code looks like this:
Function HiLite() 'for the GotFocus Event
on error resume next
dim x
x = dlookup("CtrlFocusForeColor","tblCtrlColor","CtrlName = '" & Screen.Activecontrol.name & "'"

Screen.Activecontrol.Forecolor = x
x = dlookup("CtrlFocusBackColor","tblCtrlColor","CtrlName = '" & Screen.Activecontrol.name & "'"

Screen.Activecontrol.Backcolor = x
'(you can use a Control variable to save the multiple calls to Screen.ActiveControl)
End Function
The UnHilite would have the appropriate corresponding changes, you get the picture.
The reason for thinking of things in a 'table driven' way is that you can make changes to the colors (in this case) at will without even shutting down the db--users can be using the live app and you can test color changes without changing a bit of code. And that table is so small, the access to it will be extremely fast--it's not like it will slow down your app at all. Things to speed up the app might be dimming a Form-Scoped variable of Control type, and assigning the Screen.ActiveControl to this var. Form scope will save time since you're not dimming and killing the variable on every single focus event, and since you're referencing the ActiveControl 4 times, assigning to a var. makes sense.
I also recommend passing the control name in the HiLite function call, so when you automate the populating of the Got/Lost focus events, hardcode the controlname, and accept it in the Functions as a string, or send it as the control itself.
I hope this helps,
--Jim