Access - Problemas en consultas

 
Vista:

Problemas en consultas

Publicado por Xosé (11 intervenciones) el 15/04/2005 18:19:47
Hola, amigos.

Veréis, tengo un pequeño problema. Mi BD funciona perfectamente y no hay ningún problema, pero os quisiera consultar lo siguiente:
¿Cómo hacer para que cuando realizas una consulta y no existe ningún registro que responda al término/s de búsqueda, el sistema saque un cuadro de mensaje avirtiéndote de ello y emplazándote a efectuar una nueva búsqueda?. Hasta ahora lo maximo que he conseguido ha sido diseñar una consulta a la cual ligo una macro en donde incluyo varias operaciones:

-La primera de estas operaciones es Abrir Consulta, y especifico la consulta que quiero.

-La segunda operación que introduzco en la macro es Cuadrmsj, en donde pongo los argumentos de acción que quiero.

-La tercera operación que introduzco es cerrar, de manera que una vez efectuada la consulta y no haya habido resultados, tras darle aceptar en el cuadro de mensaje cuelvas al formulario y puedas volver a efectuar una consulta.

Todo está bien y funciona, salvo que el cuadro de mensaje sale siempre, obtenga resultados en la búsqueda o no. Y yo lo que quiero es que el cuadro de mensaje sólo salte cuando el término de búsqueda introducido no corresponda con ningún valor existenten en el campo por el que busco. Creo que mi rpobelma está en la condición con la que tengo qeu acompañar a alguna de las operaciones que introduje en la macro de la que os hablo.

Sabéis cuál puede ser?Y si noes así sabéis cómo decirme cómo he de hacer?.

GRACIAS!! :)
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 de búsqueda sin resultados y permitir nueva búsqueda

Publicado por Alejandro (4142 intervenciones) el 31/05/2023 00:57:41
Puedes utilizar una macro o código VBA para realizar la verificación de existencia de registros antes de mostrar el cuadro de mensaje. Aquí te proporciono un ejemplo de cómo hacerlo con código VBA:

1. Abre el evento "Al hacer clic" del botón de búsqueda en tu formulario o el evento correspondiente al proceso de búsqueda.

2. Agrega el siguiente código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Private Sub btnBuscar_Click()
    Dim strSQL As String
    Dim rs As DAO.Recordset
 
    'Obtener el término de búsqueda del cuadro de texto
    Dim searchTerm As String
    searchTerm = Me.txtBusqueda.Value
 
    'Construir la consulta SQL para verificar si existen registros que coincidan con el término de búsqueda
    strSQL = "SELECT COUNT(*) FROM [Tabla] WHERE [Campo] = '" & searchTerm & "'"
 
    'Abrir el recordset y realizar la verificación
    Set rs = CurrentDb.OpenRecordset(strSQL)
    If rs.Fields(0).Value = 0 Then
        'No se encontraron registros, mostrar cuadro de mensaje
        MsgBox "No se encontraron registros con el término de búsqueda especificado. Por favor, intenta nuevamente.", vbInformation, "Búsqueda sin resultados"
    Else
        'Existen registros, realizar la acción deseada (por ejemplo, mostrar los resultados en un subformulario)
        Me.subformulario.Form.RecordSource = "SELECT * FROM [Tabla] WHERE [Campo] = '" & searchTerm & "'"
    End If
 
    rs.Close
    Set rs = Nothing
End Sub

Asegúrate de reemplazar `[Tabla]` con el nombre de tu tabla y `[Campo]` con el nombre del campo por el que estás realizando la búsqueda.

Con esta solución, el cuadro de mensaje solo se mostrará cuando no se encuentren registros que coincidan con el término de búsqueda y podrás realizar una nueva búsqueda si así lo deseas.
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