Páginas

Pantalla de Ventas en Access 2010 | Punto de Venta | Ent - 7

En esta entrega #7 estaremos considerando como diseñar y programar una Pantalla de Ventas en Access 2010 para nuestro sistema de punto de venta. Esta pantalla quizás sea una de las más importantes ya que será la interfaz principal de nuestra aplicación.

Las funciones mas importantes que esta pantalla de ventas va a realizar son: Registrar la venta, registrar el detalle de la venta y Descontar las cantidades de  los artículos vendidos de nuestro Inventario Principal.


Esta Entrega va a ser una de las más laboriosas, así que les pido de su Paciencia para llevarla a cabo. Estimo que la elaboración de esta entrega les va a llevar de 2 a 3 horas (ya que solo los vídeos que explican su contenido se toman un poco mas de una hora)

>>> Prueba YA todo el Sistema Punto de Venta en Access Completo <<<


Primero, vamos a requerir de un pequeño ajuste previo, en la tabla de PRODUCTOS; vamos a agregar un campo nuevo llamado codigo_barras este campo nos servirá para que nuestra aplicación sea capaz de procesar una venta con solo leer el código de barras del producto.

El campo llamado codigo_barras debe ser tipo TEXTO tal y como se muestra en la imagen:


Si necesitas adquirir un escaner para codigos de barras te recomiendo esta lista de opciones Click Aqui




Una vez hecho esto, estaremos listos para Elaborar nuestra Pantalla de Ventas. Para no confundir su elaboracion vamos a verlo en 3 partes: OBJETOS NECESARIOS, EL DISEÑO Y LA PROGRAMACION.

1- OBJETOS NECESARIOS PARA LA ELABORACION DE LA PANTALLA DE VENTAS

1 TABLA: VENTAS
1 TABLA: VENTAS_DETALLE
1 MODULO: VENTAS
1 FORMULARIO: VENTAS
1 FORMULARIO: BUSCAR_PRODUCTO
1 RELACION DE TABLAS

TABLA: VENTAS








TABLA: VENTAS_DETALLE










FORMULARIO: BUSCAR_PRODUCTO














RELACIONAR TABLAS: Estas 2 Tablas (VENTAS y VENTAS_DETALLE) y la Tabla de Productos deben de ir relacionadas, tal como se muestra en la imagen (abajo):

Relacionar ID_VENTA de la tabla ventas con ID_VENTA de la tabla ventas_detalle
Relacionar ID_PRODUCTO de la tabla de productos con ID_PRODUCTOS de la tabla de ventas_detalle.

Para generar esta relación solo tenemos que ir al MENU de Access [HERRAMIENTAS DE BASES DE DATOS] y luego [RELACIONES]

Adjuntamos las tablas; luego para crear la relaciones solo seleccionamos los campos indicados y arrastramos una linea al otro extremo al campo de la otra tabla, soltamos y nos aparece una mensaje y solo pulsamos OK





















2- EL DISEÑO DE LA PANTALLA DE VENTAS EN ACCESS 2010

Voy a Listar los controles Mas importantes (porque van a contener codigo) y sus caracteristicas para el diseño de esta Pantalla:

TIPO-----------NOMBRE-------------------PROPOSITO
List Box          ListboxDesc                       Mostrara la descripción del Producto
List Box          ListboxCant                        Mostrar la cantidad del Producto
List Box          ListboxPrecUni                   Mostrara el Precio Unitario del Producto
List Box          ListboxPrecTot                   Mostrar el Precio Total [cantidad * precio unitario]
Text Box         txtCodigoArt                      Para ingresar el valor del código de Barras
Text Box         txtCantArt                          Para ingresar la cantidad de producto
Text Box         txtCliente                            Para ingresar el numero de Cliente
Text Box         txtPagar                              Para ingresar la cantidad con que se Paga
Label              lblNumVenta                       Mostrara el numero de Venta
Label              lblHRVta                             Mostrara la hora de la Venta
Label              lblFecVta                            Mostrara la fecha de la Venta
Label              lblTotal                               Mostrara el Total de la Venta
Label              lblCambio                           Mostrar el Cambio a entregar al Cliente
Button            cmdMarcarProd                 Botón de Acción que permite registrar el producto
Button            cmdBuscarProd                  Botón de Acción que permite buscar un producto
Button            cmdPagar                           Botón de Acción que permite cobrar la Venta

Dentro del Formulario BUSCAR_PRODUCTO  estan los siguientes controles:

TIPO-----------NOMBRE-------------------PROPOSITO
Text Box         txtBuscarProd                    Ingresar el nombre o descripción a buscar
List Box          ListBoxProductos               Listar productos existentes
Button            cmdBuscarProd                  Ejecutar búsqueda
Button            cmdCerrar                          Cerrar formulario

Nota: Todos estos controles que he listado aquí, contienen relación  con Fragmentos de código ó contienen código dentro de si mismos, es por eso que he listado los NOMBRES de los controles para los pongan exactamente igual, cualquier diferencia en los nombres de los controles causaría que la aplicación funcionara de forma incorrecta.


En este Vídeo explicaré:


1- La Estructura de las TABLAS(VENTAS y VENTAS_DETALLE)
2- Como Crear la relación entre las tablas (VENTAS, VENTAS DETALLE y PRODUCTOS)
3- Los Objetos del Formulario de VENTAS
4- Los Objetos del Formulario de BUSCAR_PRODUCTO



3- LA PROGRAMACIÓN DE LA "PANTALLA DE VENTAS" y "BUSCAR PRODUCTO" EN ACCESS 2010


Los codigos que contienen estos formularios, contienen COMENTARIOS que hacen referencia a que se esta haciendo en cada parte de codigo. Esto nos ayudará a comprender la lógica del programa.


En este Video explicaré:


1- El Codigo del Modulo de VENTAS
2- Como Programar el formulario de VENTAS
3- Como Programar el formulario de BUSCAR_PRODUCTO




PARA EVITAR EL ERROR TIPO DE ORIGEN DE LA FILA 

*** Cada uno de los Cuadros de Lista, fijar "Lista de Valores" en la Propiedad Tipo de Origen de la Fila, como se muestra en la Imagen







INDICE      ANTERIOR     SIGUIENTE

47 comentarios:

  1. Buenas estimado amigo, dejame FELICITARTE x esta entrega, como siempre muy claro en tus indicaciones y muy entendible, desde Argentina mi mas cordial saludo y estando atento a la futura espera, un abrazo.

    ResponderBorrar
  2. Maestro arturo chapa, todo va bien en la venta, tecleo el codigo de producto, le doy marcar, me lo pone el las listbox, pongo la cantidad, y me sale la ventana de mensaje de gracias por su compra muy bien hasta ahi, pero a la hora de precionar aceptar me sale este error ""se ha producido el error '3021' en tiempo de ejecucion"", seguido e doy a depurar y me menciona esta parte del codigo en amarillo "rsInv.Edit", no me refresca la pagina para lograr una nueva venta

    ResponderBorrar
    Respuestas
    1. Hola Alejando, el fragmento de codigo donde te marca el problema, es cuando va a descontar los inventarios de cada producto, ese error puede estar relacionado a que no encuentra el valor de (idprod) en el campo FID_PRODUCTO de la tabla de PRODUCTOS y que ademas estas intentando editarlo. Verica que el el valor que se guarda en (idprod) "en tiempo de ejecucion" si concuerde con alguno existente del campo FID_PRODUCTO en la tabla de productos.

      Borrar
    2. Gracias Profe Arturo chapa sin duda el producto no estaba relacionado en la tabla de INVENTARIOS

      Borrar
  3. Listo maestro Arturo chapa, el error estaba en que no tenia nada que vender en inventarios, registre productos pero no cantidades en exhibicion ni en localizaciones, mi mas sincero agradecimiento, Una pregunta mas, como hago para ademas en la pantalla de ventas poner una caja de texto o label que me de el iva (16%), y este se multiplique por el subtotal que tambien este mostrado en una label y muestre ese resultado en la lblTotal

    ResponderBorrar
  4. Formidable como siempre este monográfico. Ya estoy esperando con ansiedad la próxima entrega. Solo me cabe decirte que GRACIAS, GRACIAS.......

    ResponderBorrar
  5. maestro chapa saludosss

    habra mas entregas de este bloggg sobre esta base de datos.

    me parece fantastica la forma de explicar de usted Gracias

    espero su respuesta

    ResponderBorrar
    Respuestas
    1. Claro, hay mas entregas que complementan este sistema, la próxima sera "la Nota de Venta", ya también la estoy preparando, Saludos!!

      Borrar
    2. Hola, hay algo que no me esta funcionando, hice todos los pasos hasta la entrega 6 inclusive, pero me salta un error cuando ejecuta el codigo. Cuide de poner exactos los nombres de los controles pero no hubo forma. Podria mandarte me base de datos para que la rebices por favor?
      Necesito con urgencia realizar el programa para gestionar venta y alquiler de juegos de pc, ps2 y ps3. Tus explicaciones son excelentes pero al no saber mucho de VB, no se como corregir lo que no me funciona.....
      Desde ya gracias.

      Borrar
  6. Maestro Chapa.solicitando su ayuda:
    en la pantalla ventas al dar click me aparece un cuadro
    que dice: no se encontro el elemento en esta colección.
    Gracias por su atención.

    ResponderBorrar
    Respuestas
    1. mandame una imagen del error que te aparece, al correo achapa03@gmail.com

      Borrar
  7. Saludos Arturo Chapa, he realizado todas las entregas a Piel de letra,y todo ha marchado de maravilla, pero en esta entrega me sale este error:
    Para utilizar este metodo, la propiedad TipoDeOrigendeLaFila debe establecerse en ¨Lista de valores¨. (Nota, Uso el Office 2007).

    ResponderBorrar
    Respuestas
    1. Para evitar el error "Tipo de Origen de la fila"

      asegúrate que cada uno de los Cuadros de Lista, tenga seleccionado "Lista de Valores" en la Propiedad Tipo de Origen de la Fila.

      He insertado una imagen de ayuda junto al área de descargas de código de esta publicación.

      Saludos

      Borrar
  8. ola maestro.. en mi formulario de buscar productos en el lisbox no me aparcen los productos solo el id de los productos, le doy doble clic y me dice que no encuentra el formulario ventas al que hace rferencia.. por q es que me pasa esoo ¡¡? podria ayudarme
    tambien escribo el codigo de barras directo y me sige apareciendo el mensaje de "para poder utilizar este metodo la propiedad tipodeorigendelafila debe establecerse en lista de valores .. hize paso a paso lo del video y lo e echcado y no se en que me ekvoque podria ayudarme

    ResponderBorrar
    Respuestas
    1. Para evitar el error "Tipo de Origen de la fila"

      asegúrate que cada uno de los Cuadros de Lista, tenga seleccionado "Lista de Valores" en la Propiedad Tipo de Origen de la Fila.

      He insertado una imagen de ayuda junto al área de descargas de código de esta publicación.

      Saludos

      Borrar
  9. Hola. Perdon que te jorobe pero te cuento que hice todas las entregas con exito menos esta ultima 7. Me he cuidado de poner exactamente los nombres a los controles pertinentes, pero pareciera que algo no funciona. Me urge aprovechar tus conocimientos porque quiero hacer un sistema para venta y alquiler de juegos de PS2, PS3, etc. Es mucho pedir mandarte lo que hice como para que me tires un centro?? Perdon por el atrevimiento pero la verdad, lo necesito, y no consigo ningun ejemplo hecho como para revisarlo paso por paso, segun lo que necesito. Desde ya gracias de antemano, cualquiera sea tu respuesta....

    ResponderBorrar
    Respuestas
    1. mandame una imagen del error que te aparece, al correo achapa03@gmail.com

      Borrar
  10. Saludos Maestro. A Mí me ocurre lo mismo que a Jose Anibal Paulino Espinal.He realizado todas las entregas al pie de letra, y en esta entrega me sale este error:
    Para utilizar este método, la propiedad TipoDeOrigendeLaFila debe establecerse en ¨Lista de valores¨. ¿Podrías publicar la solución?

    ResponderBorrar
    Respuestas
    1. Para evitar el error "Tipo de Origen de la fila"

      asegúrate que cada uno de los Cuadros de Lista, tenga seleccionado "Lista de Valores" en la Propiedad Tipo de Origen de la Fila.

      He insertado una imagen de ayuda junto al área de descargas de código de esta publicación.

      Saludos

      Borrar
  11. Saludos Maestro. A mí me ocurre lo mismo que a Jose Anibal Paulino Espinal, he realizado todas las entregas al pie de la letra, y todo ha marchado de maravilla, pero en esta entrega me sale este error:
    Para utilizar este metodo, la propiedad TipoDeOrigendeLaFila debe establecerse en ¨Lista de valores¨.
    ¿Podrías publicar la Solución?. Muchas gracias de antemano.

    ResponderBorrar
    Respuestas
    1. Para evitar el error "Tipo de Origen de la fila"

      asegúrate que cada uno de los Cuadros de Lista, tenga seleccionado "Lista de Valores" en la Propiedad Tipo de Origen de la Fila.

      He insertado una imagen de ayuda junto al área de descargas de código de esta publicación.

      Saludos

      Borrar
  12. Hola Arturo, tengo una duda si se desea borrar un articulo de la lista de venta o disminuir la cantidad despues de marcar el producto, que se tendria que hacer

    ResponderBorrar
    Respuestas
    1. Este codigo lo incluire en la entrega 7-1 Cancelacion de Productos en Ventas

      Borrar
  13. Maestro Arturo Chapa FELITACIONES por las excelentes entregas, sin embargo quiero exponer un error que se me ha presentado al momento de registrar los códigos de barra que dice:

    Para poder utilizar este método, la propiedad TipoDeOrigenDeLaFila debe establecerse en 'Lista de valores'.

    Muchas gracias por su ayuda.

    Saludos.

    ResponderBorrar
    Respuestas
    1. Para evitar el error "Tipo de Origen de la fila"

      asegúrate que cada uno de los Cuadros de Lista, tenga seleccionado "Lista de Valores" en la Propiedad Tipo de Origen de la Fila.

      He insertado una imagen de ayuda junto al área de descargas de código de esta publicación.

      Saludos

      Borrar
  14. hola, me gustaría saber si sole en esta entrega es necesario usar relaciones entre tablas, la duda nace de la entrega 4 de inventarios en la que se utiliza la llave foránea de la tabla de productos

    ¿se necesita hacer relación entre "inventarios" y "productos"?

    de antemano gracias y felicidades por el excelente blog...

    ResponderBorrar
  15. como descargar las entregas 8 en adelante????

    ResponderBorrar
  16. Su base de datos es fantástica, quisiera felicitarle por ello. Me está gustando mucho y le sigo con mucho interés.
    Me gustaría preguntarle si existe alguna razón concreta para diseñar los precios de los productos, totales, etc en formato número con la propiedad doble en lugar de utilizar el formato moneda. Lo digo porque cuando se hace la venta, hay cantidades que aparecen sin decimales o con un solo decimal, lo digo por pura estética.
    Un saludo.

    ResponderBorrar
  17. Buenas tardes Profesor.
    Para felicitrlo por su forma tan exelente de enseñar.
    He seguido los pasos tal como los explica y tengo la base de puto de venta
    funcionando al 100%.
    abusando de su gentileza, quisiera saber como podria poner una pantalla emergente
    mostrando la cantidad en existencia del producto marcado para la venta. Esto en la pantalla de ventas. Por su atención gracias arturo039

    ResponderBorrar
  18. los codigos de aqui no los puedo descargar de forma gratuita..
    o se explican en el video

    ResponderBorrar
    Respuestas
    1. Sumate en Likes de Facebook y dale Click a "Me Gusta" para lograr que sean gratuitos los codigos de esta entrega.

      Borrar
  19. Ya he descargado los codigos de esta entrega y la entrega 7-1, ahora mi base de datos esta trabajando muy bien, Gracias Profe Chapa, realmente vale la pena pagar por este trabajo que nos aporta muchos conocimientos de access. ah y por favor!! no nos deje mucho tiempo!! ya quiero ver la entrega 8....GRACIAS

    ResponderBorrar
  20. Gracias maestro Chapa por este aporte, quisiera saber como hago para colocar un cuadro de texto que me mueste el IVA de los productos y que este se sume al subtotal para darme el total final, y tambien me gustaria saber como puedo ajustar el codigo para que me permita elegir entre el precio de unidad y el de mayoreo. De antemano muchas gracias por este gran aporte.

    ResponderBorrar
  21. GRACIASSSS!!!! execelnte tutoria!!! pero tengo una consulta... en los listbox de PREC_UNI y PREC_TOT se muestran los precios sin decimales, ya probe con "Format" pero no lo he logrado. Alguna sugerencia de como hacer que me aparezcan los decimales en los listbox??

    ResponderBorrar
    Respuestas
    1. debes de usar las variables de tipo double, para que muestre las decimales

      Dim precioProd As Double
      Dim precioTot As Double

      Borrar
  22. hola el cupon necita imprimirse en alguna hoja en especial o en hoja en blanca normal

    ResponderBorrar
  23. La impresion de la nota de venta no requiere de hoja especial, claro que si tu lo quieres puedes usar la de rollos de mini-impresoras de tickets.

    ResponderBorrar
  24. Hola, excelente tu gran aortacion. Aun puedo adquirir los complementos?

    ResponderBorrar
    Respuestas
    1. Hola Adrian, claro todavía puedes adquirir los complementos o el sistema completo. Saludos

      Borrar
  25. MANDEME PORFAVOR LA ENTREGA 7 LA DE VENTAS

    ResponderBorrar
    Respuestas
    1. para validar tu pago, mándame tu correo para enviarte la descarga

      Borrar
  26. Excelente producto de verdad que hasta lo que he visto me ha gustado tanto que le he dedicado horas y horas para saber de donde sale cada cosa... felicitaciones

    ResponderBorrar
  27. Hola maestro, disculpe podría proporcionarme los códigos de esta entrega, he seguido sus entregas y me gustaría terminar este laboratorio, he aprendido mucho, espero pueda ayudarme.

    ResponderBorrar
  28. Cordial saludo profesor, me parece muy bueno todo el material didáctico, pero tengo un problema al hacer click en el botón de marcar producto sale un error de "uso no válido de Null ", en realidad no se que debo hacer

    ResponderBorrar