El número de valores de consulta y el número de campos de destino son diferentes
Bienvenidos a VerTutoriales.com, es posible que sin saber por qué alguna consulta que esteis lanzando desde visual basic (vb6) os devuelva este error: “el número de valores de consulta y el número de campos de destino son diferentes”, la solución es bien simple, veamos:
El problema surge en cómo toma los datos la consulta y es posible que los valores decimales lleven una “,” por medio, esto puede ser un problema o no, dependiendo de la configuración que tengas en vuestro sistema, en mi caso usaba para los cálculos los puntos “.” y hacía que el cliente configurara su sistema de manera que los puntos fueran el símbolo decimal y la coma fuera el separador de miles, esto no solía ser un problema mientras no compartieran el sistema con otras aplicaciones contables. Pero al ir creciendo las funcionalidades e ir ampliando el target, nos empezó a hacer falta cambiar esto. Es decir, la configuración de decimales pasó a ser la configuración por defecto, las comas “,” como símbolo decimal y los puntos “.” como símbolo separador de miles, toda esta explicación para qué… pues despues de solucionar la toma de datos generando una función que supliera la carencia de Val(), en apariencia todo funcionaba bien, los cálculos los realizaba genial, pero en una parte, a la hora de insertar decimales, decía que los valores de consulta no eran igual a los de destino, ¿cómo?
Pues eso, algo que no se había tocado fallaba… el problema es que visual basic, tomaba ese valor como no válido y directamente lo omitía, provocando que la consulta no fuera correcta.
SOLUCIÓN:
En la consulta se le añade a la insersión del campo el entrecomillado con comillas simples, por ejemplo: ‘0,2032’ y quedará solucionado este problema!
Espero que os sea útil… sé que me alargué bastante en la explicación pero es que así comenzó todo…
Un saludo!
Comments
Amigo, ese comentario estuvo genial, resolvió mi problema que era exactamente igual al que tu expusiste. muchísimas gracias…
hola, me podrias dar una ejemplo, no se donde insert las comillas que hablas. gracias
Buenas, me puedes enviar un ejemplo, tengo el mismo problema al insertar un valor numerico con decimales, Saludos
Has leído el artículo completo? Se refiere a que el número puede contener el valor , esa , rompe la concatenación de la query
No sé si me expliqué :D, puedes pegar la consulta donde te da error para revisarla 😉
Esta es mi consulta:
Private sub Button1_click(…)
dim varfecha as date
vartasa as double
varfecha=textbox1.text
vartasa=cdbl(textbox2.text)
if conn.state=connection.closed then
conn.open()
endif
dim cmd as new oledbCommand(ïnsert into dttcambio (dttcamvio_fecha, dttcambio_tasa) values (#¨&varfecha & ¨#,¨ & vartasa & ¨)¨,conn)
cmd.executenonquery()