Cuadro de mensaje en formulario access

Tengo un formulario en el que hago una búsqueda con un boton de buscar en una tabla con un cuadro de texto [txtbuscarcontrato], y si encuentra el registro en la tabla me rellena un subformulario, funciona bien, lo que no consigo hacer es que si el dato a buscar no esta en la tabla me salga un mensaje de "No encontrado" no se que condición añadir. Si el cuadro [txtbuscarcontrato] esta vacio sale el mensaje pero si no esta el contrato no sale nada se queda con la ultima busqueda hecha.

Las macros que tengo son estas:

DefinirVariableTemporal
Nombre nomcontrato
Expresión = [TxtBuscarContrato]
Si EsNulo([Variables temporales]![nomcontrato]) Entonces

CuadroDeMensaje
Mensaje Es necesario escribir un contrato Bip Sí Tipo Aviso:¿?

Titulo Mensaje
Sino
EncontrarRegistro
Tipo de objeto Formulario
Nombre del objeto f_gestiones_cto
Registro Condición WHERE
Primero
= ="(contrato].(NumCto_tcto] ='" & (Variables temporales]![nomcontrato] &"'"

1 Respuesta

Respuesta
2

Yo no utilizo macros, y por tanto no te puedo dar una solución con ese sistema, pero, si te da lo mismo usar código VBA, esta es la forma de hacerlo:

1º/ Saca las propiedades de tu botón, y en la pestaña eventos cambia [Macro Incrustada] o el nombre de la macro que tengas en la linea "Al hacer click" por estp: [Procedimiento de evento], y pulsa en el botón de la derecha con 3 puntos.

2º/ Se te abrirá el editor de VBA, y entre las lineas Private Sub NombreDeTuBoton_Click() y End Sub, escribes esto:

Dim nomContrato As String

Dim rst As DAO.Recordset

Dim miCriterio As String

nomContrato=Nz(Me.TxtBuscarContrato,"")

If nomContrato="" Then

MsgBox "Es necesario escribir un contrato",vbInformation, "AVISO"

Exit Sub

End If

Set rst=Me.RecordsetClone

miCriterio="NumCto_tcto='" & nomContrato & "'"

rst.FindFirst miCriterio

If rst.NoMatch Then

Msgbox "Contrato no encontrado", vbInformation,"No Encontrado"

Else

Me.BookMark=rst.BookMark

End If

rst.Close

Set rst=Nothing

Comprueba que los nombres de los campos y controles (que te pongo en negrita) son los correctos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas