Estoy trabajando con Formularios de Access

Tengo una base de datos en access 2003, la tablas CONTRATOS y TERCEROS, se relacionan entre si, creo un formulario CONTRATACION, y en uno de los campos combinados debo agregar por el numero de cedula los Terceros, si el tercero se encuentra me lo muestra, al no encontrarlo en la tabla Terceros, me saque un mensaje que diga "el tercero no se encuentra creado, desea crearlo?" si digo "SI" tenga la posibilidad de crearlo.

1 respuesta

Respuesta

Hay varias formas de hacerlo, te dejo un enlace del experto Neckkito Nck :

http://siliconproject.com.ar/neckkito/index.php/component/content/article/93-ejemplos-explicados/ejemplos-de-formularios/123-alta-en-formulario-desde-formulario 

Y aquí te explico otra forma:

En el evento "Al no estar en la lista" de tu cuadro combinado, le generas este código:

Private Sub Empleado_NotInList(NewData As String, Response As Integer)
If MsgBox("El tercero no está en la lista ¿Dar de alta?", vbYesNo) = vbYes Then
    Response = acDataErrContinue
    DoCmd.OpenForm "Terceros", , , , acFormAdd, acDialog
    Me.Empleado = DMax("ID", "Terceros")
    Me.Contrato.SetFocus
    Me.Empleado.Requery
Else
    Response = acDataErrContinue
    Me.Empleado = ""
End If
End Sub

Explicación del código:

Si no está en la lista te hace la pregunta.

Si pulsas no, borra el valor introducido en el cuadro combinado (lo llamé Empleado)

Si pulsas en sí, te abre el formulario para introducir los datos del nuevo tercero (lo llamé Terceros), ya en un nuevo registro.

Al cerrar ese formulario, busca el último ID (campo clave de la tabla) de la tabla Terceros y se lo asigna al cuadro combinado. Para que no de errores, pasa el foco al siguiente campo ("Contrato" en el ejemplo) y recarga los datos del cuadro combinado.

Un saludo.


Un nuevo foro de access, visítanos: http://nksvaccessolutions.com/Foro/ 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas