SlideShare una empresa de Scribd logo
Desarrollo de software
Base de datos
Diana Lopez Aguilar
Evidenciade aprendizaje.Reporte:Integracióngeneral de elementosespecíficosde lasBases de
datos
ES161762591
Punto de Venta en Access.
Los 2 elementos de este módulo, son:
Una tabla de Usuarios
Un formulario de Usuarios
La tabla de usuarios contiene todos los datos necesarios para que cada
usuario pueda usar el sistema de acuerdo a los permisos otorgados, así que cada
usuario poseerá permisos según sea requerido. Toda esta configuración será
importante al momento que un empleado entre al sistema (utilizando una formulario
de acceso) ya que el sistema será capaz de reconocer que acciones si y que acciones
no el usuario podrá desempeñar de acuerdo a los permisos otorgados.
Esta es la estructura de la tabla de USUARIOS
Estas son la configuración para el Formulario de USUARIOS:
VISTA DE LA MACRO EN BOTON CmdAceptar (GUARDAR Y SALIR)
Punto de Venta en Access | Acceso al Sistema |
NOMBRE DE LOS CONTROLES:
El textbox para el Nombre de Usuario se debe nombrar: TxtNOMBRE_USUARIO
El textbox para la clave de usuario se debe nombrar: TxtCLAVE_USUARIO
El evento del botón CANCELAR:
Solo contiene una macro incrustada con el evento "SalirdeAccess"
Este es el código del Botón Aceptar
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub CmdAceptar_Click()
On Error GoTo err:
'variable local para nombre y clave de usuario
Dim NOMUSU As String
Dim CVEUSU As String
'Asignar el valor de los controles a las variables locales
NOMUSU = UCase(Nz(Me.TxtNombre_Usuario.Value, ""))
CVEUSU = UCase(Nz(Me.TxtCLAVE_USUARIO.Value, ""))
If IsEmpty(NOMUSU) Or IsEmpty(CVEUSU) Then
MsgBox "Datos Incompletos...", vbOKOnly + vbCritical, "Imposible Ingresar!!"
Else
'Buscar Usuario con los datos ingresados
If ExisteUsuario(NOMUSU, CVEUSU) = True Then
MsgBox "Bienvenido al Sistema", vbOKOnly + vbInformation, "Acceso E
DoCmd.Close 'Cerrar ventana de Acceso
'Codigo para entrar al sistema,, esten pendiente con las PROXIMAS E
DoCmd.OpenForm "VENTAS", acNormal
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Else
NumIntento = NumIntento + 1
If NumIntento <= 2 Then
MsgBox "Usuario o Clave incorrecta", vbCritical + vbOKOnly,
Me.TxtNombre_Usuario.Value = ""
Me.TxtCLAVE_USUARIO.Value = ""
Me.TxtNombre_Usuario.SetFocus
Else
MsgBox "Demasiados Intentos, el Sistema se cerrara!", vbCri
DoCmd.Quit
End If
End If
End If
Exit Sub
err:
MsgBox err.Description
End Sub
Esta es la Funcion de ExisteUsuario
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<b>
Public Function ExisteUsuario(strNomUsuario As String, strCveUsuario As String) As Boo
On Error GoTo us_err
Dim Rst As DAO.Recordset
Dim sql As String
sql = "SELECT * FROM [USUARIOS] US WHERE US.[NOMBRE_USUARIO]='" & strNomUsuario & "'
Set Rst = CurrentDb.OpenRecordset(sql)
If Rst.BOF And Rst.EOF Then
ExisteUsuario = False
Else
ExisteUsuario = True
'Se Inicializar las variables de Sesion
xNOMBRE_USUARIO = Rst!NOMBRE_USUARIO
xCLAVE_USUARIO = Rst!CLAVE_USUARIO
xNOMBRE = Rst!NOMBRE
xAPELLIDO_PATERNO = Rst!APELLIDO_PATERNO
xAPELLIDO_MATERNO = Rst!APELLIDO_MATERNO
xVENTAS = Rst!VENTAS
xADMINISTRAR = Rst!ADMINISTRAR
xREPORTES = Rst!REPORTES
xCATALOGOS = Rst!CATALOGOS
xCONSULTAS = Rst!CONSULTAS
xCANCELAR_VENTA = Rst!CANCELAR_VENTA
23
24
25
26
27
28
29
30
31
32
33
34
35
End If
Rst.Close
Set Rst = Nothing
Exit Function
us_err:
MsgBox err.Description
End Function
</b>
Estas son la variable Publicas del Sistema
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Option Compare Database
Option Explicit
'VARIABLES DE SESION
'SE NOMBRARAN IGUAL TAL COMO EN EL DISEÑO DE LAS TABLAS, PERO CON EL PREFIJO "x"
'PARA IDENTIFICARLAS COMO VARIABLES DE SESION
'----------- DATOS DE USUARIO-----------
Public xNOMBRE_USUARIO As String
Public xCLAVE_USUARIO As String
Public xNOMBRE As String
Public xAPELLIDO_MATERNO As String
Public xAPELLIDO_PATERNO As String
Public xVENTAS As Boolean
Public xADMINISTRAR As Boolean
Public xREPORTES As Boolean
Public xCATALOGOS As Boolean
Public xCONSULTAS As Boolean
Public xCANCELAR_VENTA As Boolean
'---------------------------------------
Public NumIntento As Byte
Punto de Venta en Access | Pantalla de Productos |
Pantalla de Productos para un Punto de Venta en Access. Se explican las funciones
de cada uno de los controles de esta pantalla. Se hace necesario no omitir ninguna
parte de la explicación ya que esto nos accionaria algunos problemas para hacer
funcionar esta pantalla.
En esta Pantalla de Productos necesitamos solo 2 Elementos:
LA TABLA DE PRODUCTOS
PANTALLA DE PRODUCTOS (LISTA)
PANTALLA DE PRODUCTOS (DETALLES)
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
' CODIGOS DE LA ENTREGA 3
'Codigo para el boton btnBuscarProd
Private Sub BtnBuscarProd_Click()
Me.LISTA_DE_PRODUCTOS.Requery
Me.Refresh
End Sub
'Codigo para el evento dobleclick de la Lista_Productos
Private Sub LISTA_PRODUCTOS_DblClick(Cancel As Integer)
If Nz(Me.[LISTA_PRODUCTOS], 0) <> 0 Then
DoCmd.GoToControl "DETALLES"
Me.Filter = "ID_PRODUCTO =" & Me.[LISTA_PRODUCTOS]
Me.FilterOn = True
Else
MsgBox "NO HA SELECCIONADO NINGUN PRODUCTO", vbCritical + vbOKOnly, "Error!!"
End If
End Sub
APARTADO-1 (AGREGAR BUSQUEDA DE PRODUCTOS POR CODIGO DE
BARRAS)
Seguir estos pasos:
1.- En vista de diseño seleccionar el listBox e ir la ventana de propiedades, en la ficha
de datos seleccionar ORIGEN dar click en el botón [...] y luego te mostrara una
consulta
2.- en la parte de arriba de la consulta estarán los campos de la tabla
PRODUCTOS, ahí deberás encontrar el campo CODIGO_BARRAS
3.- haces doble click en ese campo y se agregara abajo junto con los demás
4.- colocar en el criterio (un renglón más abajo) esto y guardar.
5.- En la ficha de Formato en la propiedad cantidad de columnas colocar 8 (ya que
agregamos una más, la del código de barras)
6.- y agregar una anchura más en la propiedad ANCHO DE COLUMNAS
1.1806"; 1.9681"; 1.9681"; 1.9681"; 1.9681"; 1.9681"; 1.9681"; 1.9"
7.- y esto todo YA DEBE FUNCIONAR LA BUSQUEDA DE PRODUCTOS por
CODIGO DE BARRAS
Punto de Venta en Access | Pantallas de Inventarios |
"Las Pantallas de Inventarios", quizás vaya a ser una de las que más contenido haya
que explicar. Por lo que tendré la necesidad de dividirlo en 2 partes La Funcional y
la Lógica.
La Parte FUNCIONAL: Pantalla de Inventarios
Empezare por explicar que hay 2 pantallas y 2 Tablas de Inventarios:
1. INVENTARIOS "Esta será la lista Principal de Inventarios"
2. ENTRADAS_INV "Las Entradas Individuales de Inventario"
TABLA DE INVENTARIOS
En esta Tabla, además del particular tendremos 2 campos calculados, (que ha sido
una de las novedades incluidas en la versión 2010 de Access). Uno Bajo el nombre de
CANT_DISPONIBLE que almacenara todas cantidades existentes (Cantidad
de Exhibición + Cantidad de Localización 1 + Cantidad de Localización + Cantidad
de Localización 3), El segundo campo Calculado será BAJO_INVENTARIO este
campo tiene una condición que evalúa si la Cantidad Disponible Total es Menor a la
Cantidad Mínima estipulada para el producto, se colocara un "SI" para indicarnos que
el inventario es bajo para este producto y será necesario adquirir más, y un "NO"
cuando nuestra cantidad disponible sea mayor a la cantidad mínima estipulada para el
Producto.
PANTALLA DE INVENTARIOS
En esta Pantalla (de formato Dividido) mostrar la lista principal de Inventario y
podremos ahí notar todos los cambios realizados en las
cantidades, así como también poder capturar nuevos productos a la lista.
TABLA DE ENTRADAS DE INVENTARIO
En esta Tabla "Entradas de Producto", va a ser la tabla donde quedaran registradas
cada una de las entradas de cada producto en particular, será como una especie de
Log de Entradas (o lo que es lo mismo Detalles de Registros de
Entradas), Aquí quedaran registradas las nuevas cantidades que se ingresaran a la
lista principal de inventarios (por ende actualizándolo)
PANTALLA DE ENTRADAS DE INVENTARIO
Esta Pantalla de Entradas de Inventarios, será la interfaz donde el
usuario podrá capturar todos los productos, sus cantidades y localizaciones
de asignación para cada producto en particular.
La Parte LÓGICA: Pantallas de Inventarios
 Todos los Campos de Cantidades para las Tablas INVENTARIO e
INVENTARIO_ENT serán de Tipo "Doble" eso para permitir cantidades y fracciones
 La expresión del Campo Calculado : CANTIDAD_DISPONIBLE es la siguiente:
[CANT_LOC1]+ [CANT_LOC2]+ [CANT_LOC3]+ [CANTIDAD_EN_EXHIBICION]
 La expresión del Campo Calculado: BAJO_INVENTARIO es la siguiente:
SiInm([CANT_DISPONIBLE]<[CANTIDAD_MINIMA],"SI","NO")
 EL CODIGO DEL BOTON [Guadar y Continuar] Nombre del Boton
:CmdGuardarInv
Insertar este Código en evento Clic
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Private Sub CmdGuardarInv_Click()
On Error GoTo err:
'Variables de ejecucion
Dim idprod As Integer
Dim CantEnt As Double
Dim Loc As String
Dim CantActualInv As Double
Dim CantExhibicion As Double
Dim NvaCantExhibicion As Double
Dim CantLoc1 As Double
Dim NvaCantLoc1 As Double
Dim CantLoc2 As Double
Dim NvaCantLoc2 As Double
Dim Cantloc3 As Double
Dim NvaCantLoc3 As Double
'Anular valores nulos en la asignacion de valores
idprod = Nz(Me.FID_PRODUCTO.Value, 0)
CantEnt = Nz(Me.CANTIDAD_ENTRADA.Value, 0)
Loc = Nz(Me.ASIGNAR_LOCALIZACION.Value, "")
'Buscar datos en Lista de Inventarios
Dim Rst As DAO.Recordset
Dim sql As String
sql = "SELECT * FROM [INVENTARIOS] US WHERE US.[FID_PRODUCTO]=" & idprod
Set Rst = CurrentDb.OpenRecordset(sql)
If Rst.BOF And Rst.EOF Then
MsgBox "Producto No Encontrado en la Lista de Inventario"
Else
'Accion al Encontrar el producto en lista de inventario
'Actualizar Cantidad de Inventario segun la localizacion Seleccoionada
Select Case Loc
Case "EXHIBICION"
CantExhibicion = Rst![CANTIDAD_EN_EXHIBICION]
NvaCantExhibicion = CantExhibicion + CantEnt
Rst.Edit
Rst![CANTIDAD_EN_EXHIBICION] = NvaCantExhibicion
Rst.Update
Case "LOCALIZACION_1"
CantLoc1 = Rst![CANT_LOC1]
NvaCantLoc1 = CantLoc1 + CantEnt
Rst.Edit
Rst![CANT_LOC1] = NvaCantLoc1
Rst.Update
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
Case "LOCALIZACION_2"
CantLoc2 = Rst![CANT_LOC2]
NvaCantLoc2 = CantLoc2 + CantEnt
Rst.Edit
Rst![CANT_LOC2] = NvaCantLoc2
Rst.Update
Case "LOCALIZACION_3"
Cantloc3 = Rst![CANT_LOC3]
NvaCantLoc3 = Cantloc3 + CantEnt
Rst.Edit
Rst![CANT_LOC3] = NvaCantLoc3
Rst.Update
End Select
Rst.Close
Set Rst = Nothing
End If
DoCmd.GoToRecord , , acNext
Exit Sub
err:
MsgBox err.Description
End Sub
Pantalla de Clientes en Access
La pantalla de Clientes es fundamental en un sistema de punto de Venta.
2 Elementos vamos a necesitar:
1 TABLA DE CLIENTES Y 1 FORMULARIO DE CLIENTES.
En la tabla de Clientes vamos a colocar 6 Campos que listo a continuación:
ID_CLIENTE Tipo Auto numérico y con un Formato de tipo "CLI-"*00000
NOMBRE Texto
APE_PAT Texto
APE_MAT Texto
DIRECCION Texto
Teléfono Texto con una mascara de Entrada tipo (999")-"999-9999
EL FORMULARIO CLIENTES, va a ser de tipo Dialogo Modal y todos sus botones
serán programados en macros auto-contenidos.
También este formulario contendrá un HIPERVINCULO cuya función es enlazar y
mostrar el historial de las ventas del CLIENTE mostrado en pantalla.
Pantalla de Proveedores en Access | Punto de Venta |
La Pantalla de Proveedores en un Punto de Venta también es fundamental para llevar
su control y registró, con ello podremos tener al día sus datos de
registro así como también pretendemos llevar el seguimiento a las compras que les
estaremos realizando.
Vamos a ocupar tanto una Tabla de Proveedores y un Formulario de Proveedores, que
a continuación describo:
En la tabla de Proveedores vamos a necesitar 7 campos como se listan enseguida...
ID_PROVEEDOR ( tipo Auto numérico) y con un formato de tipo "PROV-"*00000
NOMBRE (tipo texto)
RAZON_SOCIAL (tipo texto)
DIRECCION (tipo texto)
TELEFONO (tipo texto) con una máscara de entrada (999")-"999-9999
RFC (tipo texto)
EMAIL (tipo texto)
En el Formulario de Proveedores vamos a necesitar:
1 Formulario de tipo Modal
1 Control de Pestaña
Titulo e Imagen
5 Botones programados con Macros para Búsqueda, Agregar, Guardar, Deshacer y
Salir
Pantalla de Ventas en Access Punto de Venta |
Estaremos considerando como diseñar y programar una Pantalla de Ventas en
Access 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 más 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.
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:
Una vez hecho esto, estaremos listos para Elaborar nuestra Pantalla de Ventas. Para
no confundir su elaboración 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 las relaciones solo seleccionamos los campos
indicados y arrastramos una línea 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 Más importantes (porque van a contener codigo) y sus
características 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 número de Cliente
Text Box txtPagar Para ingresar la cantidad con que se Paga
Label lblNumVenta Mostrará el número de Venta
Label lblHRVta Mostrará la hora de la Venta
Label lblFecVta Mostrará la fecha de la Venta
Label lblTotal Mostrará 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.
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 códigos que contienen estos formularios, contienen COMENTARIOS que hacen
referencia a que se está haciendo en cada parte de código. Esto nos ayudará a
comprender la lógica del programa.
1- El Código del Módulo 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
Cancelar Productos en Punto de Venta de Access
Ahora ya puede Cancelar Productos dentro de la pantalla de ventas, con solo hacer la
selección del producto y haciendo dobleclick usted podrá confirmar que desea hacer la
cancelación de tal producto.
De esta manera se vuelve más práctico el uso de esta pantalla, donde todos sus valores
son recalculados una vez hecha la cancelación de los productos.
Nota de Venta - Ticket | Punto de Venta en Access
La Nota de Venta o Ticket de Venta. Esta es una parte fundamental en el
funcionamiento del sistema de punto de venta, aquí vamos poder ver reflejada cada
transacción de venta realizada a nuestros Clientes.
No debemos de pasar por alto la necesidad de tener una impresora instalada por
defecto en el equipo donde se va usar el punto de venta, esta impresora será la que
nos dé la copia física en papel de cada venta. Sé que de momento quizás solo
dispongamos de una impresora normal con hojas de tamaño carta, sin embargo para
aquellos que estén interesados en usar una mini-impresora térmica adecuada para este
fin, más adelante les compartiré una lista de opciones de impresoras que podemos usar.
Copia de aquí las líneas de código
pNUMVENTA = Me.lblNumVenta.Caption
pSUPAGO = Me.TxtPagar.Value
pSUCAMBIO = Me.lblCambio.Caption
Call TICKET.imprimirTicket
Y nos debe quedar como en la imagen...
Ahora vamos a Verificar que contamos con una impresora instalada por defecto
en nuestro Equipo, seguimos los siguientes pasos:
Botón Inicio Windows->Equipos e Impresoras (y veremos nuestras impresoras
instaladas) la que está marcada con una flechita verde es la que tenemos por defecto,
de consiguiente aquí se imprimirá nuestra nota de venta.
Ahora les mencionare los objetos necesarios para la Nota de Venta y a
continuación los explicare de forma detallada:
OBJETOS NECESARIOS PARA LA NOTA DE VENTA
a)- TABLA: VISTAS_TICKET
b)- CONSULTA: DETALLE_TICKET
c)- REPORTES: TICKET_VENTA, DETALLE_TICKET subreport
d)- MODULO: TICKET
a) DISEÑO DE TABLA: VISTA_TICKET
Selecciona el tipo de Vistas de Impresion de la nota de venta
1 - Ocultar Vista Previa e Imprimir Ticket
2 - Solo Mostrar Vista Previa
3 - Mostrar Vista Previa en Imprimir Ticket
b) DISEÑO DE CONSULTA: DETALLE_TICKET
PUEDE SUCEDER QUE AL MOMENTO DE IMPORTAR ESTA CONSULTA SE
PIERDA UNA REFERENCIA, AQUI TE MUESTRO COMO CORREGIRLA
c) DISEÑO DE REPORTE: TICKET_VENTA
El ancho que se señala es de 3 pulgadas pero puede cambiarse cuando usemos una
mini-impresora térmica según el ancho del papel con el que contemos (este es un
parámetro que podemos ajustar)
Solo los títulos en este reporte (los datos de cabecera) pueden ser cambiados según
sea nuestra necesidad
d) MODULO: TICKET
Dbdd u1 ea_dila
Dbdd u1 ea_dila
Corte de Caja en Punto de Venta Access
Los Reportes de Corte de Caja serán nuestras herramientas para sumarizar los
resultados de nuestro punto de venta en Access 2010, en el momento deseado. Aquí
tendremos la oportunidad de elegir entre 2 distintos reportes: Corte de Caja de Ventas
Total y Corte de Caja Ventas Detalle, además de que podremos seleccionar entre
varios rangos de fechas
También, estos reportes estarán disponibles en Excel, vistas por pantalla y
físicamente por impresora.
Esta seria nuestra tabla de DEPARTAMENTOS, aquí podemos cambiar los nombres de
acuerdo a nuestras necesidades
Las pantallas de DEPARTAMENTOS quedará de la siguiente manera, ahora podremos
dar seguimiento y así saber en nuestros reportes ¿qué DEPARTAMENTO? de nuestro
negocio o tienda nos da mayores utilidades.
Una vez que hemos hechos los ajustes necesarios, ahora te muestro los distintos
tipos de Reportes que nuestro sistema será capaz de mostrar CORTE DE CAJA
VENTAS TOTAL y CORTE DE CAJA VENTAS DETALLE.
Aquí te mostrare las vistas previas por Pantalla, pero estos resultados también los
podrás exportar a formato de Excel y hacia la impresora.
CORTE DE CAJA VENTAS
CORTE DE CAJA VENTAS DETALLE: Muestra Subtotales y Totales por
DEPARTAMENTO y USUARIO, así podrás identificar qué departamento o usuarios está
rindiendo mejor Utilidad.
Dbdd u1 ea_dila
Dbdd u1 ea_dila
Estos son los objetos CORTE DE CAJA
Impórtalos a tu Sistema de Punto de Venta y LISTO!!
Bibliografía
aulaclick-access.blogspot.com/2011/11/como-crear-un-punto-de-venta-en-access.html
www.lawebdelprogramador.com › Foros › Access
www.lawebdelprogramador.com › Foros › Access
https://www.contpaqi.com/CONTPAQi/punto_venta.aspx
www.aspel.com.mx/productos/caja/presentacion.html

Más contenido relacionado

PDF
Fitom
PDF
Documentoaltas
PPTX
creacion de bd en vb
PDF
Formulario de altas
PDF
WPF 03 - controles WPF
PDF
Elemento 3
DOCX
Movimiento de entradas y salidas en un almacen
Fitom
Documentoaltas
creacion de bd en vb
Formulario de altas
WPF 03 - controles WPF
Elemento 3
Movimiento de entradas y salidas en un almacen

La actualidad más candente (18)

PDF
Cuadro combinado filtrado microsoft access - todoexpertos.com
PDF
Manual pp hojas de ruta
DOCX
Crear inventarios
PDF
Resumen excel vba parte iv
PDF
Elemento n3
PPT
Tutorial visual basic 6
PPT
Wam navegacion basica sap rev a
PPTX
Evelin moreno panel de control
PPTX
Formularios y contenedores
PDF
37. orden de fabricación (crear, visualizar, modificar)
DOCX
Formulario mdi
TXT
Manual sistema de contabilidad simplificada en excel
DOCX
Cuaderno de ejercicios y practicas vistual basic
PDF
Cuaderno digital
PPTX
Presentacion compusoft
PPTX
Presentacion compusoft
PDF
Altas alumnos
PDF
Manual sistema de contabilidad simplificada en excel
Cuadro combinado filtrado microsoft access - todoexpertos.com
Manual pp hojas de ruta
Crear inventarios
Resumen excel vba parte iv
Elemento n3
Tutorial visual basic 6
Wam navegacion basica sap rev a
Evelin moreno panel de control
Formularios y contenedores
37. orden de fabricación (crear, visualizar, modificar)
Formulario mdi
Manual sistema de contabilidad simplificada en excel
Cuaderno de ejercicios y practicas vistual basic
Cuaderno digital
Presentacion compusoft
Presentacion compusoft
Altas alumnos
Manual sistema de contabilidad simplificada en excel
Publicidad

Similar a Dbdd u1 ea_dila (20)

PDF
Separata de vb 2015
DOCX
Manual Tecnico
DOCX
Manual De Usuario
PDF
Mcvs de-02 manual de usuario final
PDF
PLC y Electroneumática: Codesys Grafcet
DOC
Manual usuario equipos_virtuales_sa_de_cv
DOC
Manual usuario equipos_virtuales_sa_de_cv
PDF
Dfd
PPTX
Programa
 
DOCX
Lab 6- UIII - DAQ-NI Arduino-con LM35.docx
PDF
Diseño sistema
PPTX
Presentación del proyecto de informática
PPTX
Heuft - Cuadro de control.pptx
PPTX
PDF
Tema2040.sap
DOCX
Manual Tecnico
PPTX
Presentación de Factory Talk Optix Parte 2.pptx
PPS
Clase para 1º Info
PDF
Proteus
PPT
MANUAL DE USUARIO DIOT VERSION 1.1.5
Separata de vb 2015
Manual Tecnico
Manual De Usuario
Mcvs de-02 manual de usuario final
PLC y Electroneumática: Codesys Grafcet
Manual usuario equipos_virtuales_sa_de_cv
Manual usuario equipos_virtuales_sa_de_cv
Dfd
Programa
 
Lab 6- UIII - DAQ-NI Arduino-con LM35.docx
Diseño sistema
Presentación del proyecto de informática
Heuft - Cuadro de control.pptx
Tema2040.sap
Manual Tecnico
Presentación de Factory Talk Optix Parte 2.pptx
Clase para 1º Info
Proteus
MANUAL DE USUARIO DIOT VERSION 1.1.5
Publicidad

Último (20)

PPTX
TOPOGRAFÍA - INGENIERÍA CIVIL - PRESENTACIÓN
PDF
MANTENIMIENTO AIRE ACOINDICIOANDO S1_ELEC_MANT.pptx.pdf
PPTX
376060032-Diapositivas-de-Ingenieria-ESTRUCTURAL.pptx
PDF
Módulo V. Tema 2. Disruptive & Transformation 2024 v.0.4.pdf
PDF
TRABAJO DE ANÁLISIS DE RIESGOS EN PROYECTOS
DOCX
Cumplimiento normativo y realidad laboral
PPTX
Manual ISO9001_2015_IATF_16949_2016.pptx
PDF
SESION 9 seguridad IZAJE DE CARGAS.pdf ingenieria
PPTX
Riesgo eléctrico 5 REGLAS DE ORO PARA TRABAJOS CON TENSION
PPTX
CNE-Tx-ZyD_Comite_2020-12-02-Consolidado-Version-Final.pptx
PPTX
Expo petroelo 2do ciclo.psssssssssssssptx
PDF
SISTEMAS DE PUESTA A TIERRA: Una introducción a los fundamentos de los sistem...
PPTX
Cómo Elaborar e Implementar el IPERC_ 2023.pptx
PDF
LIBRO UNIVERSITARIO SISTEMAS PRODUCTIVOS BN.pdf
PPTX
ARQUITECTURA INTEGRAL EN OBRA, PRINCIPIOS BASICOS Y TERMINOS
PPTX
A8B08CED-D3D9-415C-B4A3-2A6CA6409A48.1.1Presentación Dirección 2022 unidade...
PPTX
diego universidad convergencia e información
PDF
manual-sostenibilidad-vivienda-yo-construyo (1).pdf
PDF
LIBRO UNIVERSITARIO INTELIGENCIA ALGORITMICA BN.pdf
PDF
METODOLOGÍA DE INVESTIGACION ACCIDENTES DEL TRABAJO.pdf
TOPOGRAFÍA - INGENIERÍA CIVIL - PRESENTACIÓN
MANTENIMIENTO AIRE ACOINDICIOANDO S1_ELEC_MANT.pptx.pdf
376060032-Diapositivas-de-Ingenieria-ESTRUCTURAL.pptx
Módulo V. Tema 2. Disruptive & Transformation 2024 v.0.4.pdf
TRABAJO DE ANÁLISIS DE RIESGOS EN PROYECTOS
Cumplimiento normativo y realidad laboral
Manual ISO9001_2015_IATF_16949_2016.pptx
SESION 9 seguridad IZAJE DE CARGAS.pdf ingenieria
Riesgo eléctrico 5 REGLAS DE ORO PARA TRABAJOS CON TENSION
CNE-Tx-ZyD_Comite_2020-12-02-Consolidado-Version-Final.pptx
Expo petroelo 2do ciclo.psssssssssssssptx
SISTEMAS DE PUESTA A TIERRA: Una introducción a los fundamentos de los sistem...
Cómo Elaborar e Implementar el IPERC_ 2023.pptx
LIBRO UNIVERSITARIO SISTEMAS PRODUCTIVOS BN.pdf
ARQUITECTURA INTEGRAL EN OBRA, PRINCIPIOS BASICOS Y TERMINOS
A8B08CED-D3D9-415C-B4A3-2A6CA6409A48.1.1Presentación Dirección 2022 unidade...
diego universidad convergencia e información
manual-sostenibilidad-vivienda-yo-construyo (1).pdf
LIBRO UNIVERSITARIO INTELIGENCIA ALGORITMICA BN.pdf
METODOLOGÍA DE INVESTIGACION ACCIDENTES DEL TRABAJO.pdf

Dbdd u1 ea_dila

  • 1. Desarrollo de software Base de datos Diana Lopez Aguilar Evidenciade aprendizaje.Reporte:Integracióngeneral de elementosespecíficosde lasBases de datos ES161762591
  • 2. Punto de Venta en Access. Los 2 elementos de este módulo, son: Una tabla de Usuarios Un formulario de Usuarios La tabla de usuarios contiene todos los datos necesarios para que cada usuario pueda usar el sistema de acuerdo a los permisos otorgados, así que cada usuario poseerá permisos según sea requerido. Toda esta configuración será importante al momento que un empleado entre al sistema (utilizando una formulario de acceso) ya que el sistema será capaz de reconocer que acciones si y que acciones no el usuario podrá desempeñar de acuerdo a los permisos otorgados. Esta es la estructura de la tabla de USUARIOS Estas son la configuración para el Formulario de USUARIOS:
  • 3. VISTA DE LA MACRO EN BOTON CmdAceptar (GUARDAR Y SALIR)
  • 4. Punto de Venta en Access | Acceso al Sistema | NOMBRE DE LOS CONTROLES: El textbox para el Nombre de Usuario se debe nombrar: TxtNOMBRE_USUARIO El textbox para la clave de usuario se debe nombrar: TxtCLAVE_USUARIO El evento del botón CANCELAR: Solo contiene una macro incrustada con el evento "SalirdeAccess" Este es el código del Botón Aceptar ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Private Sub CmdAceptar_Click() On Error GoTo err: 'variable local para nombre y clave de usuario Dim NOMUSU As String Dim CVEUSU As String 'Asignar el valor de los controles a las variables locales NOMUSU = UCase(Nz(Me.TxtNombre_Usuario.Value, "")) CVEUSU = UCase(Nz(Me.TxtCLAVE_USUARIO.Value, "")) If IsEmpty(NOMUSU) Or IsEmpty(CVEUSU) Then MsgBox "Datos Incompletos...", vbOKOnly + vbCritical, "Imposible Ingresar!!" Else 'Buscar Usuario con los datos ingresados If ExisteUsuario(NOMUSU, CVEUSU) = True Then MsgBox "Bienvenido al Sistema", vbOKOnly + vbInformation, "Acceso E DoCmd.Close 'Cerrar ventana de Acceso 'Codigo para entrar al sistema,, esten pendiente con las PROXIMAS E DoCmd.OpenForm "VENTAS", acNormal
  • 5. 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 Else NumIntento = NumIntento + 1 If NumIntento <= 2 Then MsgBox "Usuario o Clave incorrecta", vbCritical + vbOKOnly, Me.TxtNombre_Usuario.Value = "" Me.TxtCLAVE_USUARIO.Value = "" Me.TxtNombre_Usuario.SetFocus Else MsgBox "Demasiados Intentos, el Sistema se cerrara!", vbCri DoCmd.Quit End If End If End If Exit Sub err: MsgBox err.Description End Sub Esta es la Funcion de ExisteUsuario ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 <b> Public Function ExisteUsuario(strNomUsuario As String, strCveUsuario As String) As Boo On Error GoTo us_err Dim Rst As DAO.Recordset Dim sql As String sql = "SELECT * FROM [USUARIOS] US WHERE US.[NOMBRE_USUARIO]='" & strNomUsuario & "' Set Rst = CurrentDb.OpenRecordset(sql) If Rst.BOF And Rst.EOF Then ExisteUsuario = False Else ExisteUsuario = True 'Se Inicializar las variables de Sesion xNOMBRE_USUARIO = Rst!NOMBRE_USUARIO xCLAVE_USUARIO = Rst!CLAVE_USUARIO xNOMBRE = Rst!NOMBRE xAPELLIDO_PATERNO = Rst!APELLIDO_PATERNO xAPELLIDO_MATERNO = Rst!APELLIDO_MATERNO xVENTAS = Rst!VENTAS xADMINISTRAR = Rst!ADMINISTRAR xREPORTES = Rst!REPORTES xCATALOGOS = Rst!CATALOGOS xCONSULTAS = Rst!CONSULTAS xCANCELAR_VENTA = Rst!CANCELAR_VENTA
  • 6. 23 24 25 26 27 28 29 30 31 32 33 34 35 End If Rst.Close Set Rst = Nothing Exit Function us_err: MsgBox err.Description End Function </b> Estas son la variable Publicas del Sistema ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Option Compare Database Option Explicit 'VARIABLES DE SESION 'SE NOMBRARAN IGUAL TAL COMO EN EL DISEÑO DE LAS TABLAS, PERO CON EL PREFIJO "x" 'PARA IDENTIFICARLAS COMO VARIABLES DE SESION '----------- DATOS DE USUARIO----------- Public xNOMBRE_USUARIO As String Public xCLAVE_USUARIO As String Public xNOMBRE As String Public xAPELLIDO_MATERNO As String Public xAPELLIDO_PATERNO As String Public xVENTAS As Boolean Public xADMINISTRAR As Boolean Public xREPORTES As Boolean Public xCATALOGOS As Boolean Public xCONSULTAS As Boolean Public xCANCELAR_VENTA As Boolean '--------------------------------------- Public NumIntento As Byte Punto de Venta en Access | Pantalla de Productos | Pantalla de Productos para un Punto de Venta en Access. Se explican las funciones de cada uno de los controles de esta pantalla. Se hace necesario no omitir ninguna parte de la explicación ya que esto nos accionaria algunos problemas para hacer funcionar esta pantalla.
  • 7. En esta Pantalla de Productos necesitamos solo 2 Elementos: LA TABLA DE PRODUCTOS PANTALLA DE PRODUCTOS (LISTA)
  • 8. PANTALLA DE PRODUCTOS (DETALLES) ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ' CODIGOS DE LA ENTREGA 3 'Codigo para el boton btnBuscarProd Private Sub BtnBuscarProd_Click() Me.LISTA_DE_PRODUCTOS.Requery Me.Refresh End Sub 'Codigo para el evento dobleclick de la Lista_Productos Private Sub LISTA_PRODUCTOS_DblClick(Cancel As Integer) If Nz(Me.[LISTA_PRODUCTOS], 0) <> 0 Then DoCmd.GoToControl "DETALLES" Me.Filter = "ID_PRODUCTO =" & Me.[LISTA_PRODUCTOS] Me.FilterOn = True Else MsgBox "NO HA SELECCIONADO NINGUN PRODUCTO", vbCritical + vbOKOnly, "Error!!" End If End Sub
  • 9. APARTADO-1 (AGREGAR BUSQUEDA DE PRODUCTOS POR CODIGO DE BARRAS) Seguir estos pasos: 1.- En vista de diseño seleccionar el listBox e ir la ventana de propiedades, en la ficha de datos seleccionar ORIGEN dar click en el botón [...] y luego te mostrara una consulta 2.- en la parte de arriba de la consulta estarán los campos de la tabla PRODUCTOS, ahí deberás encontrar el campo CODIGO_BARRAS 3.- haces doble click en ese campo y se agregara abajo junto con los demás 4.- colocar en el criterio (un renglón más abajo) esto y guardar. 5.- En la ficha de Formato en la propiedad cantidad de columnas colocar 8 (ya que agregamos una más, la del código de barras) 6.- y agregar una anchura más en la propiedad ANCHO DE COLUMNAS
  • 10. 1.1806"; 1.9681"; 1.9681"; 1.9681"; 1.9681"; 1.9681"; 1.9681"; 1.9" 7.- y esto todo YA DEBE FUNCIONAR LA BUSQUEDA DE PRODUCTOS por CODIGO DE BARRAS Punto de Venta en Access | Pantallas de Inventarios | "Las Pantallas de Inventarios", quizás vaya a ser una de las que más contenido haya que explicar. Por lo que tendré la necesidad de dividirlo en 2 partes La Funcional y la Lógica. La Parte FUNCIONAL: Pantalla de Inventarios Empezare por explicar que hay 2 pantallas y 2 Tablas de Inventarios: 1. INVENTARIOS "Esta será la lista Principal de Inventarios" 2. ENTRADAS_INV "Las Entradas Individuales de Inventario" TABLA DE INVENTARIOS En esta Tabla, además del particular tendremos 2 campos calculados, (que ha sido una de las novedades incluidas en la versión 2010 de Access). Uno Bajo el nombre de
  • 11. CANT_DISPONIBLE que almacenara todas cantidades existentes (Cantidad de Exhibición + Cantidad de Localización 1 + Cantidad de Localización + Cantidad de Localización 3), El segundo campo Calculado será BAJO_INVENTARIO este campo tiene una condición que evalúa si la Cantidad Disponible Total es Menor a la Cantidad Mínima estipulada para el producto, se colocara un "SI" para indicarnos que el inventario es bajo para este producto y será necesario adquirir más, y un "NO" cuando nuestra cantidad disponible sea mayor a la cantidad mínima estipulada para el Producto. PANTALLA DE INVENTARIOS En esta Pantalla (de formato Dividido) mostrar la lista principal de Inventario y podremos ahí notar todos los cambios realizados en las cantidades, así como también poder capturar nuevos productos a la lista. TABLA DE ENTRADAS DE INVENTARIO En esta Tabla "Entradas de Producto", va a ser la tabla donde quedaran registradas cada una de las entradas de cada producto en particular, será como una especie de Log de Entradas (o lo que es lo mismo Detalles de Registros de Entradas), Aquí quedaran registradas las nuevas cantidades que se ingresaran a la lista principal de inventarios (por ende actualizándolo)
  • 12. PANTALLA DE ENTRADAS DE INVENTARIO Esta Pantalla de Entradas de Inventarios, será la interfaz donde el usuario podrá capturar todos los productos, sus cantidades y localizaciones de asignación para cada producto en particular. La Parte LÓGICA: Pantallas de Inventarios  Todos los Campos de Cantidades para las Tablas INVENTARIO e INVENTARIO_ENT serán de Tipo "Doble" eso para permitir cantidades y fracciones  La expresión del Campo Calculado : CANTIDAD_DISPONIBLE es la siguiente: [CANT_LOC1]+ [CANT_LOC2]+ [CANT_LOC3]+ [CANTIDAD_EN_EXHIBICION]  La expresión del Campo Calculado: BAJO_INVENTARIO es la siguiente: SiInm([CANT_DISPONIBLE]<[CANTIDAD_MINIMA],"SI","NO")
  • 13.  EL CODIGO DEL BOTON [Guadar y Continuar] Nombre del Boton :CmdGuardarInv Insertar este Código en evento Clic ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 Private Sub CmdGuardarInv_Click() On Error GoTo err: 'Variables de ejecucion Dim idprod As Integer Dim CantEnt As Double Dim Loc As String Dim CantActualInv As Double Dim CantExhibicion As Double Dim NvaCantExhibicion As Double Dim CantLoc1 As Double Dim NvaCantLoc1 As Double Dim CantLoc2 As Double Dim NvaCantLoc2 As Double Dim Cantloc3 As Double Dim NvaCantLoc3 As Double 'Anular valores nulos en la asignacion de valores idprod = Nz(Me.FID_PRODUCTO.Value, 0) CantEnt = Nz(Me.CANTIDAD_ENTRADA.Value, 0) Loc = Nz(Me.ASIGNAR_LOCALIZACION.Value, "") 'Buscar datos en Lista de Inventarios Dim Rst As DAO.Recordset Dim sql As String sql = "SELECT * FROM [INVENTARIOS] US WHERE US.[FID_PRODUCTO]=" & idprod Set Rst = CurrentDb.OpenRecordset(sql) If Rst.BOF And Rst.EOF Then MsgBox "Producto No Encontrado en la Lista de Inventario" Else 'Accion al Encontrar el producto en lista de inventario 'Actualizar Cantidad de Inventario segun la localizacion Seleccoionada Select Case Loc Case "EXHIBICION" CantExhibicion = Rst![CANTIDAD_EN_EXHIBICION] NvaCantExhibicion = CantExhibicion + CantEnt Rst.Edit Rst![CANTIDAD_EN_EXHIBICION] = NvaCantExhibicion Rst.Update Case "LOCALIZACION_1" CantLoc1 = Rst![CANT_LOC1] NvaCantLoc1 = CantLoc1 + CantEnt Rst.Edit Rst![CANT_LOC1] = NvaCantLoc1 Rst.Update
  • 14. 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 Case "LOCALIZACION_2" CantLoc2 = Rst![CANT_LOC2] NvaCantLoc2 = CantLoc2 + CantEnt Rst.Edit Rst![CANT_LOC2] = NvaCantLoc2 Rst.Update Case "LOCALIZACION_3" Cantloc3 = Rst![CANT_LOC3] NvaCantLoc3 = Cantloc3 + CantEnt Rst.Edit Rst![CANT_LOC3] = NvaCantLoc3 Rst.Update End Select Rst.Close Set Rst = Nothing End If DoCmd.GoToRecord , , acNext Exit Sub err: MsgBox err.Description End Sub Pantalla de Clientes en Access La pantalla de Clientes es fundamental en un sistema de punto de Venta. 2 Elementos vamos a necesitar: 1 TABLA DE CLIENTES Y 1 FORMULARIO DE CLIENTES.
  • 15. En la tabla de Clientes vamos a colocar 6 Campos que listo a continuación: ID_CLIENTE Tipo Auto numérico y con un Formato de tipo "CLI-"*00000 NOMBRE Texto APE_PAT Texto APE_MAT Texto DIRECCION Texto Teléfono Texto con una mascara de Entrada tipo (999")-"999-9999 EL FORMULARIO CLIENTES, va a ser de tipo Dialogo Modal y todos sus botones serán programados en macros auto-contenidos. También este formulario contendrá un HIPERVINCULO cuya función es enlazar y mostrar el historial de las ventas del CLIENTE mostrado en pantalla. Pantalla de Proveedores en Access | Punto de Venta | La Pantalla de Proveedores en un Punto de Venta también es fundamental para llevar su control y registró, con ello podremos tener al día sus datos de registro así como también pretendemos llevar el seguimiento a las compras que les estaremos realizando. Vamos a ocupar tanto una Tabla de Proveedores y un Formulario de Proveedores, que a continuación describo: En la tabla de Proveedores vamos a necesitar 7 campos como se listan enseguida... ID_PROVEEDOR ( tipo Auto numérico) y con un formato de tipo "PROV-"*00000 NOMBRE (tipo texto) RAZON_SOCIAL (tipo texto) DIRECCION (tipo texto) TELEFONO (tipo texto) con una máscara de entrada (999")-"999-9999 RFC (tipo texto) EMAIL (tipo texto)
  • 16. En el Formulario de Proveedores vamos a necesitar: 1 Formulario de tipo Modal 1 Control de Pestaña Titulo e Imagen 5 Botones programados con Macros para Búsqueda, Agregar, Guardar, Deshacer y Salir Pantalla de Ventas en Access Punto de Venta | Estaremos considerando como diseñar y programar una Pantalla de Ventas en Access 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 más 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. 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:
  • 17. Una vez hecho esto, estaremos listos para Elaborar nuestra Pantalla de Ventas. Para no confundir su elaboración 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
  • 19. 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 las relaciones solo seleccionamos los campos indicados y arrastramos una línea al otro extremo al campo de la otra tabla, soltamos y nos aparece una mensaje y solo pulsamos OK
  • 20. 2- EL DISEÑO DE LA PANTALLA DE VENTAS EN ACCESS 2010 Voy a Listar los controles Más importantes (porque van a contener codigo) y sus características 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 número de Cliente Text Box txtPagar Para ingresar la cantidad con que se Paga Label lblNumVenta Mostrará el número de Venta Label lblHRVta Mostrará la hora de la Venta Label lblFecVta Mostrará la fecha de la Venta Label lblTotal Mostrará 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
  • 21. 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. 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 códigos que contienen estos formularios, contienen COMENTARIOS que hacen referencia a que se está haciendo en cada parte de código. Esto nos ayudará a comprender la lógica del programa. 1- El Código del Módulo de VENTAS 2- Como Programar el formulario de VENTAS 3- Como Programar el formulario de BUSCAR_PRODUCTO
  • 22. 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 Cancelar Productos en Punto de Venta de Access Ahora ya puede Cancelar Productos dentro de la pantalla de ventas, con solo hacer la selección del producto y haciendo dobleclick usted podrá confirmar que desea hacer la cancelación de tal producto.
  • 23. De esta manera se vuelve más práctico el uso de esta pantalla, donde todos sus valores son recalculados una vez hecha la cancelación de los productos. Nota de Venta - Ticket | Punto de Venta en Access La Nota de Venta o Ticket de Venta. Esta es una parte fundamental en el funcionamiento del sistema de punto de venta, aquí vamos poder ver reflejada cada transacción de venta realizada a nuestros Clientes. No debemos de pasar por alto la necesidad de tener una impresora instalada por defecto en el equipo donde se va usar el punto de venta, esta impresora será la que nos dé la copia física en papel de cada venta. Sé que de momento quizás solo dispongamos de una impresora normal con hojas de tamaño carta, sin embargo para aquellos que estén interesados en usar una mini-impresora térmica adecuada para este fin, más adelante les compartiré una lista de opciones de impresoras que podemos usar. Copia de aquí las líneas de código pNUMVENTA = Me.lblNumVenta.Caption pSUPAGO = Me.TxtPagar.Value pSUCAMBIO = Me.lblCambio.Caption
  • 24. Call TICKET.imprimirTicket Y nos debe quedar como en la imagen... Ahora vamos a Verificar que contamos con una impresora instalada por defecto en nuestro Equipo, seguimos los siguientes pasos: Botón Inicio Windows->Equipos e Impresoras (y veremos nuestras impresoras instaladas) la que está marcada con una flechita verde es la que tenemos por defecto, de consiguiente aquí se imprimirá nuestra nota de venta.
  • 25. Ahora les mencionare los objetos necesarios para la Nota de Venta y a continuación los explicare de forma detallada: OBJETOS NECESARIOS PARA LA NOTA DE VENTA a)- TABLA: VISTAS_TICKET b)- CONSULTA: DETALLE_TICKET c)- REPORTES: TICKET_VENTA, DETALLE_TICKET subreport d)- MODULO: TICKET
  • 26. a) DISEÑO DE TABLA: VISTA_TICKET Selecciona el tipo de Vistas de Impresion de la nota de venta 1 - Ocultar Vista Previa e Imprimir Ticket 2 - Solo Mostrar Vista Previa 3 - Mostrar Vista Previa en Imprimir Ticket b) DISEÑO DE CONSULTA: DETALLE_TICKET
  • 27. PUEDE SUCEDER QUE AL MOMENTO DE IMPORTAR ESTA CONSULTA SE PIERDA UNA REFERENCIA, AQUI TE MUESTRO COMO CORREGIRLA
  • 28. c) DISEÑO DE REPORTE: TICKET_VENTA El ancho que se señala es de 3 pulgadas pero puede cambiarse cuando usemos una mini-impresora térmica según el ancho del papel con el que contemos (este es un parámetro que podemos ajustar) Solo los títulos en este reporte (los datos de cabecera) pueden ser cambiados según
  • 33. Corte de Caja en Punto de Venta Access Los Reportes de Corte de Caja serán nuestras herramientas para sumarizar los resultados de nuestro punto de venta en Access 2010, en el momento deseado. Aquí tendremos la oportunidad de elegir entre 2 distintos reportes: Corte de Caja de Ventas Total y Corte de Caja Ventas Detalle, además de que podremos seleccionar entre varios rangos de fechas
  • 34. También, estos reportes estarán disponibles en Excel, vistas por pantalla y físicamente por impresora. Esta seria nuestra tabla de DEPARTAMENTOS, aquí podemos cambiar los nombres de acuerdo a nuestras necesidades
  • 35. Las pantallas de DEPARTAMENTOS quedará de la siguiente manera, ahora podremos dar seguimiento y así saber en nuestros reportes ¿qué DEPARTAMENTO? de nuestro negocio o tienda nos da mayores utilidades. Una vez que hemos hechos los ajustes necesarios, ahora te muestro los distintos tipos de Reportes que nuestro sistema será capaz de mostrar CORTE DE CAJA VENTAS TOTAL y CORTE DE CAJA VENTAS DETALLE.
  • 36. Aquí te mostrare las vistas previas por Pantalla, pero estos resultados también los podrás exportar a formato de Excel y hacia la impresora. CORTE DE CAJA VENTAS CORTE DE CAJA VENTAS DETALLE: Muestra Subtotales y Totales por DEPARTAMENTO y USUARIO, así podrás identificar qué departamento o usuarios está rindiendo mejor Utilidad.
  • 39. Estos son los objetos CORTE DE CAJA Impórtalos a tu Sistema de Punto de Venta y LISTO!! Bibliografía aulaclick-access.blogspot.com/2011/11/como-crear-un-punto-de-venta-en-access.html www.lawebdelprogramador.com › Foros › Access www.lawebdelprogramador.com › Foros › Access https://www.contpaqi.com/CONTPAQi/punto_venta.aspx www.aspel.com.mx/productos/caja/presentacion.html