So, how do I have this control's value calculated using the function?
You can't. Not directly. A bound textbox wants an underlying record. You could make an UNBOUND text box that has a value originating from a form's OnCurrent event.
I want the calculation to be performed continuously on every record, without depending on an event to occur, since the calculation will change everyday.
If you meant that literally as it reads, you can't. But we could have a nomenclature problem. One of these two cases might apply.
a. You want the value in the form's textbox to change when someone else sharing this database updates something that affects the value... NO, you need an event to trigger code. You MIGHT be able to do this, say, every minute using an OnTimer event. Don't forget, you are in a Windows box. You might not realize this, but trust me. NOTHING occurs in Windows without an event somewhere, even if it is only a timer event. It is not only Access that has this problem, but every program suitable for use with good ol' Windows, too!
b. You want the value in the form's textbox to be reevaluated every time you change underlying records on the form. YES, use the OnCurrent event to recompute the value for the unbound text box.
When I open the form, I get the error "You Can't Assign a Value to This Object".
Anyone know why I get the error?
Yeah, Access doesn't have an underlying recordset as the recordsource for the box so any changes to its contents cannot be recorded anywhere. Well, when you compute a conditional result to change the contents of the TextBox, Access wants to write that result in the recordset - but there isn't one! Instead, you get what APPEARS to be a recursive call to the very same function that wanted to update the text box in the first place. Access detects this implied recursion and runs screamin' like a banshee.