Punto de Venta en Excel – Access
En el presente post se muestra como crear un punto de venta en Excel paso a paso o desde cero, se utiliza Excel para gestionar datos y Access para guardar datos, se utiliza ADODB Connection para poder conectar Excel con la base de datos de Access y a través de sentecias SQL poder agregar y consultar datos de Access y mostrarlos en formularios de Excel y hojas de Excel.
Para manejar Excel en forma eficiente haz click acá, si quieres aprender sobre Excel, en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet, te lo recomiendo no te arrepentirás.
Que es Punto de Venta en Excel
Punto de Venta con Excel le denomino al aplicativo que permite generar facturas o comprobantes de venta que está hecho integralmente con Excel no necesita de aplicaciones especificas solo se necesita Excel y Access que son dos aplicativos que vienen en el paquete de Office, se recomienda el uso de Excel 2016 en adelante.
Para que pueda funcionar el ejemplo de punto de venta en Excel correctamente se debe activar una referencia en VBA que es «Microsoft ActiveX Data Objects 2.8 Library» o «Microsoft ActiveX Data Objects 2.5 Library», tal cual se muestra en la figura siguiente
Quizás también interese leer:
Integrar Excel con Access usar SQL para ingresar datos
Conectar Excel con Excel usar SQL consulta por fecha con datos en otro libro de Excel
Funcionamiento del Punto de Venta En Excel
Este punto de Venta en Excel está diseñado para funcionar conjuntamente con una base de datos de Access, es decir se usa Excel para gesttionar datos, insertar, borrar, consultar datos; utilizando sentencias SQL se conecta con la base de datos de Access, que es donde se guardan los datos, mostrandose en Excel ya sea un una hoja o en formularios Excel.
Básicamente se compone de una formulario de facturación, otro con el padrón de clientes y otra con los artículos que se irán facturando, adicionalmente se pueden agregar prácticamente lo que se desee, lo cual se irá haciendo dependiendo de los comentarios que se dejen en el vídeo de you tube relacionado.
Explicación del código para insertar datos o clientes nuevo o dar de alta clientes
En primer lugar hay que establecer la conexión con la base de datos de Access que contiene los registros a modificar o tablas donde se deben ingresar los registros, lo cual se hace con el siguiente código:
cn.Open «Provider=Microsoft.ACE.OLEDB.12.0; » & «data source=» & ThisWorkbook.Path & «\1000 DBTSPuntoVenta.accdb;»
Posteriormente se incorporan en la base de datos en el campo (columna de la tabla) correspondiente los datos de los textbox que contiene los datos del cliente, lo cual se hace con los siguientes códigos:
With rs
.AddNew
.Fields(«N_Cliente») = TextBox2
.Fields(«Nombre_Cliente») = TextBox3
.Fields(«Domicilio_Cliente») = TextBox4
.Fields(«Mail_Cliente») = TextBox5
.Fields(«Telefono_Cliente») = TextBox6
.Update
End With
Código para poder dar de alta clientes nuevos
El código que se muestra a continuación es el que se utiliza en el ejemplo y permite conectar Excel con Access e ingresar nuevos registros en este caso los registros están relacionados con el alta de nuevos clientes en la base de datos de Access, lo cual se hace a través de un formulario de Excel, recomiendo ver el play list completo:
El código el botón para dar de alta el nuevo cliente es:
Private Sub CommandButton2_Click()
Dim fila As Long, uf As Long, conta As Long
Dim cn As ADODB.Connection, rs As ADODB.Recordset
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
If TextBox3 = Empty Then Exit Sub
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
cn.Open «Provider=Microsoft.ACE.OLEDB.12.0; » & «data source=» & ThisWorkbook.Path & «\1000 DBTSPuntoVenta.accdb;»
‘Sql = «INSERT INTO DB_Clientes (N_Cliente,Nombre_Cliente,Domicilio_Cliente,Mail_Cliente,Telefono_Cliente) VALUES (» & TextBox2 & «,'» & TextBox3 & «‘,'» & TextBox4 & «‘,'» & TextBox5 & «‘,'» & TextBox6 & «‘)»
‘cn.Execute Sql
rs.Open «DB_Clientes», cn, adOpenKeyset, adLockOptimistic, adCmdTable
With rs
.AddNew
.Fields(«N_Cliente») = TextBox2
.Fields(«Nombre_Cliente») = TextBox3
.Fields(«Domicilio_Cliente») = TextBox4
.Fields(«Mail_Cliente») = TextBox5
.Fields(«Telefono_Cliente») = TextBox6
.Update
End With
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
MsgBox («Se dio de alta el cliente con éxito»), vbInformation, «AVISO»
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
El código del botón para salir o cerrar formulario es:
Private Sub CommandButton1_Click()
Unload UserForm1
End Sub
El código del multipage, para que cuando se seleccione determine por defecto el número de cliente siguiente es:
Private Sub MultiPage1_Click(ByVal Index As Long)
On Error Resume Next
Dim cn As ADODB.Connection, rs As ADODB.Recordset, sql As String, maxCliente As Long
If UserForm1.MultiPage1.Value = 1 Then
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
cn.Open «Provider=Microsoft.ACE.OLEDB.12.0; » & «data source=» & ThisWorkbook.Path & «\1000 DBTSPuntoVenta.accdb;»
sql = «SELECT COUNT (N_Cliente) FROM DB_Clientes»
Set rs = cn.Execute(sql)
maxCliente = rs.Fields(0).Value
UserForm1.TextBox2 = maxCliente + 1
End If
End Sub
El código para que al abrir el formulario siempre se seleccione la pestaña cero (se numeran de cero hasta la última pestaña), es:
Private Sub UserForm_Initialize()
UserForm1.MultiPage1.Value = 0 ‘Permite hacer que siempre se selecciona la página 0 por defecto
End Sub
Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.
If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.
Donate:
Cuenta Paypal: https://paypal.me/programarexcel
Cuenta Bitcoin: 1KBGGb8fyDzyR3X1Rie6m7VguzaAfngNbd
Cuenta Ether: 0x41Bbd24556914C83a31217eBb3BC49789b66e407
[the_ad id=»5838″