You don't want VBA to evaluate the expression (except for concatenating variables that provide parameters). The VBA is just to build a string that will be passed to the Filter property of the form or report. Then Access via the form or report will evaluate the expression. The only function I have ever used this way is IsNull. Examples:
Me.Filter = "IsNull(Submit.DateOut)"
Me.FilterOn = True
Me.Filter = "IsNull(Submit.DateOut) AND Submit.DateEnter < #" & DateAdd("ww", -2, Date) & "#"
Me.FilterOn = True
It's like using VBA to build an SQL statement. Constructed SQL string can be used to set RecordSource property of a form/report or can be executed in VBA to open a recordset or used with QueryDefs to modify an Access query object. Any functions included in the construct will be processed by the target object.