Error al Recoger dato de un formulario

05/09/2006 - 15:21 por Aura | Informe spam
Hola a todos !

A ver quien me puede ayudar. En un formulario recogo un valor el qual debe
ser un decimal ( double) es decir p.ej.: 11112,25 o provando con "." 11112.25

Y me de el siguiente error:
Microsoft VBScript runtime (0x800A01A8)
Object required: '[string: "11112,25050000000"]'
/pfc/afegirF.asp, línea 32

Y el codigo es el siguiente:
en el formulario
<input name="presupuesto" type="text" size="20">

en la otra pagina que recogo--
pres = Trim(Request.Form("presupuesto"))
NOTA: lo he provado sacando el Trim() i no funciona

Muchas gracias !

Preguntas similare

Leer las respuestas

#6 Aura
07/09/2006 - 08:56 | Informe spam
Hola Manuel !
La linea 32 es esta:
pres = Trim(Request.Form("pressupost"))


Y lo que hago más abajo es sumar las variables, como sigue:
set total_subv = pg + mn + at + ur + dg + pb

Saludos !

"Manuel Vera" wrote:

En el texto.


"Aura" escribió en el mensaje
news:
> Pues aquí teneis el código de AfegirF.asp hasta la línea 49:

R: ¿cual es la linea 32?

>
> <% Dim miconn, RS, idsubv, añadir, todo_OK
>
> If (Request.Form<>"" and Request.Form("idobra")="") then
> Response.Write("Error id!")
> añadir = False
> Else
>
> id = Request.Form("idobra")
> pres = Trim(Request.Form("pressupost"))
> pg = Request("pg")
> mn = Request.Form("mn")
> at = Request.Form("at")
> ur = Request.Form("ur")
> dg = Request.Form("dg")
> pb = Request.Form("pb")
>
> todo_OK = True
> set total_subv = pg + mn + at + ur + dg + pb
>
> Set miconn = Server.CreateObject("ADODB.Connection")
> miconn.open "DSN=Obresp;UID=;Password=;"
>
> sSQL = "SELECT * FROM obra WHERE idobra="&id

R: cuando estas concatenando cadenas de texto con variables tienes que
colocar espacios en blanco a ambos lados del signo &, así:
.idobra=" & id

> set RS = miconn.Execute(sSQL)
>
> If Err.Description <> "" then

R: para usar esto debes haber activado el manejo de errores, lo cual no veo
que hayas hecho. Deberias tener una linea antes del IF como:
ON ERROR RESUME NEXT

> tot_OK = False
> Else
> set ct_pg = RS("cont_pg")
> set ct_mn = RS("cont_mn")
> set ct_at = RS("cont_at")
> set ct_ur = RS("cont_ur")
> set ct_dg = RS("cont_dg")
> set ct_pb = RS("cont_pb")
> set ct_sub = RS("cont_subv")
> set ct_pres = RS("cont_pres")
> End if
> RS.Close
> miconn.Close
> set miconn = NothinG
> set RS = Nothing
> End if
>
> Muchas gracias !



Respuesta Responder a este mensaje
#7 Aura
07/09/2006 - 09:00 | Informe spam
Hola Matias !

La respuesta a total_subv (set total_subv = pg + mn + at + ur + dg + pb), es
una variable en la que guardo la suma de todas ellas.

Y el error lo da en esta linea: pres = Trim(Request.Form("pressupost")) y
pres no es una variable reservada, ya la he canviado de nombre pero sigue
dando error.

Saludos !

"Matias Iacono" wrote:

Hay un par de lineas que me llaman la atencion:

Dim miconn, RS, idsubv, añadir, todo_OK

Nunca usar caracteres españoles. Variables con acentos o ñ no son
recomendables. Posiblemente el interprete no te diga nada, pero puede traerte
problemas luego.

Y la otra linea es:

set total_subv = pg + mn + at + ur + dg + pb

Si total_subv no es mas que un string o alguna variable simple, no es
necesario usar set para pasar la suma de los datos.

Si lo que quieres es simplemente concatenar strings usa & no +.

Aunque el error lo da mas arriba, sigo sin ver algun problema. Salvo que
pres sea una palabra reservada. :)

Como dato curioso, usar variables con el nombre de ID me ha traido
comportamientos extraños en algunos desarrollos.

Saludos.


Microsoft MVP
Orador Regional INETA


"Aura" wrote:

> Hola chicos !
>
> La respuesta es:
> > ¿haces alguna conversion en JavaScript cuando envias el formulario? NO
> > ¿ese valor double lo tipeas tu en el form o lo cargas desde el codigo? NO lo tipeo, solamente lo introduzco y lo recogo. Este tiene que ser con 2 decimales para despues realizar operaciones.
>
> Pues aquí teneis el código de AfegirF.asp hasta la línea 49:
>
> <% Dim miconn, RS, idsubv, añadir, todo_OK
>
> If (Request.Form<>"" and Request.Form("idobra")="") then
> Response.Write("Error id!")
> añadir = False
> Else
>
> id = Request.Form("idobra")
> pres = Trim(Request.Form("pressupost"))
> pg = Request("pg")
> mn = Request.Form("mn")
> at = Request.Form("at")
> ur = Request.Form("ur")
> dg = Request.Form("dg")
> pb = Request.Form("pb")
>
> todo_OK = True
> set total_subv = pg + mn + at + ur + dg + pb
>
> Set miconn = Server.CreateObject("ADODB.Connection")
> miconn.open "DSN=Obresp;UID=;Password=;"
>
> sSQL = "SELECT * FROM obra WHERE idobra="&id
> set RS = miconn.Execute(sSQL)
>
> If Err.Description <> "" then
> tot_OK = False
> Else
> set ct_pg = RS("cont_pg")
> set ct_mn = RS("cont_mn")
> set ct_at = RS("cont_at")
> set ct_ur = RS("cont_ur")
> set ct_dg = RS("cont_dg")
> set ct_pb = RS("cont_pb")
> set ct_sub = RS("cont_subv")
> set ct_pres = RS("cont_pres")
> End if
> RS.Close
> miconn.Close
> set miconn = NothinG
> set RS = Nothing
> End if
>
> Muchas gracias !
> "Manuel Vera" wrote:
>
> > Hola Aura
> >
> > ¿podrias escribir las lineas 25 a la 35 de tu codigo?
> > Las de este archivo: /pfc/afegirF.asp, línea 32
> > Para ver que codigo es ese que genera el error.
> >
> > ¿haces alguna conversion en JavaScript cuando envias el formulario?
> > ¿ese valor double lo tipeas tu en el form o lo cargas desde el codigo?
> >
> > Salu2
> > MV
> >
> >
> > "Matias Iacono" escribió en el
> > mensaje news:
> > >A simple vista no hay nada incorrecto.
> > >
> > > Puedes colocar el codigo de las dos paginas para ver mas a detalle?
> > >
> > > Saludos.
> > >
> > > Microsoft MVP
> > > Orador Regional INETA
> > >
> > >
> > > "Aura" wrote:
> > >
> > >> Hola a todos !
> > >>
> > >> A ver quien me puede ayudar. En un formulario recogo un valor el qual
> > >> debe
> > >> ser un decimal ( double) es decir p.ej.: 11112,25 o provando con "."
> > >> 11112.25
> > >>
> > >> Y me de el siguiente error:
> > >> Microsoft VBScript runtime (0x800A01A8)
> > >> Object required: '[string: "11112,25050000000"]'
> > >> /pfc/afegirF.asp, línea 32
> > >>
> > >> Y el codigo es el siguiente:
> > >> en el formulario
> > >> <input name="presupuesto" type="text" size="20">
> > >>
> > >> en la otra pagina que recogo--
> > >> pres = Trim(Request.Form("presupuesto"))
> > >> NOTA: lo he provado sacando el Trim() i no funciona
> > >>
> > >> Muchas gracias !
> >
> >
> >
Respuesta Responder a este mensaje
#8 Manuel Vera
07/09/2006 - 14:18 | Informe spam
Aura

Realiza los cambios que te sugiere Matias. Por ejemplo:
set total_subv = pg + mn + at + ur + dg + pb
cambialo a:
total_subv = pg + mn + at + ur + dg + pb

Lee el correo de Matias para los otros cambios que el te sugiere.

Salu2
MV

"Aura" escribió en el mensaje
news:
Hola Manuel !
La linea 32 es esta:
pres = Trim(Request.Form("pressupost"))


Y lo que hago más abajo es sumar las variables, como sigue:
set total_subv = pg + mn + at + ur + dg + pb

Saludos !

"Manuel Vera" wrote:

En el texto.


"Aura" escribió en el mensaje
news:
> Pues aquí teneis el código de AfegirF.asp hasta la línea 49:

R: ¿cual es la linea 32?

>
> <% Dim miconn, RS, idsubv, añadir, todo_OK
>
> If (Request.Form<>"" and Request.Form("idobra")="") then
> Response.Write("Error id!")
> añadir = False
> Else
>
> id = Request.Form("idobra")
> pres = Trim(Request.Form("pressupost"))
> pg = Request("pg")
> mn = Request.Form("mn")
> at = Request.Form("at")
> ur = Request.Form("ur")
> dg = Request.Form("dg")
> pb = Request.Form("pb")
>
> todo_OK = True
> set total_subv = pg + mn + at + ur + dg + pb
>
> Set miconn = Server.CreateObject("ADODB.Connection")
> miconn.open "DSN=Obresp;UID=;Password=;"
>
> sSQL = "SELECT * FROM obra WHERE idobra="&id

R: cuando estas concatenando cadenas de texto con variables tienes que
colocar espacios en blanco a ambos lados del signo &, así:
.idobra=" & id

> set RS = miconn.Execute(sSQL)
>
> If Err.Description <> "" then

R: para usar esto debes haber activado el manejo de errores, lo cual no
veo
que hayas hecho. Deberias tener una linea antes del IF como:
ON ERROR RESUME NEXT

> tot_OK = False
> Else
> set ct_pg = RS("cont_pg")
> set ct_mn = RS("cont_mn")
> set ct_at = RS("cont_at")
> set ct_ur = RS("cont_ur")
> set ct_dg = RS("cont_dg")
> set ct_pb = RS("cont_pb")
> set ct_sub = RS("cont_subv")
> set ct_pres = RS("cont_pres")
> End if
> RS.Close
> miconn.Close
> set miconn = NothinG
> set RS = Nothing
> End if
>
> Muchas gracias !



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