Como hacer un sistema de factura en access

Quiero hacer un sistema donde me muestre el numero de factura, los productos que compro el cliente en esa factura y el nombre del cliente

Mi duda es como le hago para que si el cliente compro 80 productos me aparezca la factura con lo que compro, No de factura, nombre del cliente y una observación de la compra

¿Tengo qué hacer una tabla solo del No de factura? ¿O cómo le hago?

2 Respuestas

Respuesta
1

Mi consejo es que hagas una tabla Clientes, con los datos que no cambian nunca a casi nunca, como puede ser el nombre, DNI, telefono, dirección, etc.

Luego una tabla Facturas con Nfactura(clave), FechaFactura, Idcliente, etc

Y por ultimo, una tabla DetalleFactura, con Nfactura(no clave) relacionada con Facturas en una relación Uno a Varios, Producto, precio, cantidad, total

Y con Facturas y Detallefactura, con el asistente haces un formulario con un subformulario(tipo tabular)

En el formulario Facturas, teniendo el Idcliente, tienes todos sus datos simplemente usando Dlookup.

Respuesta

Necesitas como mínimo las siguientes tablas y campos:

Tabla tblfacturas

Campos:

Idfactura (autonumérico clave principal)

Idcliente (entero largo para realacionar con la tabla clientes

Nro_factura (numérico entero largo)

Fechafactura (fecha de factura valor predeterminado Date()

Vr_bruto (valor sin iva tipo doble ) . Es el valor bruto total de la factura

Vr_iva (valor impuesto agregado tipo doble). Es el iva total de la facturavr_total (doble aunque se puede obtener con una consulta vr_bruto+vr_iva) tabla tbldetallefacturaCampos:idfactura (entero largo para relacionar con la tabla idfactura relación uno a varios indexado con repetidos)idarticulo (entero largo para relacionar con la tabla maestro de articulo uno a varios)cantidad (cantidad de unidades en la factura)vr_bruto (valor unitario de este articulo tipo doble es igual a cantidad x vr_unitario en caso que no vaya a calcular en una consulta este valor)vr_iva (doble igual a cantidad x iva unitario en caso que no vaya a calcular con consulta)vr_total (doble es igual a cantidad x (vr_bruto+vr_iva) en caso que no vaya a calculcar mediante una consulta. Tabla tblclientesCampos:idcliente (autonumerico clave principal para relacionar con tblfacturas uno a varios)nombre (nombre del cliente texto)apellidos (apellidos del cliente texto)ciudad (ciudad de resindencia texto). Si utiliza una tabla ciudades este podría ser idciudaddirección (dirección del cliente texto)teléfono (texto puede registrar el teléfono fijo y celulares entonces el ancho deber minimo 50)Después creas un formulario con un subformulario:En el formulario principal va:idcliente (puedes utilizar un combo box para buscar el cliente de la lista)fechafacturaEn el subformulario:idfacturaidclienteetcTeniendo en cuenta si vas a calcular las unidad por vr unitario e iva. En este puedes crear los campos calculados del total, En este caso este formulario debe ser continuo con encabezao y pie del formulario. Bueno esta es una idea lo utilizo en mis programas.

gracias por la ayuda pero no entiendo bien la idea 

como se que se van a guardar los productos con el numero de factura ???

Es cierto tienes razón se me olvido explicarte como se toma el siguiente número de factura. En este caso puedes utilizar la función dMax() y NZ() para obtener el siguiente número de factura, algo como: Vas a modulos y crea esta función

Public Function sgteFactura() As Long

  sgteFactura = nz(dMax("[nro_factura]","tblfacturas"),0)+1

End Function

Ahora en el formulario sobre el campo Nro_facturas, botón derecho del mouse, vas a propiedades, datos, valor predeterminado y anotas =sgteFactura()

Cuando vayas ingresar una nueva factura el sistema asignará el número automáticamente el número siguiente.

okis gracias lo intentare otra duda estoy algo perdida con el subformulario

Como lo haría, ¿tengo qué agregar varios campos de producto por si el cliente pide varios productos?

¿Y es posible que cuando busque el producto me arroje el precio automáticamente?

Gracias por la ayuda

Claro por cada producto este se ingresa en el subformulario, igualmente se puede hacer que después de seleccionar el producto en el campo digamos valor_producto aparezca el precio de venta.

Para buscar el producto crear un como box que toma los datos de la tabla productos, supongo que en ésta tienes el campo valor_producto, entonces, digamos que el combo box se llama cboProducto, cuando lo creas debes elegir los campos idproducto, nombre_producto, valor_producto, el ancho de columnas ajústalo a 0 cm; 4 cm; 0 cm.

En el subformulario creas un cuadro de texto y lo llamas ctlPrecio, en este campo vas a propiedades y eliges la pestaña Datos, en Origen del Control colocas =cboProducto.column(2)

Esto hará que cada vez que cambies de producto te fije el precio en el cuadro de texto. Como este debe ser de solo lectura vas a Datos, y en Bloqueado Si eliges . Como no necesitas que el cursor se desplace a este campo vas a Propiedades eliges la pestaña Otras, y en Tabulación Automática eliges NO.

¿Entonces seria agregar varios combobox donde busque los productos? (¿Qué pasa si venden más artículos de los que creo que venderán?)

¿En qué tabla se guardarían los productos de la compra en la factura?

Muchas gracias por la ayuda

Es primera vez que hago una base así en access y me esta ayudando mucho

Los productos de la compra se almacenan en la tabla de detalles de la factura, como te expliqué antes, necesitas un formulario+un subformulario, el primero va el encabezado de la factura, con los campo IdFactura, nro_factura y fecha de la factura, este tiene como origen de datos la tabla facturas y en el subformulario colocas un combox box y los demás campos como cantidad, valor unitario y valor total, el valor del producto lo obtienes del combo box pero corrijo algo que te expliqué antes NO necesitarías un campo texto sino el campo valor_producto o el nombre que tú tengas asignado, en este caso debes crear un evento después de actualizar del combo box, algo como:

Private Sub cboProducto_AfterUpdate()

    Me.valor_producto=cboProducto.column(2)

 end if

Te explico más o menos como sería la tabla de facturas y la tabla de detalle:

Tabla Facturas:

Idfactura

Fechafactura

valor_factura

...

..

Tabla Detalles de la factura:

Idfactura (Debe relacionarse con la tabla facturas)

Idproducto (código autonumerico del producto tomado de la tabla productos) y corresponde al origen de datos del combo box

Cantidad

valor_producto

..

..

Te recomiendo que examines estos link, aunque apenas son una aproximación de facturación.

http://jdavidcal.blogspot.com.co/2014/03/como-crear-una-factura-en-access-20 

Videos:

https://www.youtube.com/watch?v=NjKClY8300M

https://www.youtube.com/watch?v=6S5owGrq_kg

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas