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 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
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
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.
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
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: VENTAS1 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
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
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.
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
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.
ResponderBorrarGracias,, espero que haya sido de gran ayuda!
BorrarMaestro 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
ResponderBorrarHola 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.
BorrarGracias Profe Arturo chapa sin duda el producto no estaba relacionado en la tabla de INVENTARIOS
BorrarListo 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
ResponderBorrarFormidable como siempre este monográfico. Ya estoy esperando con ansiedad la próxima entrega. Solo me cabe decirte que GRACIAS, GRACIAS.......
ResponderBorrarmaestro chapa saludosss
ResponderBorrarhabra mas entregas de este bloggg sobre esta base de datos.
me parece fantastica la forma de explicar de usted Gracias
espero su respuesta
Claro, hay mas entregas que complementan este sistema, la próxima sera "la Nota de Venta", ya también la estoy preparando, Saludos!!
BorrarHola, 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?
BorrarNecesito 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.
Maestro Chapa.solicitando su ayuda:
ResponderBorraren 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.
mandame una imagen del error que te aparece, al correo achapa03@gmail.com
BorrarSaludos 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:
ResponderBorrarPara utilizar este metodo, la propiedad TipoDeOrigendeLaFila debe establecerse en ¨Lista de valores¨. (Nota, Uso el Office 2007).
Para evitar el error "Tipo de Origen de la fila"
Borrarasegú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
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
ResponderBorrartambien 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
Para evitar el error "Tipo de Origen de la fila"
Borrarasegú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
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....
ResponderBorrarmandame una imagen del error que te aparece, al correo achapa03@gmail.com
BorrarSaludos 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:
ResponderBorrarPara utilizar este método, la propiedad TipoDeOrigendeLaFila debe establecerse en ¨Lista de valores¨. ¿Podrías publicar la solución?
Para evitar el error "Tipo de Origen de la fila"
Borrarasegú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
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:
ResponderBorrarPara utilizar este metodo, la propiedad TipoDeOrigendeLaFila debe establecerse en ¨Lista de valores¨.
¿Podrías publicar la Solución?. Muchas gracias de antemano.
Para evitar el error "Tipo de Origen de la fila"
Borrarasegú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
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
ResponderBorrarEste codigo lo incluire en la entrega 7-1 Cancelacion de Productos en Ventas
BorrarMaestro 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:
ResponderBorrarPara poder utilizar este método, la propiedad TipoDeOrigenDeLaFila debe establecerse en 'Lista de valores'.
Muchas gracias por su ayuda.
Saludos.
Para evitar el error "Tipo de Origen de la fila"
Borrarasegú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
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
ResponderBorrar¿se necesita hacer relación entre "inventarios" y "productos"?
de antemano gracias y felicidades por el excelente blog...
como descargar las entregas 8 en adelante????
ResponderBorrarSu base de datos es fantástica, quisiera felicitarle por ello. Me está gustando mucho y le sigo con mucho interés.
ResponderBorrarMe 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.
Buenas tardes Profesor.
ResponderBorrarPara 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
los codigos de aqui no los puedo descargar de forma gratuita..
ResponderBorraro se explican en el video
Sumate en Likes de Facebook y dale Click a "Me Gusta" para lograr que sean gratuitos los codigos de esta entrega.
BorrarYa 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
ResponderBorrarGracias 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.
ResponderBorrarGRACIASSSS!!!! 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??
ResponderBorrardebes de usar las variables de tipo double, para que muestre las decimales
BorrarDim precioProd As Double
Dim precioTot As Double
hola el cupon necita imprimirse en alguna hoja en especial o en hoja en blanca normal
ResponderBorrarLa 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.
ResponderBorrarHola, excelente tu gran aortacion. Aun puedo adquirir los complementos?
ResponderBorrarHola Adrian, claro todavía puedes adquirir los complementos o el sistema completo. Saludos
BorrarMANDEME PORFAVOR LA ENTREGA 7 LA DE VENTAS
ResponderBorrarpara validar tu pago, mándame tu correo para enviarte la descarga
BorrarExcelente 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
ResponderBorrarHola 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.
ResponderBorrarEl link de descarga ya esta disponible en esta entrega. Saludos
BorrarGracias Maestro ..
BorrarCordial 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