Autor Tema: No graba los decimales en la tabla access  (Leído 2131 veces)

0 Usuarios y 1 Visitante están viendo este tema.

ale_xi

  • Bytes
  • *
  • Mensajes: 30
  • Reputación: +3/-1
    • Ver Perfil
No graba los decimales en la tabla access
« en: Marzo 15, 2018, 12:41:29 am »
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: [Seleccionar]
Sql = "INSERT INTO CABECERA_PEDIDOS(VALOR)VALUES("
Sql = Sql & " '" & val(TeValor) & " ”
Base.Execute (Sql), adCmdText

Muchas gracias

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:No graba los decimales en la tabla access
« Respuesta #1 en: Marzo 16, 2018, 03:25:23 pm »
El titulo de tu post es incorrecto dado que tu mismo confirmas que Access si graba. Lo que pasa es que no esta recibiendo el valor con decimal.

Estas usando Val y eso te trunca el numero y te considera el numero solo hasta el primer caracter no numérico, la coma no la gestiona el Val, tendrías que convertir.

Tu mismo has la prueba con un Msgbox.
Si pones : Msgbox(30) te manda 30
Si pones : Msgbox(30,5) te manda error pq los considera como 2 parámetros, te obliga a usar comilla doble.
Si pones : Msgbox("30,5")  te manda 30,5 pero ya no es numero.

Si pones : Msgbox(Val("30,5")) te manda 30 pq la coma no es numerica.
Si pones : Msgbox(Val("30.5")) te manda 30.5
Si pones : Msgbox(Val(30.5)) te manda 30.5
Si pones : Msgbox(30.5) te manda 30.5

¿que es TeValor? una variable? un control?

Si es una variable fíjate que esté como Double y no es necesario el Val

Si es un control almacena el valor en una variable Double y usa en tu SQL la variable SIN VAL.

Tampoco mandes como string, allí veo una comilla simple, cuando envías números no mandes con comillas

Checa también la configuración regional, lo usual es el punto decimal, creo que alli radica tu problema

Saludos
Me encuentras en YAcosta.com

obethermy

  • Megabyte
  • ***
  • Mensajes: 116
  • Reputación: +6/-7
    • Ver Perfil
Re:No graba los decimales en la tabla access
« Respuesta #2 en: Marzo 20, 2018, 09:11:03 am »
En mysql guarda el decimal como punto no como coma aunque lo configure en configuracion regional y idiomas de windows xp,7,8,10,etc
Tu valor decimal esta en un texbox => tevalor

'replazo en el textbox la coma por punto
Sql = "INSERT INTO CABECERA_PEDIDOS(VALOR) VALUES(" & Replace(Tevalor, Chr(44), Chr(46)) & ")”
Base.Execute (Sql), adCmdText

Pero Access si lo guarda segun configuracion Windows y quedaria asi
Sql = "INSERT INTO CABECERA_PEDIDOS(VALOR) VALUES(" & Tevalor & ")”
Base.Execute (Sql), adCmdText