Carga masiva sin repetir datos. Tabla varios a varios

Tengo un problema que no se como resolver de una forma práctica y voy a tratar describirlo contando un poco de mi recorrido. No sé nada de programación.

Estoy creando una base de datos donte tengo 3 tablas.

Clientes, Productos y ventas.

- Clientes posee los campos: IdCliente y NombreCliente.(Indexado sin duplicados).

- Productos posee los campos: IdProducto y Producto. (Indexado sin duplicados).

- Ventas posee los campos: IdVenta (Autonumérico), IdCliente (Numérico), IdProducto (Numérico) y DetalleVenta (Memo).

Los relacioné de tal manera que la tabla Ventas vincula a las otras dos en una relación de Varios a Varios por medio de los campos Id que son autonuméricos en sus respectivas tablas. (NombreCliente y Producto son de tipo Texto).

Previo a esto había creado algo similar pero sin la tabla productos. Es decir, la estructura de la tabla Ventas era: IdVenta (Autonumérico), IdCliente (Numérico), Producto (Texto) y DetalleVenta (Memo).

Esto me permitía en un formulario de carga Ventas a Cliente donde tenia un subformulario sfrmVentas (este último formato tabla) vinculado por el campo IdCliente. En este subformulario podía pegar masivamente muchos productos (Ej. Carbón, Leche, Huevos, Naranjas) y me los agragaba sin problemas aunque el nombre del producto fuera totalmente nuevo en la base de datos, ya que la relación entre las tablas Clientes y Ventas era de uno a varios por medio de IdCliente y lo que pegaba era texto. Esto me es de mucha utilidad!

"Necesito agregar productos nuevos sin tener que tenerlos agregados previamente a la tabla productos. Pretendo magia? Espero que no.

Necesitaría, una macro o código que al pegar en el suformulario me ponga el IdProducto si ya lo tengo ingresado previamente en la tabla Productos, pero que al no estar previamente ingresado en dicha tabla, no me lo impida por no estar en la tabla Productos, sino que me lo agregue automáticamente previo un cuadro de diálogo que me muestre los productos nuevos a incorporar por si tengo que editarlos y en la tabla Ventas me queden en cada registro el IdCliente con el IdProducto y DetalleVenta.

Espero haber sido lo suficientemente claro.

Desde ya

1 Respuesta

Respuesta

Noa, por el hecho de que una tabla vaya a "coger" datos de otra no quiere decir que deban estar relacionadas. De hecho, de las que tienes, no haría falta ninguna. Sin embargo, si tienes una tabla Ventas y otra DetalleVenta si es conveniente, ya que se supone que van a trabajar juntas como formulario y subformulario, que estén relacionadas. Uno a varios. Una venta varios productos.

Te aconsejaría que en el formulario y en el subformulario cambiaras los Idcliente e IdProducto por combinados con origen de la fila en sus respectivas tablas.

De todas formas, si quieres, repito, si quieres, mándame un mensaje(sólo el mensaje) a [email protected] y te mando un ejemplo de como lo haría. Si lo haces, en el asunto del mensaje pon tu alias Noa, ya que si no sé quien me escribe ni los abro.

Hola. Eso no es lo que necesito. Necesito que en la.tabla ventas queden almacenados los idcliente y los idproducto y el detalle de está combinación. Y como justamente lo tengo con cuadros combinados es que al volcar muchos productos me los pega hasta que un producto es desconocido y se traba todo hasta que lo agrego a la tabla productos lo cual es muy engorroso y pretendo automatizar el alta de los productos como intente explicarle antes. Muchas gracias.

Pero tal como lo planteas en la tabla Ventas repetirías tantas veces el idcliente fechaventa, etc como productos le vendieras. Lo lógico es un Idcliente-varios productos.

Por email te digo como lo haría.

 Si. Ese es el objetivo. Solo que necesito usar el cuadro combinado y me impide agregar productos que no están enlistados o ingresados en la tabla productos. Necesito no tener que ir específicamente a darlo de alta sino que automáticamente lo incorpore "previa aprobación" y pueda quedar asentada la venta. El "Idclinte con el Idproducto en la tabla ventas". Imagino que se podría con:

-una consulta de no coincidentes y otra de datos anexados pero nosé como automatizarlo con una macro o código. Esto es que al pegar lo que traigo en el portapapeles y al no estar en la tabla productos gracias a la consulta de no coincidentes me los anexe y terminé pegando en el campo de idproducto el número del idproducto asignado en la tabla productos. (Soy reiterativo para que al poder expresarme mejor y no dejar lugar a confusiones) Muchas gracias desde ya!!

Vamos a ver, si no quieres "tener control" sobre la tabla Productos basta con que en el combinado Idproducto, en sus propiedades-Datos le pongas Limitar a la lista=No

Eso te permitirá, en caso de que ese producto no esté en la lista que se lo pongas, pero no lo tendrás guardado en la tabla Productos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas