No graba los decimales en la tabla access

Colapsar
X
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar todos
nuevos mensajes

  • No graba los decimales en la tabla access

    Hola a todos:
    paso a plantear el problema.
    Tengo una tabla de una base de datos access con un campo NUMERIC: Tipo DECIMAL, Formato ESTANDAR. Longitud 18, escala 2, Si introduzco los datos desde access directamente, no hay problema: si entro 2,35 me graba y muestra 2,35, pero cuando los entro desde mi aplicación vb 6, coma, es decir, si entro 2,35 no me reconoce la decimales y coloca 2,00
    però no encuentro la solución


    Código:
    Sql = "INSERT INTO CABECERA_PEDIDOS(VALOR)VALUES("
    Sql = Sql & " '" & val(TeValor) & " ”
    Base.Execute (Sql), adCmdText

    Gracias a todos




  • #2
    El problema es la configuración regional y la función Val, Val ignora la configuración y termina la conversión cuando encuentra un carácter no númerico, en tu caso la configuración es la típica en español, con el separador de decimales la coma, pero el carácter standard es el punto, así que cuando encuentra una coma ignora el resto y por eso no graba los decimales.
    Prueba:
    Código:
    Debug.Print Val("2,3"), Str(CDbl("2,3"))
    Por otro lado si estás insertando/actualizando un valor númerico no debes encerrar entre apóstrofos el valor en la sentencia, así, que asumiendo que TeValor es una cadena tu código debería quedar:
    Código:
    Sql = "INSERT INTO CABECERA_PEDIDOS(VALOR)VALUES("
    Sql = Sql & Str(CDbl(TeValor)) & " )"
    Base.Execute (Sql), adCmdText
    Ya que el separador decimal a usar es el punto
    Una visita a las Normas del foro nunca viene mal

    Comentario

    Trabajando...
    X