¿Cómo devuelve esto un valor en blanco?
Por lo tanto, este código está destinado a servir como un sistema de búsqueda simple para ir a ciertos registros en un conjunto de registros. Originalmente lo tenía, así que tuvieron que hacer clic en el botón btnGoToID para realizar la búsqueda. Decidí hacerlo un poco más fácil de usar y hacerlo para que el campo de búsqueda escuchara el botón Enter y eso también llevaría a cabo la búsqueda.
El problema que me encuentro cuando el código llega astrID = Trim(Nz(Me.txtSearch.Value, ""))
el valor regresará aleatoriamente como una cadena vacía, aunque visualmente puedo ver que hay un valor en el cuadro de texto.
No he podido reducir ningún patrón para cuando ocurre este problema. En este punto, ni siquiera sé cómo solucionar este problema, ni las palabras para buscarlo podrían arrojar resultados en Google. Todo lo que puedo decir es que parece que cambiar entre registros afectará si la búsqueda se realiza o no.
Esto siempre ha funcionado hasta que puse el subprocedimiento 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
Después de la conversación en los comentarios, he reducido esta pregunta para que sea mucho más simple. Esto produce un mensaje de error "Uso no válido de nulo" incluso después de que haya varios caracteres en el campo de texto. ¿Por qué sucedería eso y qué puedo hacer para que recoja los valores en el cuadro de texto?
'============================================================================
' txtUnitNoToSearch_KeyPress
'============================================================================
Private Sub txtUnitNoToSearch_KeyPress(KeyAscii As Integer)
MsgBox Me.txtUnitNoToSearch
End Sub