How to Get Exchange Rates in Excel Automatically Using a Free API (VBA Step-by-Step)

Imagen
How to Get Exchange Rates in Excel Automatically Using a Free API (VBA Step-by-Step) Automate exchange rates in Excel in minutes. In this guide, you’ll learn how to retrieve currency data from multiple countries (including African currencies) using a free API and VBA. This example is perfect if you work with financial reports, currency analysis, or need updated data without manual input. 🚀 What will you learn? How to get real-time exchange rates in Excel How to use a free API (no API key required) How to automate Excel with VBA How to retrieve multiple currencies (USD, MXN, EUR, ZAR, NGN, etc.) 🌍 Free Exchange Rate API For this example, we will use the following free API: 👉 https://open.er-api.com/v6/latest/USD Advantages: No API key required 150+ currencies available Includes African currencies Daily updated data (not historical) 💻 VBA Macro to Get Exchange Rates in Excel Copy and paste this code into a VBA module: Sub GetExchangeRates(...

Progress 4gl función ACCUM, SQL función SUM

Hola amigos programadores, esta semana les quiero platicar acerca de una función en lenguaje Progress 4gl que es ACCUM, esta función es un similar a SUM de SQL. Lo que hacen ambas funciones es consolidar la suma de un campo que cumpla ciertas características.


Por ejemplo si quieren saber el total de Venta facturada por un cliente, la sentencia en SQL es:




SELECT SUM(ih_invoicetotal) , ih_bill                                           
 FROM ih_hist                                                                   
 WHERE ih_domain = 'dominio'                                                    
 AND YEAR(ih_inv_date) =  2019                                                  
 GROUP BY  ih_bill   
 

El mismo ejemplo pero con sentencia de Progress 4gl es:





FOR EACH ih_hist WHERE ih_domain = 'dominio'
                               AND YEAR(ih_inv_date) = 2019      NO-LOCK                                                   BREAK BY ih_bill:                                                           
ACCUMULATE ih_invoicetotal (TOTAL BY ih_bill).                                  
IF LAST-OF(ih_hist.ih_bill) THEN                                          
   DISPLAY  ACCUM TOTAL BY ih_bil ih_invoicetotal ih_bill.                                                            
END.                                               

Como se ve en las imágenes el resultado es el mismo. Las funciones que utilizamos de Progress fueron:

  • ACCUMULATE : Esta opción nos permite ir sumando o accumulando el valor de una variable de nuestra tabla

https://documentation.progress.com/output/ua/OpenEdge_latest/index.html#page/dvref/accum-function.html                                   

  • TOTAL BY:  Nos indica porque campo vamos a consolidar o agrupar el total, ademas del total, también puede utilizarse  AVERAGE, COUNT, MAXIMUM,MINIMUM,
  • ACCUM TOTAL BY: Para poder mostrar el total en pantalla utilizamos esta sentencia
  • LAST-OF: Indicamos al query que cuanto termine de recorrer todos los registros que coincidan con un tipo se detenga, también existe la opción de FIRST-OF 


  • BREAK BY: Le decimos al query que vaya buscando y agrupando por un campo en la tabla de  nuestra base de datos


Como anecdota cuando yo comencé aprender Progress, buscaba como hacer las consultas en SQL pero en Progress, esto para entender la lógica primero antes de programarlo, ahora pienso la lógica independientemente del lenguaje de programación que es como debería de ser cuando programamos primero pensar el algoritmo y luego traducirlo a un lenguaje de programación.

No olvide compartirnos y seguirnos en este blog o en Facebook.

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)

Macro en Word para automatizar documentos: genera diplomas en segundos (con código VBA)