Alternativa en access a múltiplo. Superior de excel

Hasta donde yo sé no hay una función alternativa múltiplo. Superior de excel en access, por favor necesito algún código para crear la función para access.

1 respuesta

Respuesta
1
No tenía ni idea de la existencia de esa función de Excel, por lo que acabo de aprender una cosa más. Gracias! ;)
Bueno. He estado mirando qué hace esa función y te paso un código que acabo de hacer. Debes tener en cuenta que este código:
- Sólo te funcionará con números enteros (no decimales)
- Lo he estado testeando con los resultados que me da el Excel y no he tenido ningún error ni diferencia en los mismos, por lo que entiendo que funciona correctamente. De todas maneras no estaría de más que tú también testearas las "primeras experiencias", por si las moscas.
Entiendo que si se capta la mecánica del código no creo que sea muy difícil operar con decimales, pero eso será para otra ocasión.
He llamado Origen al primer número de la función de Excel, y Significativa al segundo número. Traducido vendría a ser, en Excel, =multiplo. superior(origen;significativa)
Te paso la función:
---
Public Function multsup(ByVal intOrigen As Integer, intSignificativa As Integer) As Integer
    Dim intSignificativaTmp As Integer
    Dim resto As Double
    Dim blnEncontrado As Boolean
    blnEncontrado = False
    resto = intOrigen Mod intSignificativa
        'Si la división entre la origen y la significativa
'es exacta el resultado coincide con la origen, y
'además son múltiplos
    If resto = 0 Then
        blnEncontrado = True
    End If
        'Asignamos una unidad más a la significativa a través
        'de una significativaTmp
    intSignificativaTmp = intSignificativa + 1
        'Ejecutamos el bucle Do While... Loop
    Do While blnEncontrado = False
            'Cuando la significativaTmp sea mayor que el origen...
        If intSignificativaTmp > intOrigen Then
                        'Comprobación de si es múltiplo o no
            resto = intSignificativaTmp Mod intSignificativa
                If resto = 0 Then
                    blnEncontrado = True
                    Exit Do
                        'Si no lo es añade una unidad y sigue el proceso
                Else
                    intSignificativaTmp = intSignificativaTmp + 1
                End If
        Else
            'La significativa sigue siendo más pequeña que el origen.
            'Le añadimos una unidad
            intSignificativaTmp = intSignificativaTmp + 1
        End If
    Loop
        'Asignamos el valor encontrado a la función
    multsup = intSignificativaTmp
End Function
---
Me acabo de dar cuenta de que en el código que te he pasado hay una tontería como un piano. Se puede simplificar bastante. Me ha pasado eso de "los árboles no te dejan ver el bosque".
No cierres la consulta y en breve te paso el código simplificado. Sorry!
Creo que esta vez sí...
---
Public Function multsup(ByVal intOrigen As Integer, intSignificativa As Integer) As Integer
    Dim intSignificativaTmp As Integer
    Dim resto As Double
    Dim blnEncontrado As Boolean
    blnEncontrado = False
    intSignificativaTmp = intOrigen
    resto = intOrigen Mod intSignificativa
        'Si la división entre la origen y la significativa
'es exacta el resultado coincide con la origen, y
'además son múltiplos
    If resto = 0 Then
        blnEncontrado = True
    End If
        'Ejecutamos el bucle Do While... Loop
    Do While blnEncontrado = False
            'Comprobación de si es múltiplo o no
resto = intSignificativaTmp Mod intSignificativa
            If resto = 0 Then
                blnEncontrado = True
                Exit Do
            Else
                intSignificativaTmp = intSignificativaTmp + 1
            End If
    Loop
        'Asignamos el valor encontrado a la función
    multsup = intSignificativaTmp
End Function
---
;)
Buenas tardes y gracias por tu rapidez, más tarde hago mis pruebas y te informo.
Saludos
¿Te ha ido bien la cosa?
Bueno, ya me comentarás.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas