Necesito información sobre la utilización de botones de comando al realizar una búsqueda en access

Hola buen día. Tengo una duda, poseo un botón de comando que realiza una búsqueda y me la visualiza en un formulario, si el registro no existe me arroja al formulario con la pantalla en blanco, me conseguí el siguiente comando, para que cuando esto suceda no deje pasar al siguiente formulario y me arroje un texto que diga "registro no existe", pero al tratar de adicionarle esto al botón de comando no me lo acepta. Me podrías colaborar, te lo agradezco
Dim Rst as Recordset
Dim Qry as String
Qry = "  ingresar la misma consulta que tiene el formulario que sale en blanco"
Set Rst= Application.CurrentDb.OpenRecordset(Qry)
If Rst.RecordCount = 0 Then
    MsgBox "No existen reg ............"
else
     DoCmd.OpenForm...
Endif

1 respuesta

Respuesta
1
La forma más fácil de hacer eso es mediante tratamiento de error, de la siguiente manera:
En el código del formulario de "resultados ", en el evento "Al Abrir" ponés lo siguiente:
Private Sub Form_Open(Cancel As Integer)
On Error GoTo MSG
If me.NombreCualquierCuadroDeTexto = zzz Then
End If
exit_Form_Open:
Exit Sub
MSG:
MsgBox "No se encontraron resultados", vbInformation, "Título Mensaje"
Cancel = True
End Sub
Bueno, te explico un poco cómo funciona:
On Error GoTo MSG
Si se produce un error pega un salto y continúa ejecutando el código desde la etiqueta "MSG:"
------------------------------------
If me.NombreCualquierCuadroDeTexto = zzz Then
End If
Acá se puede poner cualquier expresión, sin importar si se cumple o no, ya que no vamos a asignarle ninguna acción. Lo importante es que estamos involucrando un campo de la consulta representado como un cuadro de texto en el formulario, el cual no se podrá encontrar si no hay resultados en la consulta. De forma que si no hay resultados se produce un error.
-------------------------------------
exit_Form_Open:
Exit Sub
MSG:
Salimos del Sub y abrimos la etiqueta MSG
-------------------------------------
MsgBox "No se encontraron resultados", vbInformation, "Título Mensaje"
Salta el mensaje
------------------------------------
Cancel = True
Se cancela la acción de abrir el formulario
------------------------------------
Y para el botón que abre el formulario poné:
On Error Resume Next
DoCmd.OpenForm "NombreFormulario"
__________________________________________
Bueno, eso es todo, pruébalo y cualquier cosa preguntame.
hola como estas, mira ya hice lo que me dices, pero en esta parte "If me.NombreCualquierCuadroDeTexto = zzz Then", cree en el formulario un cuadro de texto, el cual involucra un campo de la consulta, pero todos los registros me aparecen con error.
probe lo siguiente:
la consulta la deje como solamente consulta y en el formulario no lo cree el cuadro de texto, y en el comando en la parte de "If me.NombreCualquierCuadroDeTexto = zzz Then", le asigne el nombre de una campo relacionado de la consulta, y me funciona, lo que hice estaria bien o me presentaria algun problema mas adelante??
Está bien hecho, esa es la idea, que al no haber registros ese campo no se puede encontrar y se produce el error y es ahí que salta el mensaje y se cancela la acción de abrir el formulario. Muy bien, finalizá! Cualquier cosa avisame y te ayudo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas