Como isso está retornando um valor em branco?

Portanto, esse código deve servir como um sistema de pesquisa simples para acessar determinados registros em um conjunto de registros. Originalmente, eu tinha que clicar no botão btnGoToID para realizar a pesquisa. Decidi torná-lo um pouco mais fácil de usar e fazê-lo para que o campo de pesquisa escutasse o botão Enter e que também realizasse a pesquisa.

O problema que eu estou enfrentando quando o código chega aostrID = Trim(Nz(Me.txtSearch.Value, "")) o valor retornará aleatoriamente como uma string vazia, embora visualmente eu possa ver que há um valor na caixa de texto.

Não consegui restringir nenhum padrão para quando esse problema ocorrer. Neste ponto, eu nem sei como solucionar esse problema, nem as palavras a serem pesquisadas poderiam gerar resultados no Google. Tudo o que posso dizer é que parece que a alteração entre registros afetará se a pesquisa será ou não concluída.

Isso sempre funcionou até que eu coloquei o procedimento sub txtSearch_KeyPress.

'============================================================================
' txtSearch_KeyPress
'============================================================================
Private Sub txtSearch_KeyPress(KeyAscii As Integer)
    'If user pressed enter
    If KeyAscii = 13 Then
        Call btnGoToID_Click
    End If
End Sub



'============================================================================
' btnGoToID_Click
'============================================================================
' <<Purpose>>
' Allow the user to search for a specific ID 
'============================================================================
Private Sub btnGoToID_Click()
On Error GoTo Err_Handler

    Dim rs As Recordset
    Dim strID As String

    Set rs = Me.RecordsetClone

    strID = Trim(Nz(Me.txtSearch.Value, ""))

    If (strID <> "") Then

        'Go to the ID
        rs.FindFirst "ID = '" & strID & "'"

        If rs.NoMatch Then
            MsgBox "ID does not exist"
        Else

            'If we have a match, set the record as the current record
            Me.Bookmark = rs.Bookmark
        End If
    Else
        MsgBox "Please enter a valid ID.", vbOKOnly, "Invalid ID"
    End If


Exit_Handler:
On Error Resume Next

    Me.txtSearch.Value = ""
    rs.Close
    Set rs = Nothing
    Exit Sub

Err_Handler:
    Call LogError(Err.Number, Err.Description, "txtSearch on " & Me.Name)
    Resume Exit_Handler
End Sub

Após a conversa nos comentários, reduzi a questão para ser muito mais simples. Isso gera uma mensagem de erro "Uso inválido de nulo", mesmo após vários caracteres no campo de texto. Por que isso aconteceria e o que posso fazer para obter os valores na caixa de texto?

'============================================================================
' txtUnitNoToSearch_KeyPress
'============================================================================
Private Sub txtUnitNoToSearch_KeyPress(KeyAscii As Integer)
    MsgBox Me.txtUnitNoToSearch
End Sub

questionAnswers(1)

yourAnswerToTheQuestion