Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

Punto de Venta con Excel – Eliminar Clientes #1006

Punto de Venta en Excel Editar Eliminar Delete Excel VBA SQL

Punto de Venta en Excel – Eliminar Registros de Clientes

Avanzando con lo que hemos denominado Punto de Venta en Excel – Access, donde se combinan Excel para gestionar datos y Access para guardar datos, es decir todos los datos que se ven en Excel están guardados en Access, cada vez que se requiera guardar, consultar, modificar o eliminar un registros se está realizando la tarea en Access, pero todo se maneja desde Excel, hoy veremos Como Eliminar Registros de Clientes del Punto de Venta Excel.

Se eficiente manejando Excel 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.

Suscribe a nuestro canal de You Tube, mira el playlist con  vídeos relacionados donde podrás ver la macro en acción con una explicación en forma visual que ayudará a entender el ejemplo en forma más fácil.

Punto de Venta – Eliminar Registros de Access desde Excel

Antes que nada se debe descargar el ejemplo que se puede hacer desde el final del post, al abrir el archivo de Excel se debe iniciar el formulario Punto de Venta, lo cual se puede hacer desde la pestaña personalizada y que se creo en post anteriores.

Para ver los post anteriores se puede hacer click en el cluster Aplicativos de Excel o mejor buscar el el Playlist Punto de Venta en Excel en el canal de you tube, donde encontrará un link a cada post con su vídeo tutorial que refuerza lo que se explica.

Una vez mostrado el formulario, se debe buscar algún cliente cuyos registros deseamos eliminar, esto se hace desde el botón de comando de búsquedas, buscado el dato se puede presionar el botón eliminar que tiene un ícono  rojo.

No se podrán eliminar clientes cuyos registros ya haya sido utilizado, es decir, si tenemos registrado al cliente «Tomy Lee» a este cliente le hemos emitido una factura, presupuesto, recibo o lo que fuere que lo asocie al cliente, no se podrá eliminar, caso contrario generaría inconsistencias, habría registros que no pertenecen a ningún cliente lo cual es inadmisible en el Punto de Venta en Excel.


Quizás también interese leer:

Como Enviar Whatsapp con Excel NUEVA Version
Como Buscar Mientras se Escribe y Cargar Listbox con SQL
Como Insertar Formula en Excel con Macro

Explicación del Código Inserto en el Botón de Comando Eliminar Registro – Punto de Venta en Excel

Para eliminar un registro se debe presionar el botón DELETE o Eliminar Registro de Excel que se encuentra en el formulario, previamente se debe haber buscado el Cliente o registro a eliminar, en caso que no tenga registros asociados se podrá eliminar, para ello procede a conectarse con la base de datos de Access con ADODB.Connection, recordar que los datos se guardan en Access y desde Excel solamente se gestiona los datos.

Se hace con el siguiente código:

cn.Open «Provider=Microsoft.ACE.OLEDB.12.0; » & «data source=» & ThisWorkbook.Path & «\1000 DBTSPuntoVenta.accdb;»

Luego se establece el dato a buscar, que es el número de cliente que se encuentra en el Textbox 2, procediendo luego a crear la SQL o String de consulta para buscar en el campo «Registro Asociado», si tiene un registro asociado, es decir a el cliente se le emitió factura, presupuesto, recibo o cualquier otro comprobante que involucre al cliente, solo se puede eliminar si no tiene registros asociados, por ello si el campo mencionado es igual a 1 significa que tiene registro asociado y no se puede eliminar, si es 0 no tiene registros asociados y se puede eliminar, luego se evalúa si el valor encontrado es en el Campo «Registro Asociado» del cliente es 0 o 1, se hace con el código siguiente:


busco = UserForm1.TextBox2

sql = «SELECT Registro_Asociado FROM DB_Clientes WHERE N_Cliente = » & busco & «»
Set rs = cn.Execute(sql)
regisasoc = rs(0)
‘regis = rs(«Registro_Asociado»).Value
Set rs = Nothing

If regisasoc = 1 Then MsgBox («El cliente NO se puede eliminar, porque tiene registros asociados»), vbCritical, «AVISO»: GoTo salir:

Si no tiene registros asociados, se puede eliminar a través de una sentencia SQL usando DELETE, todos los registros del cliente seleccionado, se hace con el siguiente código:

If regiasoc = 0 Then
sql = «DELETE * FROM DB_Clientes WHERE N_Cliente = » & busco & «»
Set rs = cn.Execute(sql)
End If
MsgBox («El cliente se eliminó con éxito»), vbInformation, «AVISO»

Por último se cierra la conexión y liberan las variables.

Set rs = Nothing
cn.Close
Set cn = Nothing

Descarga del código del aplicativo Punto de Venta en Excel Access

Finalizando el post se encuentra el link de descarga el ejemplo que contiene el código explicado, más los avances que tuvo en Sistema de Punto de Venta con Excel – VBA – Access, en caso que puedas recuerda aportar para sostener la web.

Código que se ingresa en Botón de Comando o Commandbutton Punto de Venta Excel – Access

El siguiente código se encuentra insertado en el Punto de Venta en Excel en un botón de comando, donde al presionar se elimina el registro.

Private Sub CommandButton7_Click()
On Error Resume Next
Dim cn As ADODB.Connection, rs As ADODB.Recordset, sql As String, maxCliente As Long

If UserForm1.TextBox1.Visible = False Or (UserForm1.TextBox1.Visible = True And UserForm1.TextBox3 = Empty) Then Exit Sub

resp = MsgBox(«Seguro desea ELIMINAR el cliente seleccionado?», vbCritical + vbOKCancel, «AVISO»)
If resp = 2 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;»
busco = UserForm1.TextBox2

sql = «SELECT Registro_Asociado FROM DB_Clientes WHERE N_Cliente = » & busco & «»
Set rs = cn.Execute(sql)
regisasoc = rs(0)
‘regis = rs(«Registro_Asociado»).Value
Set rs = Nothing

If regisasoc = 1 Then MsgBox («El cliente NO se puede eliminar, porque tiene registros asociados»), vbCritical, «AVISO»: GoTo salir:

If regiasoc = 0 Then
sql = «DELETE * FROM DB_Clientes WHERE N_Cliente = » & busco & «»
Set rs = cn.Execute(sql)
End If
MsgBox («El cliente se eliminó con éxito»), vbInformation, «AVISO»

salir:
Set rs = Nothing
cn.Close
Set cn = Nothing

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

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