¿100 CFDI en 40 segundos? Valida XML del SAT con Excel

Imagen
🤯 ¿100 CFDI en 40 segundos? Automatiza la validación de XML con Excel ¿Cuánto tiempo dedicas a revisar archivos XML de facturas electrónicas? Si trabajas con contabilidad, cuentas por pagar, cuentas por cobrar o administración, sabes que validar muchos comprobantes fiscales puede convertirse en una tarea repetitiva. 🚀 ¿Y si pudieras procesar 100 archivos XML en aproximadamente 40 segundos? En esta demostración utilizo una macro de Excel diseñada para automatizar la validación masiva de CFDI y consultar su estado ante el Servicio de Administración Tributaria (SAT). 📊 ¿Qué hace esta macro de Excel? La herramienta permite seleccionar una carpeta con archivos XML y procesar múltiples comprobantes sin tener que revisarlos individualmente. Procesa varios archivos XML de CFDI. Extrae información de los comprobantes fiscales. Consulta el estado de los CFDI ante el servicio del SAT....

Macros en Access: Automatización Fácil en Microsoft Access

Microsoft Access es un motor de base de datos que permite crear aplicaciones muy completas, es un software creado en los años 90, su lanzamiento fue en 1992 y aun continua presente en la versión 365. 
Macross en access

He visto a lo largo de mi vida profesional varias aplicaciones en Pymes principalmente por ejemplo:
  • Manejo de inventario
  • Manejo contable
  • TPV que quiere decir terminal punto de venta por ejemplo puede ser el software de una ferretería, una estética, una veterinaria... etc.
  • Una base de datos de control de alumnos
Otra ventaja que tienes es que puede utilizarse en computadoras de uso personal, no tan robustas como un equipo servidor. 
Como pueden ver Access es un ambiente muy versátil que permite crear aplicaciones en poco tiempo y pocos recursos. Tiene algunos  inconvenientes desde mi punto de vista que son:
  • No es WEB es decir solo funciona en computadoras donde este instalado Access o en la red con acceso a la aplicación.
  • Se requiere tener licencia de Access de Microsoft para poder desarrollar y ejecutar la aplicación.
  • No es funcional para almacenar mucha información. 
En Access al ser del Microsoft puede también utilizarse Macros.
En esta publicación les quiero enseñar un ejemplo de una aplicación que realicé para manejo de inventarios utilizando algunos Macros para hacer validaciones y obtener algunos datos de la base de datos con querys de SQL. 
Macros en Access



Les comparto un vídeo donde pueden ver un ejemplo de una macro que utilice en un proyecto de manejo de inventario por rollos en un almacén.




El código de una Macro en Access

Este ejemplo es sencillo pero interesante porque:
  • En la instruccion de Insert de SQL hay datos tipo fecha que para que los acepte el comando debes colocar así Format(Fecha_transaccion, "mm/dd/yy") 
  • Hay datos tipo numero que para que sea un valor válido debes colocar así  CStr(Cantidad) para hacer la conversión de numero a cadena.
  • El campo de cantidad lo tomo de un campo en el formulario que no esta en un campo de alguna tabla de la base de datos
  • En caso de que la transacción no se deba ejecutar existe el Undo que reversa la transacción Form_Rollos_salida_planta_v2.Undo


Option Compare Database

Private Sub Command21_Click()
If Text15.Value <= Cantidad_kilos Then
Cantidad_kilos = Cantidad_kilos.Value - Text15.Value()
End If
If Text17.Value <= Cantidad_metros Then
Cantidad_metros = Cantidad_metros.Value - Text17.Value()
End If

'Text17.Enabled = False
'Text15.Enabled = False

If Status_id = "Bloqueado" Then
    MsgBox ("No se puede realizar movimientos con status Bloqueado")
    Form_Rollos_salida_planta_v2.Undo
 Else
      Dim sql_cadena As String
      Dim Cantidad   As String
      Cantidad = Text15.Value
     sql_cadena = "INSERT INTO Transacciones_inventario (ID_producto, ID_usuario, ID_tipo_transaccion, " & _
                 "ID_producto_proveedor, Id_proveedor, Id_interno_pallet, Comentarios, " & _
                 "Cantidad, Fecha_transaccion, Fecha_caducidad ) " & _
                 "VALUES (' " + ID_producto + "', '" & _
                              ID_usuario + "', '" & _
                              ID_tipo_transaccion + "', '" & _
                              ID_producto_proveedor + "', '" & _
                              ID_proveedor + "', '" & _
                              Id_interno_pallet + "', '" & _
                              Comentarios + "', " & _
                              CStr(Cantidad) + ", " & _
                              Format(Fecha_transaccion, "mm/dd/yy") + ", " & _
                              Format(Fecha_caducidad, "mm/dd/yy") + " )"
                 
    'MsgBox sql_cadena
  DoCmd.RunSQL sql_cadena
 MsgBox ("Datos guardados")
 End If
End Sub

Espero esta pagina les sea de utilidad, nos sigan, nos compartan en este blog o en la página de Facebook https://www.facebook.com/Programacionparatodosmsg/

Comentarios

🚀 Mantener este blog funcionando requiere tiempo y café. ¡Puedes contribuir con uno aquí!

Entradas más populares de este blog

Guía Práctica: Ejemplo Completo de ASPX para Desarrolladores Web

👉 Cómo obtener el tipo de cambio en Excel con API de Banxico (paso a paso)

Cómo crear un Predictor de Partidos de Fútbol con JavaScript y API-Football