Rellenar campo automáticamente una vez introducido otro en access

Espero que alguien me pueda colaborar con este tema.

Estoy creando en access una base de datos para mi local de accesorios de teléfonos.

Cree una tabla INVENTARIO y otra VENTAS. Luego cree un formulario que me permita introducir cada venta y poder por un lado llenar mi tabla de ventas y por otro lado descontar la venta del inventario.

Todos los campos del formulario son de ventas y tienen asociado el IDInventario de ambas tablas. Quisiera que cuando llene el IDInventario me saque automáticamente la descripción del producto (Categoría, Producto, Marca, Referencia y precio de venta) y no sea sino escribir la cantidad vendida y el precio en el cual se vendió.

He leído varios artículos del tema pero no entiendo lo de la programación que hay que hacer.

¿Alguien me podría colaborar con este problema y explicarme con pelos y señale?

2 respuestas

Respuesta
2

Supongamos que la tabla Inventario tiene los campos Idproducto(clave), Producto, precio, Existencias, etc. Supongamos que la tabla Ventas tiene los campos IdVenta(clave), FechaVenta, Cliente, Idproducto, Precio(no sería necesario pero...), Cantidad, Importe

Cuando construyas el formulario cambia el Idproducto por un combinado y en origen de la fila con el generador SQL, es el botón (...) busca la tabla Productos y lleva a la cuadrícula de diseño los campos Idproducto y Producto. Cierra. En las propiedades de ese combinado, en la solapa Formato, en número de columnas ponle 2 y en ancho 0;5

En ese mismo combinado, en sus propiedades-eventos-Después de actualizar, con el generador de código crea un procedimiento de evento y entre Private Sub y End sub escribe

precio=dlookup("precio","productos","idproducto=" & me.idproducto & "")

Cantidad. set focus(para que el cursor se vaya al control cantidad)

Y en las propiedades el cuadro de texto Cantidad, en el evento Después de actualizar puedes poner

Importe =precio*cantidad

docmd.runcommand accmdsave record

docmd.runsql="update productos set existencias=existencias-" & me.cantidad & " where idproducto=" & me.idproducto & ""

Esto último es para que te deduzca en existencias las gastadas.

Puede parecer un lío, pero es muy sencillo.

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

Muchas gracias por su ayuda. YA vi como meterme y la explicación excelente. Lo único es que cuando pongo el código y hago un intento me sale : Error de sintaxis (falta operador) en la expresión de consulta "idproducto="

Así tengo armada mis tablas para que me puedas dar un código mas preciso:

Tabla Inventario : IDInventario, Fecha de compra, N° de Factura, Proveedor, Categoria, Marca, Referencia, Costo, Precio de venta, % inc, Cantidad, Total Costo, Total Inventario

Tabla Ventas : IDVenta, IDInventario, Fecha_venta, Hora_venta, Categoria, Marca, Referencia, Precio de venta, Precio vendido, Cantidad_venta, Descuento

Entonces la idea es que en mi formulario tenga los campos de ventas. 

IDVenta, Fecha_venta, Hora_venta -> se llenan solos, eso ok

Categoria, Marca, Referencia, Precio de venta -> se llenen al marcar el  IDInventario

Precio vendido, Cantidad_venta -> toque llenarlo

Descuento -> que se calcule automáticamente

Y reitero, que se descuente del inventario la cantidad vendida

Muchas gracias de antemano

Cuando se usan "variables" hay que saber si son texto, numéricos, etc.

Ya que si son texto seria '" & me.nombrecampo( o sea, apóstrofe y comillas, antes y después

Si son numéricos sería " & me.nombrecampo(solo comillas)

Como se que el código que te puse funciona y no puedo ver el que has puesto tu, o si los cuadros de texto se llaman así y un largo etcétera era por lo que te decía, que para no estar escribiendo y escribiendo aquí, enviarte un ejemplo con tus campos

Respuesta
1

Milena: Mi sugerencia es que el IDInventario, lo pongas en un Combo Box y como origen de Fila, extraigas todos los datos de la Tabla o Consulta en la que los tengas.

Luego en el Evento AfterUpdate, (Después de actualizar)>> Me invento Nombre del Combo: CboProductos

Vamos suponer que tienes ya en el Combo

IdInventari, Categoria, Producto, Marca, Referencia, PrecioVenta y justo en éste Orden.

Private Sub CboProductos_AfterUpdate()
Me.Categoria = Me.CboProductos.Column(1)
'......
'.....
'....
Me.PrecioVenta = Me.CboProductos.Column(4)
End Sub

Repara en que la "Segunda" columna Categori tiene el "Indice" (1)

Evidentemente en el Formulario tienes que tener controles co esos nombres. Saludos >> Jacinto

¡Gracias! No entendí bien ya que no se como meterme a donde tenga que poner los códigos que me dice. Osea ni se que es un combo box.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas