El Guru Programador
Usuario DESCONOCIDO | Registrate Gratis | Usuarios Registrados
Foro de Visual Basic/VB.NET
Foros del Guru > Visual Basic/VB.NET
Usuario Problemas con decimales
solete78
1 Mensaje(s)
Enviado - 29/9/2004
 
Tengo un problema con los decimales. Os cuento desde el principio para que lo entendais.
Desarrollo una aplicación en VB6 que tiene que trabajar con decimales en facturas. Utilizo para guardar los datos Access y RDO. Las conexiones a la base de datos son por ODBC.
En el ordenador que tengo instalado VB6 no me da ningún problema al calcular y almacenar los numeros con decimales. Compilo el programa, hago el archivo de autoinstalación con todos los ocx y dll necesarios.
Lo instalo en un ordenador limpio sin VB6. Y que me ocurre cuando intento guardar una factura? Pues que todos los cálculos los hace bien con decimales pero en la base de datos no guarda la "," de los decimales. Por ejemplo, si el total de factura es 50,76 guarda en la base de datos 5076.
No le encuentro explicación. Probando he conseguido averiguar que si instalo solamente el "Entorno de datos" que viene en el CD de instalación del VB6 se soluciona el problema.
Me gustaría que alguien me diera una solución para poder distribuir los ficheros correctos con mi instalación y no tener que recurrir al CD de instalacion de VB6.
Gracias a todos. Espero vuestra respuesta lo antes posible.
 
fmarredo
486 Mensaje(s)
Enviado - 29/9/2004
 
El problema está en que las instrucciones SQL solamente aceptan el punto como separador de decimales, y no aceptan separador de miles, ya que son sólo para visualización, no firman parte del número. Si la configuración regional del equipo tiene la coma como sep decimal entonces tenés que reemplazarla por el punto, además de quitarle los sep de miles.
Lo que podés hacer es usar una función que haga esta tarea. Por ej:

Public Function FmtNroSQL(ByVal Nro As Variant) As String
Dim strNro as String

If IsNumeric(Nro) Then
strNro = CStr(CDbl(Nro))
FmtNroSQL = Replace(strNro, ",", ".")
Else
strNro = "0"
End If

FmtNroSQL = strNro

End Function

Saludos
 
Desconocido
Enviado - 29/9/2004
 
Hola,
Podrias intentar cambiar la configuracion regional del PC; cambiando el signo decimal "," por ".". Es una idea no!!
Saludos
Jaop
 
 

 

Contactos myStudio Network