Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/11/2008, 12:21
Avatar de Cameron_2006
Cameron_2006
 
Fecha de Ingreso: diciembre-2006
Mensajes: 248
Antigüedad: 18 años, 2 meses
Puntos: 0
Modificacion de datos numericos con decilames

Buenas tardes, tengo mi base de datos Access en la que estoy grabando datos numericos con decimales, pero esto no es tan cierto, puesto para que me acepte los decimales, lo que hice fue cambiar esos campos a "moneda" con "dos decimales", lo cual graba perfectamente. Claro, también para esto tengo que separar con puntos en lugar de comas.

Ahora el problema que tengo es que si quiero modificar esos datos, primero recupero los datos de la base de datos, y estos me devuelve los numeros con comas, entonces trato de modificarlo dejando esas comas y no me acepta el cambio, tengo entonces que cambiar todas las comas por el punto y así SI funciona.

Habría otra forma más simple de hacer esto?

Lo que debería ser es que acepte las comas desde el principio y así podría hacer las modificaciones, sin que sea tan engorroso.

Para ver si esto es posible, lo primero que hice fue crear una funcion que validara que esos campos fueran numericos:

<%
'validar datos numericos
function DatosValidos(pmetros, pservicios, pfachada, phabitaciones, pprecio)
DatosValidos=False
if len(trim(pmetros))=0 then exit function
if len(trim(pservicios))=0 then exit function
if len(trim(pfachada))=0 then exit function
if len(trim(phabitaciones))=0 then exit function
if len(trim(pprecio))=0 then exit function

if not isnumeric(pmetros) then exit function
if not isnumeric(pservicios) then exit function
if not isnumeric(pfachada) then exit function
if not isnumeric(phabitaciones) then exit function
if not isnumeric(pprecio) then exit function
DatosValidos = True
end function
%>


luego inserté el código de la siguiente manera:

if DatosValidos(metros, servicios, fachada, dormitorios, precio) then

Ssql = "insert into inmuebles (ref_inmueble, tipo_inmueble,clase_inmueble,zona_inmueble,metros, calle, "
Ssql = Ssql & "barrio,servicios,fachada,habitaciones,precio,mone da_inmueble,trastero,garage,amoblado,aire_acondici onado, "
Ssql = Ssql & "calefaccion,piscina, caracteristicas,notas,fecha) values ('" & ref_inmueble & "'," & id_tipo & ","
Ssql = Ssql & id_clase & "," & id_zona & ","&cint(metros) & ",'"&apostrofe(calle)&"', '"&apostrofe(barrio)&"',"
Ssql = Ssql & cint(servicios) & ","&cdbl(fachada) & ","&cint(dormitorios) & ","
Ssql = Ssql & cstr(cdbl(precio)) & "," & moneda & "," & trastero & "," & garage & "," & amoblado & "," & aire & "," & calefaccion& ","
Ssql = Ssql & piscina & ",'" &apostrofe(caracteristicas)& "','" &apostrofe(notas)& "','" & fecha & "')"
response.write(ssql)
response.end
conn.execute ssql
%>


haciendo eso me da este error:

Microsoft JET Database Engine error '80040e14'

El número de valores de consulta y el número de campos de destino son diferentes.

/administrador/inmuebles_locales/nuevoregistro.asp, línea 88


La linea 88 es esta:
conn.execute ssql

---
OK, pero si le cambio la coma por el punto, entonces, lo que vendría siendo 4,5 se convierte en 45 y lo graba.

Alguien me podría ayudar con este problema? gracias de antemano

Última edición por Cameron_2006; 27/11/2008 a las 12:23 Razón: agregar datos