Buscar comando access formulario

Quiero realizar un flitrado en un formulario a forma de búsqueda. El caso es que funciona correctamente si hay resultados pero cuando no obtengo resultados genera error 2424 en tiempo de ejecución.

Tengo el siguiente código

Private Sub Comando24_Click()
Dim Buscar As String: Buscar = _
InputBox("Palabra a Buscar", "Búsqueda")
If Buscar = "" Then
Exit Sub
Else
RecordSource = "SELECT * FROM Fondos " _
& " WHERE [Título] LIKE '" & "*" & Buscar & "*" & "'"
If Título <> "" Then
MsgBox "Encontrado"
Else
RecordSource = "SELECT * FROM Fondos "
DoCmd.Close
DoCmd.OpenForm "Fondos"
MsgBox "No Encontrado"
End If
End If
End Sub

El problema esta en la linea If Título <> "" Then, no accede al siguiente else... Creo.

Gracias por vuestra colaboración.

Saludos

1

1 respuesta

Respuesta
1

Creo que es mejor utilizar la función IsNull para preguntar si es igual o distinto de "".

If IsNull(Titulo)=False then

Si quieres preguntar si es nulo: IsNull()=True

nada no tira... la cuestión es que creo que estoy planteando mal el if.

Lo que necesito poner como condición es si el RecordSource tiene resultados o no. Osea si RecordSource es >=1. Porque con lo del titulo no tira...

Como solución provisional, voy a quitar los MsgBox porque el flitro si funciona bien.

gracias.

Para ver si un recordset tiene resultados tienes que utilizar RecordCount

Supongamos que quieres ver si un recordset (rs) devuelve registros seleccionando una ciudad por el campo idciudad de una tabla ciudades, el código sería:

Dim db As Database

Dim rs As Recordset

Set db = CurrentDb

Set rs = db.OpenRecordset("select idciudad from ciudades where idciudad='madrid'")

If rs.RecordCount = 0 Then

MsgBox "No existe el registro"

Else MsgBox "Si existe el registro"

End If

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas