Access: Como estructurar la base de datos

Hola a todos,


A ver si me podéis ayudar, acabo de comenzar a trabajar en Access y tengo algunas dudas.

Tengo dos tablas, una con proveedores y otra de productos. Me gustaría tener un formulario donde introducir la información del producto y desde un combobox seleccionar el proveedor de manera que en ese mismo formulario se llenaran de forma dinámica los campos asociados a éste. Por ejemplo:

Nombre de producto

PVP de producto

Proveedor

Dirección proveedor

Teléfono proveedor

La cosa sería ir rellenando el formulario hasta llegar a proveedor. Cuando selecciono éste, debería llenarse los campos de dirección y teléfono. Toda esta información (incluida las de los proveedores) deberían guardarse en la misma tabla de producto. Eso sería correcto? Quiero decir, una misma tabla para almacenar datos y otra para no repetir continuamente los datos.

Muchas gracias,

Respuesta
1

Si ya tienes una tabla con los datos de los proveedores, no es necesario que vuelvas a recoger los datos del proveedor en la tabla productos.

Supongo que en la tabla proveedores, tendrás un campo único que identifique a cada proveedor (NIF, CIF, código propio, un campo autonumérico...) de forma inequívoca. Y supongo también que tienes hecha la relación entre las dos tablas a través del proveedor.

Y supongo también que en el origen del combobox desde el que seleccionas el proveedor, tienes el identificador único del proveedor y el nombre del proveedor (aunque sólo se te muestre en pantalla el nombre)

Bien, si sigues estas recomendaciones, tendrás que borrar de la tabla productos los campos dirección de proveedor y teléfono de proveedor.

Ahora, en el formulario para introducir los productos, añades dos cuadros de texto independientes, que llamarías, por ejemplo, txtDireccion y txtTelefono. En el combobox, sacas sus propiedades, vas a la pestaña Eventos, y el Después de actualizar, le das al botón con los 3 puntos que aparece a la derecha [...] y le das a generar código.

Voy hacer un par de suposiciones: que el combo se llama cboProveedor, y que el identificador único es el NIF del proveedor, que además es el valor que almacena el combo

Allí escribes:

Dim miDireccion as string

Dim miTelefono as string

'Si el combo está en blanco, no haces nada

If IsNull(Me.cboProveedor) Or Me.cboProveedor="" Then Exit Sub

'Si hay algún valor, busca la dirección y teléfono en la tabla proveedores

miDireccion=DLookUp("Dirección","Proveedores","[NIF]='" & Me.cboProveedor & "'")

miTelefono =DLookUp("Teléfono","Proveedores","[NIF]='" & Me.cboProveedor & "'")

'Le asignas los valores a los cuadros de texto:

Me.txtDireccion = miDireccion

Me.txtTelefono=miTelefono

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas