Problemas al rellenar campos de formulario en base a un cuadro combinado

En un formulario independiente tengo un cuadro combinado que me busca datos en una tabla y me los trae al formulario. El problema se me plantea cuando el valor que se introduce en el cuadro combinado no está en la tabla. Que me sale un mensaje disidiendo que ese valor no pertenece a la lista de valores,

La idea es que al introducir el valor en el cuadro combinado, mire a ver si existe ese valor en al tabla y si es así, traiga el resto de valores del registro,, en caso contrarío, me permita continuar introduciendo datos

¿Cómo puedo hacer esto?

1 respuesta

Respuesta
1

Tengo el siguiente formulario para ingresar compras:

Digito el proveedor 14316004 el cual no está en la lista y obtengo el mensaje que me indica que el proveedor no está en la lista y que si quiero adicionarlo, hago clic en Sí y me abre el formulario de Proveedores.

Observe que pasa el NIT y deja el campo bloqueado, solo puedo completar la información del proveedor. Cierro el formulario y retorno a formulario inicial de las compras. Este formulario tiene que tener en el evento Al Cargar el siguiente código:

Private Sub Form_Load()
  If Not IsNull(Me.OpenArgs) Then
    Me.NIT = Me.OpenArgs
    Me.NIT.Enabled = False
    Me.Nombre.SetFocus
  Else
    DoCmd.GoToRecord , , acNewRec
  End If
End Sub

Observe que obtengo la información del proveedor, esto porque el cuadro combinado Proveedor tiene todos los campo y los paso con Column(x), en donde x es el número que le corresponde a cada campo, pero no es necesario en el caso de su pregunta.

CÓDIGO DEL EVENTO AL NO ESTAR EN LA LISTA

Private Sub cbobuscar_NotInList(NewData As String, Response As Integer)
 Dim intReply As Integer
       intReply = MsgBox("El Proveedor '" & NewData & _
       "' no está en la lista, quiere adiconarlo ?", vbYesNo, "Registrando Compra")
       If intReply = vbYes Then
          'Abre el formulario frProveedor pasando los nuevos
          'datos en el paramétro OpenArgs
          DoCmd.OpenForm "frProveedor", , , , acFormAdd, acDialog, UCase(NewData)
          'Registro añadido cancelamos el procedemiento predeterminado de Acces
          Response = acDataErrAdded
       Else
          MsgBox "Por favor seleccione un proveedor de la lista", vbInformation, "Registrando Compra"
          'Tratamos el error y decimos a Access que continue
          Response = acDataErrContinue
       End 

El cuadro combinado debe estar configurado el "Limitar a lista" en SI.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas