Calcular el valor en moneda local de un producto de moneda extranjera en un formulario de access

En un formulario de access quiero calcular el valor de un producto en moneda extranjera a moneda local, pero quiero que el tipo de cambio no se me guarde históricamente, sino que solo use el tipo de cambio del diaEjm: un tv que me cuesta 100 USD al multiplicar por el tipo de cambio me de la cantidad en COP por ejemplo, pero al hacer ese mismo calculo al día siguiente y el tipo de cambio varíe al momento de introducir el nuevo tipo de cambio sustituya al del día anterior

3 Respuestas

Respuesta
2

Rubén con todo respeto como le han respondido y valorado no es la forma correcta de acuerdo con su pregunta, para que guardar la tasa de cambio según su pregunta. Observe este formulario

Al cargar el formulario automáticamente me toma de la WEB la tasa de cambio del dólar en relación al COP. Si quisiera guardar estos datos es fácil adicionarlos en una tabla.

Eventos del formulario.

Control "Tasa de cambio"

Se toma de la web utilizando una función Json que se obtiene de https://github.com/VBA-tools/VBA-JSON/blob/master/JsonConverter.bas 

Haciendo uso de esta función obtengo la tasa de cambio con la siguiente función 

Public Function ObtenerTasaDeCambio() As Double
    Dim xmlhttp As Object
    Dim url As String
    Dim json As Object
    Dim jsonText As String
    Set xmlhttp = CreateObject("MSXML2.XMLHTTP")
    url = "https://api.exchangerate-api.com/v4/latest/USD"
    xmlhttp.Open "GET", url, False
    xmlhttp.Send
    jsonText = xmlhttp.responseText
    Set json = JsonConverter.ParseJson(jsonText)
    ObtenerTasaDeCambio = json("rates")("COP")
End Function

En este caso en "Origen del control" se asigna =ObtenerTasaDeCambio()

Código control "Monto USD"

Se programa el evento "Después de actualizar" para con base en el valor de la tasa y el monto se registre en el campo "Monto COP" el equivalente en COP.

Una recomendación la función está dando error, pero la puede suministrar con el ejemplo a mi correo [email protected] 

Respuesta
2

Puedes hacerlo de muchas formas. Yo sería partidario de guardar el tipo de cambio en la misma tabla, por si el día de mañana tienes que decirle a alguien el día tal compré una televisión, que me costo X dólares y como el tipo de cambio estaba en Y, me costó z Cod. Pero

Si tengo el formulario, lo pongo como continuo que se ve mejor

El cuadro de texto de arriba se llama TipoCambio y los de abajo igual que las etiquetas.

Puedes ver que el cursor aun está en el control PrecioDolar. Cuando pulso Enter

Al día siguiente, cuando abras el formulario te aparecerá

A día de hoy 05/03/2023 1 Dolar equivale a y tendrías que poner en el cuadro de texto a cuantos Cod equivale un dólar.

En el formulario, en el evento al abrir le tengo puesto

Private Sub Form_Open(Cancel As Integer)
Etiqueta11.Caption = "A día de hoy " & Date & " 1 Dolar equivale a:"
End Sub

Y en el evento Después de actualizar del cuadro de texto PrecioDolar

Private Sub PrecioDolar_AfterUpdate()
PrecioCop = PrecioDolar * TipoCambio
End Sub
Respuesta
1

Hay en la Web rutinas para consultar las paginas oficiales con las cotizaciones de las monedas en tiempo real.

Primero intentaría obtener las cotizaciones de forma 'automática' (por ejemplo al abrir la aplicación) y obtenidas estas: actualizar los valores referentes.

Todo ello como alternativa a actualizarlas de forma manual (al tiempo que se leen en la prensa o WWW otras noticias sobre actualidad o tendencias) .

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas