Something doesn't look right in the code.
vSearchString = SearchFor.Text
Here you are getting the uncommitted text from the textbox.
I would try the following changes (if the list box multi-select property is set to NONE):
Code:
If Len(Me.SrchText) <> 0 And InStr(Len(SrchText), SrchText, " ", vbTextCompare) Then
'Set the focus on the first item in the list box
' Me.SearchResults = Me.SearchResults.ItemData(1)
Me.SearchResults.Selected(1) = True
Me.SearchResults.SetFocus
'Requery the form to refresh the content of any unbound text box that might be feeding off the record source of the List Box
DoCmd.Requery
'Returns the cursor to the the end of the text in Text Box SearchFor,
'and restores trailing space lost when focus is shifted to the list box
Me.SearchFor = vSearchString
Me.SearchFor.SetFocus
Me.SearchFor.SelStart = Me.SearchFor.SelLength
Exit Sub
End If
'Set the focus on the first item in the list box
' Me.SearchResults = Me.SearchResults.ItemData(1)
Me.SearchResults.Selected(1) = True
Me.SearchResults.SetFocus
This is hard to troubleshoot without being able to run the code. Have you put a breakpoint on the first IF statement, then stepped through the code to see on which line the error occurred?