Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

Punto de Venta con Excel -Access #1000

Punto de Venta en Excel Acces Alta Cliente

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

Referencia para utilizar SQL VBA

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″

Summary
Author Rating
1star1star1star1star1star
Aggregate Rating
no rating based on 0 votes