problema de formato

04/10/2005 - 21:52 por Enrique | Informe spam
hola a todos,

estoy trabajando contra una BD Access y tengo una tabla "productos". cada
producto tiene un precio y el precio es de tipo "moneda" con 2 decimales
(trabajamos con centimos de euro).

mi problema es el siguiente:
en Access, si pongo 3.44 me pone 344 por lo que no me vale
si pongo 3,44 no cambia nada por lo que me vale

el problema es que intento hacer un INSERT con este valor, y este 3,44 se
considera como 2 valores u elementos en vez de 1 por lo que tengo un
argumento demas y el INSERT no funciona.

ejemplo de la INSERT: INSERT INTO tabla_temporal(idTabla, Precio) VALUES
(100,13,7) ==> 13,7 es el precio

he pensado en varias soluciones:
1- poner el campo "precio" en string y convertirlo segun necesidad
2-sustituir la coma por un punto pero en este caso, la tabla destino tendra
el mismo problema por lo que no me vale

¿veis alguna mejor solucion?

gracias de antemano por vuestra ayuda

Preguntas similare

Leer las respuestas

#1 Manuel Vera
04/10/2005 - 22:14 | Informe spam
Sol. 1
DESCARTADA TAJANTEMENTE. El hacer tu campo precio de tipo string te traerá
horrorosos dolores de cabeza a la hora de realizar cálculos. Además,
convertirá tu base de datos en un monstruo totalmente infeciente debido a la
conversión de tipos.

Sol. 2
Es la indicada. Cuando hagas el INSERT INTO o el UPDATE, deberás convertir
el valor escrito por el usuario en el formato 99999.99
Por ejemplo:

sql= "INSERT INTO Productos (...lista de campos..., precio)"
sql = sql & "(...lista de variables, " & replace(varPrecio, "," ,
"." ) & ")"

Luego, en tu tabla se guadará un número de enteros y decimales, donde el
separador decimal será el que posea la configuración regional de tu equipo
(cuando tu veas o extraigas el dato). Sin embargo, para efectos de
sentencias SQL como INSERT, UPDATE, SELECT ... el separador decimal siempre
es el punto (.)

Salu2
MV

"Enrique" wrote in message
news:
hola a todos,

estoy trabajando contra una BD Access y tengo una tabla "productos". cada
producto tiene un precio y el precio es de tipo "moneda" con 2 decimales
(trabajamos con centimos de euro).

mi problema es el siguiente:
en Access, si pongo 3.44 me pone 344 por lo que no me vale
si pongo 3,44 no cambia nada por lo que me vale

el problema es que intento hacer un INSERT con este valor, y este 3,44 se
considera como 2 valores u elementos en vez de 1 por lo que tengo un
argumento demas y el INSERT no funciona.

ejemplo de la INSERT: INSERT INTO tabla_temporal(idTabla, Precio) VALUES
(100,13,7) ==> 13,7 es el precio

he pensado en varias soluciones:
1- poner el campo "precio" en string y convertirlo segun necesidad
2-sustituir la coma por un punto pero en este caso, la tabla destino


tendra
el mismo problema por lo que no me vale

¿veis alguna mejor solucion?

gracias de antemano por vuestra ayuda



Respuesta Responder a este mensaje
#2 Enrique
04/10/2005 - 22:47 | Informe spam
muchas gracias por tu ayuda. voy a probar eso :-)

"Manuel Vera" escribió en el mensaje
news:umABy$
Sol. 1
DESCARTADA TAJANTEMENTE. El hacer tu campo precio de tipo string te traerá
horrorosos dolores de cabeza a la hora de realizar cálculos. Además,
convertirá tu base de datos en un monstruo totalmente infeciente debido a


la
conversión de tipos.

Sol. 2
Es la indicada. Cuando hagas el INSERT INTO o el UPDATE, deberás convertir
el valor escrito por el usuario en el formato 99999.99
Por ejemplo:

sql= "INSERT INTO Productos (...lista de campos..., precio)"
sql = sql & "(...lista de variables, " & replace(varPrecio, "," ,
"." ) & ")"

Luego, en tu tabla se guadará un número de enteros y decimales, donde el
separador decimal será el que posea la configuración regional de tu equipo
(cuando tu veas o extraigas el dato). Sin embargo, para efectos de
sentencias SQL como INSERT, UPDATE, SELECT ... el separador decimal


siempre
es el punto (.)

Salu2
MV

"Enrique" wrote in message
news:
> hola a todos,
>
> estoy trabajando contra una BD Access y tengo una tabla "productos".


cada
> producto tiene un precio y el precio es de tipo "moneda" con 2 decimales
> (trabajamos con centimos de euro).
>
> mi problema es el siguiente:
> en Access, si pongo 3.44 me pone 344 por lo que no me vale
> si pongo 3,44 no cambia nada por lo que me vale
>
> el problema es que intento hacer un INSERT con este valor, y este 3,44


se
> considera como 2 valores u elementos en vez de 1 por lo que tengo un
> argumento demas y el INSERT no funciona.
>
> ejemplo de la INSERT: INSERT INTO tabla_temporal(idTabla, Precio) VALUES
> (100,13,7) ==> 13,7 es el precio
>
> he pensado en varias soluciones:
> 1- poner el campo "precio" en string y convertirlo segun necesidad
> 2-sustituir la coma por un punto pero en este caso, la tabla destino
tendra
> el mismo problema por lo que no me vale
>
> ¿veis alguna mejor solucion?
>
> gracias de antemano por vuestra ayuda
>
>
>



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida