Como redondear a miles vba access

Quisiera saber como puedo redondear a miles en access una cifra

Ej: si tengo 125.400 que se redondee a 125.000 325.204 a 325.000

2 respuestas

Respuesta

No dices si siempre serán 6 cifras o si puedes ser más o menos. Tampoco dices si, por ejemplo, el número fuera 125700 que te lo redondee a 126000. Sería conveniente que concretaras este último punto. Voy a suponer que no.

Si tengo un formulario, con dos cuadros de texto, Texto5 y Texto7. Si en texto 5 escribo una cantidad

Cuando pulso Enter

Si lo que hubiera escrito fuera

Al pulsar Enter( pero puede ser en cualquier otro evento)

En este caso en particular, en el evento Después de actualizar del cuadro de texto Texto5 le tengo puesto

Texto7 = (Int([Texto5] / 1000)) * 1000

En caso de que las centenas superen los 500, sería otro código.

Respuesta

¿Es una cifra entera 125.400 o es una cifra con decimales?

Asumo que la cifra es un número entero, pruebe con esta función, sirve para determinar el valor de acuerdo con las unidades, por ejemplo, 10, 100, 1000 etc., sin o con aproximación:

Public Function redondea(lngCifra As Long, ndecimales As Byte, Optional boolaprox As Boolean) As Long
  Dim dbaux1 As Double
  Dim dbpartDec As Double
  Dim dbdecimal As Double
  'Parámetros
  'lngCifra ----> Cifra a redondear
  'ndecimales ---> número de decimales
  'boolaprox ----> Opcional True, redondear aproximando, False, no aproximar
  'Ejemplo:
  ' Redondea(125551,2, false) --- retorna 125500
  ' Redondea(125551,2, true) --- retorna 125600
  ' Redondea(125501,3, false) --- retorna 125000
  ' Redondea(125501,3, true) --- retorna 126000
  ' Redondea(125551,4, false)--- retorna 120000
  ' Redondea(125551,4, true) --- retorna 130000
  If ndecimales > Len(lngCifra) Then
     redondea = 0
     Exit Function
  End If
  Select Case ndecimales
     Case 1
       dbdecimal = 10
     Case 2
       dbdecimal = 100
     Case 3
       dbdecimal = 1000
     Case 4
       dbdecimal = 10000
  End Select
  dbaux1 = Int(lngCifra / dbdecimal)
  If boolaprox Then
      dbpartDec = lngCifra / dbdecimal - dbaux1
    If dbpartDec > 0.5 Then
      redondea = (dbaux1 + 1) * dbdecimal
    Else
      redondea = dbaux1 * dbdecimal
    End If
  Else
    redondea = dbaux1 * dbdecimal
  End If
End Function

Por ejemplo:

Redondea(125400,3, False) retorna 125000

Redondea(125501,3, True) retorna 126000

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas