Dudas sobre formularios y msgbox al hacer consulta en una base de datos de Microsoft Access

Tengo un formulario y quiero que si busco un campo y no se encuentra me aparezca un msgbox en que diga que no se encuentra el registro. El código que he puesto es este:
Dim stDocName As String
    Dim stLinkCriteria As String
    stDocName = "LICENCIAS"
    If stLinkCriteria = "[NOMBRE]=" & "'" & Me![nombre1] & "'" Then
    DoCmd.OpenForm stDocName, , , stLinkCriteria
    DoCmd.Close acForm, Me.Name
    Else
        MsgBox ("No se encuentra el registro en la Base de Datos.")
    End If
El problema es que si no se encuentra aparece el msgbox pero si se encuentra también aparece.
1

1 respuesta

Respuesta
1
Supongamos que la tabla se llama Clientes con el campo Nombre y el cuadro dónde introduces el nombre Nombre1, en la acción por ejemplo Al perder el enfoque de este cuadro ---> Procedimiento de evento ---> Pones el código siguiente:
If IsNull(DLookup("[Nombre]","[Clientes]","[Nombre]=Form!Nombre1.value"))=True then
MsgBox ("No se encuentra el registro en la Base de Datos.")
else
DoCmd.OpenForm stDocName, , , ]","[Nombre]=Form!Nombre1.value"
end if
Es decir si la búsqueda en el campo Nombre de la tabla Clientes en el que el Nombre es igual al valor del cuadro de texto Nombre1 da nulo ---> No existe sino ---> abre el formulario.
Me cuentas.
¡Muchas gracias! Me ha servido de mucho. Funciona correctamente. Pero tendría otra pregunta más.
Mira tengo un cuadro de texto en el que te permite buscar por nombres las participación que tiene esa persona, pero en la tabla tengo nombre1 y nombre2 y quisiera que si introduzco el nombre = al del nombre1 me lo busque y si es igual al del nombre2 también me lo busque peor no lo hace.
Primero buscamos en Nombre1 y si devuelve nulo buscamos en Nombre2:
If IsNull(DLookup("[Nombre1]","[Clientes]","[Nombre1]=Form!NombreCuadroTexto.value"))=True then
If IsNull(DLookup("[Nombre2]","[Clientes]","[Nombre2]=Form!NombreCuadroTexto.value"))=True then
MsgBox ("No se encuentra el registro en la Base de Datos.")
else
DoCmd.OpenForm stDocName, , , ]","[Nombre2]=Form!NombreCuadroTexto.value"
end if
else
DoCmd.OpenForm stDocName, , , ]","[Nombre1]=Form!NombreCuadroTexto.value"
end if
Me cuentas.
Muchas gracias de nuevo, me funciona correctamente. Tengo una última consulta si no es de mucha molestia. No sé como quitar la barra de un cuadro combinado.
¿A qué barra te refieres?
A la barra de texto que sale en todos los cuadros de texto
Cuando insertas un cuadro combinado, de texto ... etc se inserta también una etiqueta a la izquierda, si es a eso a lo que te refieres con seleccionarla y pulsar suprimir tienes bastante.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas