Macros en Access de Microsoft

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. 

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

Entradas más populares de este blog

Ejemplo Macro en Word

Macro de Excel para abrir archivo csv

Graficar funciones en Python con dataframes