Utilizamos Cookies de terceros para generar estadísticas de audiencia y mostrar publicidad personalizada analizando tu navegación. Si sigues navegando estarás aceptando su uso. Más información X
PortadaForo AyudaTutoriales
InicioForosForo Office

Números a texto en access

HENRY_DAVID
2007-07-05 20:47 - Respuestas: 3 - Tema nº: 2456048


Características: Windows XP Profesional, 256,1.8,40.

Hola amigos quisiera saber si puedo convertir los números que tengo en mi campo Montos en texto, es decir si en el campo Montos tengo 10 me diga en otro campo: diez. Espero que me haygan entendido, Gracias.

Posibles soluciones:
Números a texto en accessNúmeros a texto en access
Convertir numeros en texto en accessConvertir numeros en texto en access
Convertir numeros a texto en excelConvertir numeros a texto en excel
Números primos en accessNúmeros primos en access
Convertir numeros a letras en un informe de accessConvertir numeros a letras en un informe de access
swissman

Re: Números a texto en access - 2007-07-05 20:49 - Respuesta 2

hasta que numero quieres que te haga esto?
HENRY_DAVID

Re: Números a texto en access - 2007-07-06 18:02 - Respuesta 3

hasta el millón, claro si puede, Gracias
ebolo

Re: Números a texto en access - 2007-07-07 00:05 - Respuesta 4

Hola Henry, te dejo unas funciones que hacen lo que quieres. Estas no son mías, las baje de internet pero no me acuerdo de dónde.


'Convierte una triada en letras. Parámetros:
' vsNumeros : Triada a convertir
' vbMasculino : Indica si se debe usar el masculino o el femenino
'
Private Function fsTriada( _
ByVal vsNumeros As String, _
ByVal vbMasculino As Boolean _
) As String
On Local Error GoTo Err_fsTriada
Dim iLongitud As Integer 'Longitud de la triada pasada
Dim sUnidades As String
Dim sDecenas As String
Dim sCentenas As String
Dim sY As String 'Guarda el 'y ' para unir la unidades en caso de
'que sea necesario

If vsNumeros = "100" Then 'Se pone directamente para evitar que en la rutina
fsTriada = " cien" 'ponga 'ciento '
Exit Function
End If
'Se guarda en las variables sUnidades, sDecenas y sCentenas el numero que le
'corresponde a cada uno para hacer despues la conversion.
sUnidades = Right$(vsNumeros, 1)
iLongitud = Len(vsNumeros)
If iLongitud > 1 Then
sDecenas = Mid$(vsNumeros, iLongitud - 1, 1)
If sDecenas = "0" Then
sDecenas = ""
End If
If iLongitud > 2 Then
sCentenas = Left$(vsNumeros, 1)
If sCentenas = "0" Then
sCentenas = ""
End If
Else
sCentenas = ""
End If
Else
sDecenas = ""
End If

'
'Primero se trabaja con la parte de Centenas
'
Select Case sCentenas
Case "0"
sCentenas = ""
Case "1"
sCentenas = " ciento"
Case "2"
sCentenas = " doscient" & IIf(vbMasculino, "os", "as")
Case "3"
sCentenas = " trescient" & IIf(vbMasculino, "os", "as")
Case "4"
sCentenas = " cuatrocient" & IIf(vbMasculino, "os", "as")
Case "5"
sCentenas = " quinient" & IIf(vbMasculino, "os", "as")
Case "6"
sCentenas = " seiscient" & IIf(vbMasculino, "os", "as")
Case "7"
sCentenas = " setecient" & IIf(vbMasculino, "os", "as")
Case "8"
sCentenas = " ochocient" & IIf(vbMasculino, "os", "as")
Case "9"
sCentenas = " novecient" & IIf(vbMasculino, "os", "as")
End Select

'
'A continuacion con las decenas y las unidades. Se trabaja con los dos
'a la vez por los casos especiales (los numeros menores a 30)
'
Select Case sDecenas
Case "1"
Select Case sUnidades
Case "0"
sDecenas = " diez"
Case "1"
sDecenas = " once"
Case "2"
sDecenas = " doce"
Case "3"
sDecenas = " trece"
Case "4"
sDecenas = " catorce"
Case "5"
sDecenas = " quince"
Case "6"
sDecenas = " dieciseis"
Case "7"
sDecenas = " diecisiete"
Case "8"
sDecenas = " dieciocho"
Case "9"
sDecenas = " diecinueve"
End Select
sUnidades = ""
Case "2"
sDecenas = " veinti"
Select Case sUnidades
Case "0"
sDecenas = " veinte"
sUnidades = ""
Case "1"
sUnidades = "un" & IIf(vbMasculino, " ", "a ")
Case "2"
sUnidades = "dós"
Case "3"
sUnidades = "tres"
Case "4"
sUnidades = "cuatro"
Case "5"
sUnidades = "cinco"
Case "6"
sUnidades = "seis"
Case "7"
sUnidades = "siete"
Case "8"
sUnidades = "ocho"
Case "9"
sUnidades = "nueve"
End Select
Case Else 'Superior a 29 o inferior a 10
sY = " y"
Select Case sDecenas
Case "0", ""
sDecenas = ""
sY = ""
Case "3"
sDecenas = " treinta"
Case "4"
sDecenas = " cuarenta"
Case "5"
sDecenas = " cincuenta"
Case "6"
sDecenas = " sesenta"
Case "7"
sDecenas = " setenta"
Case "8"
sDecenas = " ochenta"
Case "9"
sDecenas = " noventa"
End Select
Select Case sUnidades
Case "0"
sUnidades = ""
Case "1"
sUnidades = sY & " un " & IIf(vbMasculino, "", "a")
Case "2"
sUnidades = sY & " dos"
Case "3"
sUnidades = sY & " tres"
Case "4"
sUnidades = sY & " cuatro"
Case "5"
sUnidades = sY & " cinco"
Case "6"
sUnidades = sY & " seis"
Case "7"
sUnidades = sY & " siete"
Case "8"
sUnidades = sY & " ocho"
Case "9"
sUnidades = sY & " nueve"
End Select
End Select
fsTriada = sCentenas & sDecenas & sUnidades
Exit Function

Err_fsTriada:
MsgBox "ERROR " & CStr(Err.Number) & " - " & Err.Des-c-r-i-p-tion
fsTriada = " "
Exit Function
End Function


'
'Realiza la conversion de Cifras a Letras. Parametros:
' vlCantidad : Cantidad a convertir
'
Public Function fsConvertirALetras( _
ByVal vlCantidad As Long _
) As String
On Local Error GoTo Err_fsConvertirALetras
Dim sCantidad As String
Dim iLongitud As Integer 'Longitud de la Cantidad pasada
Dim sCientos As String
Dim sMiles As String
Dim sMillones As String

If vlCantidad > 999999999 Then
MsgBox "La cifra ha de ser inferior a 1.000.000.000"
fsConvertirALetras = ""
Exit Function
End If
If vlCantidad = 0 Then
fsConvertirALetras = "cero"
Exit Function
End If
sCantidad = Trim$(Str$(vlCantidad))
iLongitud = Len(sCantidad)

sMillones = ""
sMiles = ""
sCientos = ""
If iLongitud > 6 Then 'Hay millones
sMillones = fsTriada(Left$(sCantidad, iLongitud - 6), True)
sMillones = sMillones & IIf(Trim$(sMillones) = "un", " millón", "millones")
sCantidad = Trim$(Right$(sCantidad, 6))
iLongitud = Len(sCantidad)
End If
If iLongitud > 3 Then 'Hay miles
sMiles = fsTriada(Left$(sCantidad, iLongitud - 3), False)
If sMiles " " Then
sMiles = IIf(Left$(Trim$(sMiles), 2) = "un ", " ", sMiles) & " mil "
End If
sCantidad = Trim$(Right$(sCantidad, 3))
iLongitud = Len(sCantidad)
End If
sCientos = fsTriada(sCantidad, False)
fsConvertirALetras = Trim$(sMillones & sMiles & sCientos)
Exit Function

Err_fsConvertirALetras:
MsgBox "ERROR " & CStr(Err.Number) & " - " & Err.Des-c-r-i-p-tion
fsConvertirALetras = " "
Exit Function
End Function


Ponlas en un módulo, y luego desde un formulario la llamas de esta forma:


Private Sub Texto0_AfterUpdate()
Me.Texto2 = fsConvertirALetras(Me.Texto0)
End Sub

esto te pone en letras en el cuadro de texto2, los números que hayas puesto en el Texto0.

La cifra ha de ser inferior a 1.000.000.000 "
Saludos.
Página:1

Respuestas relacionadas:

Cuadros de texto accessCuadros de texto accessForo
Cuadros de texto en formulario accessCuadros de texto en formulario accessForo
Expandir filas en access segÚn textoExpandir filas en access segÚn textoForo
Formula conversion access de numero a textoFormula conversion access de numero a textoForo
Access cuanto cuadros de texto en un formularioAccess cuanto cuadros de texto en un formularioForo
Quitar texto de un texto digitalizadoQuitar texto de un texto digitalizadoForo
NumerosNumerosForo
Numeros romanosNumeros romanosForo
Desbloqueo de numerosDesbloqueo de numerosForo
Numeros ocultosNumeros ocultosForo
InicioSecciones
^ SubirAviso legal
Política Privacidad
Configurarequipos22 Noviembre 2024