Visual Basic - No se pueden guardar los cambios. No coinciden los tipos

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 179
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

No se pueden guardar los cambios. No coinciden los tipos

Publicado por Alberto (115 intervenciones) el 22/02/2018 11:18:20
Buenos días.
En una tabla tengo los campos capital, intereses y total. Todos ellos tipo número, doble
En el forma les tengo puesto txtCap.text número 0.00, txtInt.text número 0.00, txtTotal.text número 0.00.
En el código
a = txtCap.text
b = txtInt.text
TxtTotal = a + b
Cuando llega el Update recibo el mensaje "No se pueden guardar los cambios. No coinciden los tipos."
Primero recibía el mensaje relativo a TxtTotal porque entraba por ejemplo
3.25 + 1.25 y me aparecía en total 4 (sin decimales).
Pero ahora después de hacer mil probaturas con Format(x , "##0.00") y todo lo que se me ha ocurrido ni siquiera me admite los cambios en txtCap, ni en txtInt con el mismo mensaje cuando los tipos en mi opinión son idénticos.
Finalmente no sé qué hay que hacer para que los tipos estén en línea, porque creo que los tengo bien "alineados". ¿Qué estoy haciendo mal? Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 1.259
Plata
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

No se pueden guardar los cambios. No coinciden los tipos

Publicado por Antoni Masana (558 intervenciones) el 22/02/2018 12:56:19
Prueba cambiar el tipo de campo a Single.

Saludos.
\\//_


Byte:
El Byte corresponde a una variable de 8 bits que puede almacenar valores de 0 a 255. Es muy útil para el almacenamiento de datos binarios.

Double:
El Double es un número de 64-bit de coma flotante que se utiliza cuando se necesita una gran precisión. Estas variables pueden variar desde-1.79769313486232E308 a -4,94065645841247E-324 para valores negativos y de 4,94065645841247E-324 a 1.79769313486232E308 para valores positivos.

Integer:
El Integer o entero es un número de 16 bits que puede oscilar entre -32768 y 32767. Los enteros se deben utilizar cuando se trabaja con valores que no pueden contener números fraccionarios.

Long:
El Long es un número de 32 bits que puede variar entre -2.147.483.648 y 2.147.483.647. Las variables Long sólo puede contener valores enteros.

Decimal:
El Decimal es un subtipo de dato Variant, puede almacenar valores en un rango que va desde -79.228.162.514.264.337.593.543.950.335 hasta 79.228.162.514.264.337.593.543.950.335 si el valor no contiene cifras decimales. Tiene una precisión de hasta 28 decimales con valores desde -7,9228162514264337593543950335 hasta 7,9228162514264337593543950335.

Single:
El Single es un número de 32 bits que va desde-3.402823E38 a -1,401298 E-45 para valores negativos y desde 1,401298E-45 a 3.402823E38 para valores positivos. Cuando se necesitan números fraccionarios dentro de este rango, este es el tipo de apropiado para su uso.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 179
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

No se pueden guardar los cambios. No coinciden los tipos

Publicado por Alberto (115 intervenciones) el 22/02/2018 13:07:10
Muchas gracias por tu extensa información. Lo último con lo que estoy es con poner algo que he visto en la red:
a = Convert.toDouble(txtCap.Text ) pero me da el mensaje: Falta un objeto a Convert.toDouble. Ni idea. ??? Miro con todo interés tu mensaje.
Mil gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 179
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

No se pueden guardar los cambios. No coinciden los tipos

Publicado por Alberto (115 intervenciones) el 22/02/2018 15:05:20
Uff, al final salió. En la BD, números double con dos decimales; en el form, números con dos decimales. En el código

1
2
3
4
a = CDbl(txtCap.Text)
b = CDbl(txtInt.Text)
c = a + b
TxtTotal = Format((a + b), "##0.00")

Gracias por la tabarra. Es lo malo que tiene relacionarse con ignorantes, je.
Hasta luego, Alberto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar