La Web del Programador: Comunidad de Programadores
 
    Pregunta:  8151 - ACTUALIZACIóN DE CAMPOS RELACIONADOS
Autor:  Vicente Tobarra López
Hola,

Tengo una base de datos para controlar unos clientes. Estos clientes tienen una localidad y una
provincia. Estos datos están en otra tabla y son visibles en el formulario de clientes a partir de la
relación existente entre las dos tablas.
En el formulario puedes escoger la localidad a partir de una desplegable y la provincia se
actualiza automáticamente.
La pregunta es: ¿como puedo hacer que además de poder escoger de la lista se pueda insertar
una nueva localidad y provincia, y si no existe en la tabla de localidades que la añada y me informe
el campo id de la localidad en la tabla de cliente?. Si existe solamente me interesa que informe el id
de la tabla clientes.

Gracias,

  Respuesta:  WILSON CARLOS CASTRO RIVERA
Vicente:

Tengo un ejemplo en access que puedo mandarte sobre este tema; para esto necesito su correo electrónico.

Saludos

  Respuesta:  Oscar López Calderon
Si lo he entendido bien, en el fomulario tienes un cuadro desplegable que te muestra todas las localidades y provincias que tienes en la tabla de localidades-provincia.
Si quieres introducir una nueva localidad tienes que escribir código, en el evento Non_in_list del cuadro desplegable tienes que escribir algo como:

'Abre la tabla Localidades i añade el valor NewData.
Set dbsOscar = CurrentDb()
Set rstLocalidades = dbsOscar.OpenRecordset("TblLocalidades")
rstLocalidades.MoveFirst
rstLocalidades.AddNew
rstLocalidades!IDlocalidad = ID 'el que tu quieras
rstLocalidades!localidad = NewData
rstLocalidades.Update
Response = acDataErrAdded 'Vuelve a consultar la lista

He puesto un par de comentarios para aclarar el código.
Con este código añades la nueva localidad.
Para ligar esta nueva localidad con el cliente solo tienes que poner como origen del control del cuadro desplegable el campo IDLocalidad de la tabla clientes.

Sin conocer la estructura que tienes montada no puedo decirte nada más.
Si tienes alguna duda escribeme un e-mail. También lo puedes enviar a: [email protected]

Suerte,