Actualizar los valores de Cuadro Combinado

Tengo un cuadro combinado llamado clientes, en propiedades tengo limitar a la lista y le he insertado código que al no estar en la lista me abra el formulario clientes

Me.cliente = 0
Dim Mensaje, Estilo, Título, Respuesta, MiCadena
Mensaje = "El cliente no esta en la lista, desea crear uno nuevo?" 
Estilo = vbYesNo + vbCritical + vbDefaultButton2 '
Título = "Clientes" ' Define el título.
Respuesta = MsgBox(Mensaje, Estilo, Título)
If Respuesta = vbYes Then ' El usuario eligió el botón Sí.
DoCmd.OpenForm "clientes", , , , acFormAdd, , NewData '
Else 
DoCmd.GoToControl "clientes"
clientes.Requery 
End If
Response = acDataErrContinue
End Sub

Me abre el formulario de clientes el problema es que cuando meto los nuevos datos en el formulario clientes no me actualiza los nuevos datos, en el formulario clientes he puesto la condición de refrescar pero aun así no me aparece

1 respuesta

Respuesta
1

Le hace falta esta instrucción después de abrir el formulario clientes

DoCmd. OpenForm "clientes",,,, acFormAdd,, NewData

Response = acDataErrAdded

Ahora no necesita después del Else la instrucción DoCmd. GotoControl "clientes" ni la instrucción clientes. Requery, reemplácelas por

MsgBox "Por favor seleccione un cliente de la lista", vbInformation, "Le informo"
Response = acDataErrContinue

En este caso sobra Response = acDataErrContinue que está después del END IF

He modificado lo que me decía en el cuadro combinado de la siguiente forma

Private Sub cliente_NotInList(NewData As String, Response As Integer)
Me.cliente = 0
Dim Mensaje, Estilo, Título, Respuesta, MiCadena
Mensaje = "El cliente no esta en la lista, desea crear uno nuevo?"
Estilo = vbYesNo + vbCritical + vbDefaultButton2 '
Título = "Clientes" ' Define el título.
Respuesta = MsgBox(Mensaje, Estilo, Título)
If Respuesta = vbYes Then ' El usuario eligió el botón Sí.
DoCmd.OpenForm "clientes", , , , acFormAdd, , NewData '
Else

End If

MsgBox "Por favor seleccione un cliente de la lista", vbInformation, "Le informo"
Response = acDataErrContinue
End Sub

y en el formulario de clientes he puesto al cargar formulario lo siguiente

Private Sub Form_Load()
DoCmd.OpenForm "clientes", , , , acFormAdd, , NewData
Response = acDataErrAdded
End Sub

Pero sigue sin actualizar el cuadro combinado, me podría indicar que es lo que hogo mal

Muchas gracias

Le adjunto el código para que lo copie

Private Sub cliente_NotInList(NewData As String, Response As Integer)
    Dim Mensaje, Estilo, Título, Respuesta, MiCadena
    Mensaje = "El cliente no esta en la lista, desea crear uno nuevo?"
    Estilo = vbYesNo + vbCritical + vbDefaultButton2 '
    Título = "Clientes" ' Define el título.
    Respuesta = MsgBox(Mensaje, Estilo, Título)
    If Respuesta = vbYes Then ' El usuario eligió el botón Sí.
      DoCmd.OpenForm "clientes", , , , acFormAdd, , NewData
      Response = acDataErrAdded
    Else
     MsgBox "Por favor seleccione un cliente de la lista", vbInformation, "Le informo"
     Response = acDataErrContinue
    End If
End Sub

No necesita hacer absolutamente nada al cargar el formulario clientes.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas