Access - Filtro formulario

 
Vista:

Filtro formulario

Publicado por margonjur (17 intervenciones) el 26/10/2005 17:36:49
Hola a todos:
Tengo una base de datos con un formulario que tiene muchos campos, además tengo un campo de texto que lo utilizo para buscar sobre un determinado campo. El código es el siguiente:

Private Sub b2_Exit(Cancel As Integer)
Dim strCond As String
On Error GoTo ERR_1
strCond = " NUMERO_ASU = Forms!expedientes!b1 And ANO_ASUNT = Forms!expedientes!B2"
Forms![expedientes].FilterOn = True
Forms![expedientes].Filter = strCond
DoCmd.GoToControl "B1"
Exit Sub
ERR_1:
Resume FINN
FINN:
DoCmd.GoToControl "B1"
End Sub

El problema surge cuando un usuario escribe un dato que no existe (no es un error, puede no existir), entonces el formulario se pone como para grabar un nuevo registro y lo que me interesaba es que aparaciera un mensaje diciendo que no existe ningun registro con los datos solicitados y apareciera el primer registro de la base de datosl
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Mostrar mensaje si no se encuentra ningún registro con los datos solicitados en un formulario de bús

Publicado por Alejandro (4142 intervenciones) el 13/06/2023 00:01:23
Puedes modificar el código que utilizas para buscar registros en tu formulario y agregar una verificación para mostrar un mensaje cuando no se encuentre ningún registro con los datos solicitados. A continuación, te proporciono un ejemplo de cómo puedes hacerlo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
On Error GoTo ERR_1
 
strCond = "NUMERO_ASU = " & Forms!expedientes!b1 & " AND ANO_ASUNT = " & Forms!expedientes!B2
 
Set rs = Me.RecordsetClone ' Clona el recordset del formulario actual
 
rs.FindFirst strCond ' Busca el primer registro que cumpla la condición
 
If rs.NoMatch Then ' Si no se encontró ningún registro
    MsgBox "No se encontró ningún registro con los datos solicitados.", vbInformation, "Sin coincidencias"
    rs.Close ' Cierra el recordset clonado
    Set rs = Nothing
    Me.Undo ' Descarta los cambios en los campos del formulario
    Exit Sub
Else
    Me.Bookmark = rs.Bookmark ' Mueve el formulario al registro encontrado
End If
 
rs.Close ' Cierra el recordset clonado
Set rs = Nothing
 
Exit Sub
 
ERR_1:
    MsgBox "Ocurrió un error al buscar los registros.", vbExclamation, "Error de búsqueda"
    Resume FINN
 
FINN:
    Me.Undo ' Descarta los cambios en los campos del formulario
    Exit Sub
End Sub

En este código, se utiliza un recordset clonado para buscar el primer registro que cumpla la condición especificada. Si no se encuentra ningún registro, se muestra un mensaje y se deshacen los cambios en los campos del formulario. Si se encuentra un registro, el formulario se mueve a ese registro.

Espero que este código te ayude a mostrar un mensaje cuando no se encuentren registros con los datos solicitados en tu formulario de búsqueda. ¡Buena suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar