Login | registrarse | recordar contraseña
146.943
1.677
272.776
18
PORTADAForos >> Foro Programación >> no puedo convertir num texto acces


no puedo convertir num a texto en acces




Spenchy




1 posts
Tema: no puedo convertir num a texto en acces - Fecha: 2008-03-06 21:35
Visto: 252 veces - Respuestas: 1 - Tema nº: 2505482 | Estado: Mensaje cerrado.




Características: Windows XP Profesional, p4 mb 512 dd 80.

lo hago creando un modulo y despues lo llamo desde un formulario , y cuando quiero trabajarlo me aparece este error: se esperaba una variable o un procedimiento no un modulo que puedo hacer:
ejemplo:
'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

eso lo pongo en un modulo y despues lo llamo desde un formulario asi:
Private Sub Texto0_AfterUpdate()
Me.Texto2 = fsConvertirALetras(Me.Texto0)
End Sub
ayuda por favor...






DJJaaM




5 posts
Tema: no puedo convertir num a texto en acces - Fecha: 2008-03-26 06:26



Amigo, intenta con esto:

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

Por defecto, visual devuelve un valor STRING desde un textbox, por lo cual si quieres enviar un valor NUMERICO a una funcion, conviertelo previamente con VAL(STR), lo que te devolvera un valor NUMERICO desde el textbox....

Saludos... :-D




Página: [1]







 



LOGIN / REGISTRARSE:
Usuario:
Clave:
Regístrate - Recordar Clave


USUARIOS CONECTADOS:
andiava bet0 cesaria claulesly [+]

SOBRE EL FORO:
Ver Normas del Foro

Autorización de Link




Preguntas sin respuesta


Buzón de ideas

Añadir a favoritos



Bajar Antivirus gratisCual es mi IPTest velocidadTrucosADSL Lo más Visto
OverclockingTienda WirelessDiccionarioWireless Mapa Segunda manoTiendas de Informática
Últimos VirusLibros InformáticaHosting y alojamientoÚltimos Post foro SeguridadMapa Foro

Aviso Legal Politica de Privacidad Referencias en Prensa Colaborar Contactar Publicidad
PORTADA ¿Que es ConfigurarEquipos? Quienes somos Logo


Buscar:

en

Copyright(c) 2002-2009 ConfigurarEquipos.com® | 08-01-2009 04:06:05 Informática | Permitido el uso Parcial citando Fuentes y Autores | Mapa Web