Validar si existe o no un registro desde formulario

Lo que estoy buscando es que en un formulario de ventas al ingresar un id de cliente, ( en una caja de texto) si este no llegara a existir, que me habra el formulario de agregar cliente.

1 Respuesta

Respuesta
2

Vamos a suponer que la tabla se llama Clientes. En el evento Antes de actualizar del cuadro de texto Idcliente puedes poner

Private Sub IdCliente_BeforeUpdate(Cancel As Integer)
Dim clientenuevo As Integer, título As String, mensaje As Integer
título = "El cliente que ha escrito no está en la lista"
mensaje = vbYesNo + vbDefaultButton1
clientenuevo = MsgBox("¿Desea agregar este cliente a la lista ?", mensaje, título)
If clientenuevo = vbYes Then
DoCmd.OpenForm "clientes", acNormal, "", "", acAdd, acDialog
Response = acDataErrAdded
End If
End Sub

Es decir, comprueba que no existe ese IdCliente. Entonces te muestra el mensaje. Si aceptas, se abre en vista diálogo el formulario Clientes para que anotes sus datos. Cuando cierres este formulario, en el de Ventas ya te aparece ese IdCliente

¡Gracias, Gracias, Gracias, Gracias. Eres un excelente MAESTRO  

Me he encontrado con un pequeño problemita: en el evento, siempre me aparece el mensaje, aunque ingrese un id cliente que existe en la tabla de clientes. Gracias

Tienes toda la razón, la culpa es mía por "Cortar" y "Pegar", y ya se sabe, en esta fechas(cualquier disculpa es válida).

Tengo una tabla Clientes con 92 Idcliente. En el formulario Pedido, si pongo

Cuando pulso Enter

Pulso Si

Cuando cierro el formulario Clientes

Relleno los datos 

Me voy al siguiente registro y le pongo un Idcliente que "si sé que está"

Cuando pulso Enter

El código correcto es

Private Sub IdCliente_BeforeUpdate(Cancel As Integer)
If Nz(DCount("*", "clientes", "idcliente=" & Me.IdCliente & "")) = 0 Then
Dim clientenuevo As Integer, título As String, mensaje As Integer
título = "El cliente que ha escrito no está en la lista"
mensaje = vbYesNo + vbDefaultButton1
clientenuevo = MsgBox("¿Desea agregar este cliente a la lista ?", mensaje, título)
If clientenuevo = vbYes Then
DoCmd.OpenForm "clientes", acNormal, "", "", acAdd, acDialog
Response = acDataErrAdded
End If
End If
End Sub

De todas formas, personalmente usaría un combinado y usaría el evento Al no estar en lista.

¡Nuevamente, Gracias. No se cual es tu opción religiosa, pero por las dudas, Que pases una excelente Navidad y un Venturoso 2020. Saludos y un Gran Abrazo desde Argentina

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas