Visual Basic para Aplicaciones - Dato Tipo Money

Life is soft - evento anual de software empresarial
 
Vista:

Dato Tipo Money

Publicado por sandra (33 intervenciones) el 11/06/2008 13:00:13
Hola Como estan
............
Tengo una tabla en la base de datos q tiene un campop tipo MONEY. La base de datos es Sql Server.
Tengo un problema al cargar datos con como por ejemlo estos 2,80, los precios q tienen comas El error me dice q tengo menos columnas q campos de valor o q use la funcion CONVERT .
Los precios q no tienen la coma no me da ningun error.
.........
Bueno si alguien puede darme una ayudita, desde muchisimas gracias!!!!!

Saludos....
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

RE:Dato Tipo Money

Publicado por pacopaz (3 intervenciones) el 11/06/2008 23:26:26
Creo que el error es, en si, la coma.
Hasta donde sé, SQL Server no acepta las comas como delimitador de decimales, así que tendrías que sustituir la coma por un punto (.).
Esto, por que la coma se reconoce como un cambio de campo.
Es decir, si haces un insert tipo:

insert into Productos (Id, Nombre, Precio) values("AG-8789", "Producto", 2,45)

estarías pidiendo 3 valores y enviando 4, por lo que incurres en un error: Si notas, cada campo está separado por una coma, así que el 2,45 que tu pretendes meter en un campo, en realidad el lector toma como valor de un campo el número 2 y para el siguiente campo el 45.
Lo correcto sería hacer esto:

insert into Productos (Id, Nombre, Precio) values("AG-8789", "Producto", 2.45)

Para poder lograrlo sin tener que pasarlo a una variable double que luego lo convierta en string, sería hacer un replace.
No es que sea adivino, pero creo que lo que estás haciendo es componer el String del Query con los valores que insertas en campos de texto. Si es así, lo que tienes que hacer, en vez de enviar solo Edit1.Text, es enviar Replace(Edit1.Text, ",", ".")

Espero que te sirva.

Saludos.
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

RE:Dato Tipo Money

Publicado por sandra (33 intervenciones) el 12/06/2008 21:12:06
Hola como estas,,,
poniendo de esta manera Replace(Edit1.Text, ",", ".") lo que hace es sacarme la coma osea si tengo 3,5 me deja 35 no me cambia por el punto...

saludos.
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

RE:Dato Tipo Money

Publicado por pacopaz (3 intervenciones) el 12/06/2008 22:59:38
Se me hace rarísimo que se haya comportado así. La única forma de que eso sucediera (según yo) es que hubieras puesto Replace(Edit1.Text, ",", ""), pero bueno.
Aquí otra opción, aunque es más elaborada:

Dim a as Variant
Dim sVal as String

a = Split("3,5", ",")
sVal = CStr(a(0)) & "." & CStr(a(1))
Set a = Nothing

Y luego pasas sVal como parámetro.

Espero que esto si sirva, por que me estoy quedando sin opciones.

Saludos.
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

RE:Dato Tipo Money

Publicado por sandra (33 intervenciones) el 13/06/2008 12:25:18
Hola:

Esta opcion andubo, solo q si paso un dato q no tenga coma me da error, tengo q hacer un ocntrol nomas...

Te agradesco muchismo por tu ayuda!!!..
Saludos...
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

RE:Dato Tipo Money

Publicado por pacopaz (3 intervenciones) el 13/06/2008 20:51:15
Ok, inténtalo así:

Dim a as Variant
Dim sVal as String

a = Split(Numero, ",")
if UBound(a) > 0 then
sVal = CStr(a(0)) & "." & CStr(a(1))
else
sVal = Numero
end if
Set a = Nothing

Espero que ahora si funcione :-)

Saludos.
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