Búsquedas que provocan error

15/01/2005 - 13:29 por Juan M Afan de Ribera | Informe spam
Hola a todos,

Estoy probando una consulta para hacer búsquedas con una base de datos
Access. Esta consulta tiene un parámetro de búsqueda, por el que se busca en
varios campos. Si configuro el parámetro dentro de la sentencia SQL de esta
forma (y resumiendo mucho la consulta):

SELECT MiCampo
FROM MiTabla
WHERE MiCampo Like '%' & [param] & '%'

y después, a través de una página ASP que recoge ese parámetro de búsqueda,
escribo "[" (sin comillas), me aparece el siguiente error:

"
Información técnica (para personal de soporte técnico)
Tipo de error:
Microsoft JET Database Engine (0x80040E14)
Cadena modelo no válida
...
...

Datos de POST:
txtBuscar=%5B
"

En cambio, si en la consulta configuro el parámetro de esta otra forma:

SELECT MiCampo
FROM MiTabla
WHERE InStr(MiCampo, [param]) > 0

el introducir el mismo carácter "[" funciona sin más problemas

¿A qué se debe esta anomalía? Prefiero utilizar Like siempre que puedo en
vez de una función, pues es bastante más rápido.

Muchas gracias.



Saludos,
Juan M Afan de Ribera
[MVP Access]
http://www.accessvbafaq.mvp-access.com
http://www.mvp-access.com/juanmafan

Preguntas similare

Leer las respuestas

#6 Juan M Afan de Ribera
15/01/2005 - 22:04 | Informe spam
La pregunta es como le asignas el valor al parametro?



El parámetro lo asigno tal como comentaba antes, lo recojo de la colección
Form con el método Request, lo paso a una función. En esa función tengo una
sentencia SQL parecida a esta:

SQL = "SELECT MiCampo FROM MiTabla WHERE MiCampo Like " & TextoABuscar

donde TextoABuscar es el valor del parámetro al cual anteriormente, en esa
misma función, le he añadido un "%" al principio y al final.

Esto es lo que está en la página en la web. Ahora en local, he estado
haciendo pruebas con una consulta compilada en Access, en la cual está
establecido que pida un parámetro. Este parámetro se lo paso a través de la
colección Parameters de un objeto Command. Pero si la consulta (tanto la
compilada en Access como la que viene a partir de la sentencia SQL que
expongo más arriba) utiliza el operador Like, entonces se produce el error.
Si, en vez de utilizar el operador Like utilizo la función InStr, entonces
funciona perfectamente. ¿no es esto raro? En fin...

No se, esto lo preguntaba por saber cosas, pues ya me va bien con el InStr,
aunque es más lento que el operador Like.

Saludos,
Juan M Afan de Ribera
[MVP Access]
http://www.accessvbafaq.mvp-access.com
http://www.mvp-access.com/juanmafan


"Valdov" escribió en el mensaje
news:u16dtwy%
La pregunta es como le asignas el valor al parametro?, efectivamente el
query esta bien establecido si lo ejecutas en access directamente, pero
porque access te manda un input pidiendote el valor del parametro, aca no
te
va a pedir el parametro.

Información técnica (para personal de soporte técnico)
Tipo de error:
Microsoft JET Database Engine (0x80040E14)
Cadena modelo no válida -- esta mal el query

Valdov - Omar Valdovino


"Juan M Afan de Ribera" escribió en el mensaje
news:uWnruWy#
Por favor, responde a este mensaje y dinos si te funcionó o no. Gracias

Ahh. Vale, jejeje, gracias por la info. Es que no estoy muy ducho con los
términos empleados en ASP.

Igualmente, tal vez mi pregunta original no se entendió (o yo, que no me
entero):

Si hago una consulta en la que utilizo el Like % parametro % y le paso el
valor "[" (con otros valores funciona bien) en ese parametro, la página
casca y envía el mensaje de error antes mencionado. Si en vez de utilizar
Like, utilizo la función InStr(Cadena_donde_buscar, parametro) da igual
lo
que ponga en el valor parametro, que la consulta funciona perfectamente
bien.

¿a qué se debe esto?

Saludos,
Juan M Afan de Ribera
[MVP Access]
http://www.accessvbafaq.mvp-access.com
http://www.mvp-access.com/juanmafan


"Valdov" escribió en el mensaje
news:ekws6Cy%
> Ok, tu mismo lo dijiste, estas usando una caja de texto y al hacer
> click
> en
> un boton buscar se lleva a cabo la misma sobre la misma pantalla. Esto


con
> el dato a buscar oculto (va en el post).
>
> Con lo de la url me referia a algo como esto:
>
> tu entras a una página: p.e. www.hotmail.com
>
> inmediatamente se te redirecciona a:
> http://login.passport.net/uilogin.srf?id=2
>
> si te fijas termina con un ?id=2
>
> id es un parametro que estan pasando a uilogin.srf
>
> y si te fijas ya le asignan el valor deseado. estos parametros los


recojes
> con request.querystring en lugar de request.form.
>
> Espero haberme explicado y como decía el chavo del ocho: "La idea es


esa".
> :)
> Valdov - Omar Valdovino
>
>
> "Juan M Afan de Ribera" escribió en el mensaje
> news:eE#SB4x#
>> Hola Valdov y gracias por contestar.
>>
>> No se si te entiendo bien. A ver... Tengo una página buscar (en


realidad
> es
>> la página "Buscar" en la primera web de mi firma) con un solo campo
>> (txtBuscar) para captar el texto de busqueda. Una vez lo recojo, lo


paso
>> a
>> una función que se encarga de construir la cadena SQL y demás cosas.
>> Viene
> a
>> ser algo así:
>>
>> Dim ResultadosBusqueda
>>
>> ResultadosBusqueda >> >> FuncionResultadosBusqueda(Request.Form("txtBuscar"))
>>
>> y en esa función:
>>
>> FuncionResultadosBusqueda(TextoABuscar)
>> Dim SQL
>>
>> TextoABuscar= "'%" & TextoABuscar & "%'"
>>
>> SQL = "SELECT MiCampo FROM MiTabla WHERE MiCampo Like " &
> TextoABuscar
>>
>> etc...
>>
>> ¿se corresponde esto con lo que me comentabas?
>>
>> lo de pasarlo por el Url ya se me escapa, no se a qué te refieres.
>>
>> Muchas gracias.
>>
>> Saludos,
>> Juan M Afan de Ribera
>> [MVP Access]
>> http://www.accessvbafaq.mvp-access.com
>> http://www.mvp-access.com/juanmafan
>>
>>
>> "Valdov" escribió en el mensaje
>> news:u5OaEfx%
>> > En Asp deberia quedar algo como:
>> >
>> > SELECT MiCampo FROM MiTabla WHERE MiCampo Like '%" & variable &
>> > "%'"
>> >
>> > o bien, si el parametro lo capturas en una pantalla antes en una
>> > caja
>> > de
>> > texto de un form:
>> >
>> > SELECT MiCampo FROM MiTabla WHERE MiCampo Like '%" &
>> > request.form("param")
>> > & "%'"
>> >
>> > o si pasas el dato por el url:
>> >
>> > SELECT MiCampo FROM MiTabla WHERE MiCampo Like '%" &
>> > request.querystring("param") & "%'"
>> >
>> > Valdov - Omar Valdovino
>> >
>> >
>> > "Juan M Afan de Ribera" escribió en el mensaje
>> > news:u6t9e3v#
>> >> Hola a todos,
>> >>
>> >> Estoy probando una consulta para hacer búsquedas con una base de


datos
>> >> Access. Esta consulta tiene un parámetro de búsqueda, por el que se
> busca
>> > en
>> >> varios campos. Si configuro el parámetro dentro de la sentencia SQL


de
>> > esta
>> >> forma (y resumiendo mucho la consulta):
>> >>
>> >> SELECT MiCampo
>> >> FROM MiTabla
>> >> WHERE MiCampo Like '%' & [param] & '%'
>> >>
>> >> y después, a través de una página ASP que recoge ese parámetro de
>> > búsqueda,
>> >> escribo "[" (sin comillas), me aparece el siguiente error:
>> >>
>> >> "
>> >> Información técnica (para personal de soporte técnico)
>> >> Tipo de error:
>> >> Microsoft JET Database Engine (0x80040E14)
>> >> Cadena modelo no válida
>> >> ...
>> >> ...
>> >>
>> >> Datos de POST:
>> >> txtBuscar=%5B
>> >> "
>> >>
>> >> En cambio, si en la consulta configuro el parámetro de esta otra
>> >> forma:
>> >>
>> >> SELECT MiCampo
>> >> FROM MiTabla
>> >> WHERE InStr(MiCampo, [param]) > 0
>> >>
>> >> el introducir el mismo carácter "[" funciona sin más problemas
>> >>
>> >> ¿A qué se debe esta anomalía? Prefiero utilizar Like siempre que


puedo
> en
>> >> vez de una función, pues es bastante más rápido.
>> >>
>> >> Muchas gracias.
>> >>
>> >>
>> >>
>> >> Saludos,
>> >> Juan M Afan de Ribera
>> >> [MVP Access]
>> >> http://www.accessvbafaq.mvp-access.com
>> >> http://www.mvp-access.com/juanmafan
>> >>
>> >>
>> >
>> >
>>
>>
>
>






Respuesta Responder a este mensaje
#7 Valdov
17/01/2005 - 06:52 | Informe spam
Pues entonces no se que suceda, yo he estado haciendo pruebas con tu query y
me funciona de maravilla

Valdov - Omar Valdovino

"Juan M Afan de Ribera" escribió en el mensaje
news:uU58MX0#
> La pregunta es como le asignas el valor al parametro?

El parámetro lo asigno tal como comentaba antes, lo recojo de la colección
Form con el método Request, lo paso a una función. En esa función tengo


una
sentencia SQL parecida a esta:

SQL = "SELECT MiCampo FROM MiTabla WHERE MiCampo Like " &


TextoABuscar

donde TextoABuscar es el valor del parámetro al cual anteriormente, en esa
misma función, le he añadido un "%" al principio y al final.

Esto es lo que está en la página en la web. Ahora en local, he estado
haciendo pruebas con una consulta compilada en Access, en la cual está
establecido que pida un parámetro. Este parámetro se lo paso a través de


la
colección Parameters de un objeto Command. Pero si la consulta (tanto la
compilada en Access como la que viene a partir de la sentencia SQL que
expongo más arriba) utiliza el operador Like, entonces se produce el


error.
Si, en vez de utilizar el operador Like utilizo la función InStr, entonces
funciona perfectamente. ¿no es esto raro? En fin...

No se, esto lo preguntaba por saber cosas, pues ya me va bien con el


InStr,
aunque es más lento que el operador Like.

Saludos,
Juan M Afan de Ribera
[MVP Access]
http://www.accessvbafaq.mvp-access.com
http://www.mvp-access.com/juanmafan


"Valdov" escribió en el mensaje
news:u16dtwy%
> La pregunta es como le asignas el valor al parametro?, efectivamente el
> query esta bien establecido si lo ejecutas en access directamente, pero
> porque access te manda un input pidiendote el valor del parametro, aca


no
> te
> va a pedir el parametro.
>
> Información técnica (para personal de soporte técnico)
> Tipo de error:
> Microsoft JET Database Engine (0x80040E14)
> Cadena modelo no válida -- esta mal el query
>
> Valdov - Omar Valdovino
>
>
> "Juan M Afan de Ribera" escribió en el mensaje
> news:uWnruWy#
>> Por favor, responde a este mensaje y dinos si te funcionó o no. Gracias
>>
>> Ahh. Vale, jejeje, gracias por la info. Es que no estoy muy ducho con


los
>> términos empleados en ASP.
>>
>> Igualmente, tal vez mi pregunta original no se entendió (o yo, que no


me
>> entero):
>>
>> Si hago una consulta en la que utilizo el Like % parametro % y le paso


el
>> valor "[" (con otros valores funciona bien) en ese parametro, la página
>> casca y envía el mensaje de error antes mencionado. Si en vez de


utilizar
>> Like, utilizo la función InStr(Cadena_donde_buscar, parametro) da igual
>> lo
>> que ponga en el valor parametro, que la consulta funciona perfectamente
>> bien.
>>
>> ¿a qué se debe esto?
>>
>> Saludos,
>> Juan M Afan de Ribera
>> [MVP Access]
>> http://www.accessvbafaq.mvp-access.com
>> http://www.mvp-access.com/juanmafan
>>
>>
>> "Valdov" escribió en el mensaje
>> news:ekws6Cy%
>> > Ok, tu mismo lo dijiste, estas usando una caja de texto y al hacer
>> > click
>> > en
>> > un boton buscar se lleva a cabo la misma sobre la misma pantalla.


Esto
> con
>> > el dato a buscar oculto (va en el post).
>> >
>> > Con lo de la url me referia a algo como esto:
>> >
>> > tu entras a una página: p.e. www.hotmail.com
>> >
>> > inmediatamente se te redirecciona a:
>> > http://login.passport.net/uilogin.srf?id=2
>> >
>> > si te fijas termina con un ?id=2
>> >
>> > id es un parametro que estan pasando a uilogin.srf
>> >
>> > y si te fijas ya le asignan el valor deseado. estos parametros los
> recojes
>> > con request.querystring en lugar de request.form.
>> >
>> > Espero haberme explicado y como decía el chavo del ocho: "La idea es
> esa".
>> > :)
>> > Valdov - Omar Valdovino
>> >
>> >
>> > "Juan M Afan de Ribera" escribió en el mensaje
>> > news:eE#SB4x#
>> >> Hola Valdov y gracias por contestar.
>> >>
>> >> No se si te entiendo bien. A ver... Tengo una página buscar (en
> realidad
>> > es
>> >> la página "Buscar" en la primera web de mi firma) con un solo campo
>> >> (txtBuscar) para captar el texto de busqueda. Una vez lo recojo, lo
> paso
>> >> a
>> >> una función que se encarga de construir la cadena SQL y demás cosas.
>> >> Viene
>> > a
>> >> ser algo así:
>> >>
>> >> Dim ResultadosBusqueda
>> >>
>> >> ResultadosBusqueda > >> >> FuncionResultadosBusqueda(Request.Form("txtBuscar"))
>> >>
>> >> y en esa función:
>> >>
>> >> FuncionResultadosBusqueda(TextoABuscar)
>> >> Dim SQL
>> >>
>> >> TextoABuscar= "'%" & TextoABuscar & "%'"
>> >>
>> >> SQL = "SELECT MiCampo FROM MiTabla WHERE MiCampo Like " &
>> > TextoABuscar
>> >>
>> >> etc...
>> >>
>> >> ¿se corresponde esto con lo que me comentabas?
>> >>
>> >> lo de pasarlo por el Url ya se me escapa, no se a qué te refieres.
>> >>
>> >> Muchas gracias.
>> >>
>> >> Saludos,
>> >> Juan M Afan de Ribera
>> >> [MVP Access]
>> >> http://www.accessvbafaq.mvp-access.com
>> >> http://www.mvp-access.com/juanmafan
>> >>
>> >>
>> >> "Valdov" escribió en el mensaje
>> >> news:u5OaEfx%
>> >> > En Asp deberia quedar algo como:
>> >> >
>> >> > SELECT MiCampo FROM MiTabla WHERE MiCampo Like '%" & variable &
>> >> > "%'"
>> >> >
>> >> > o bien, si el parametro lo capturas en una pantalla antes en una
>> >> > caja
>> >> > de
>> >> > texto de un form:
>> >> >
>> >> > SELECT MiCampo FROM MiTabla WHERE MiCampo Like '%" &
>> >> > request.form("param")
>> >> > & "%'"
>> >> >
>> >> > o si pasas el dato por el url:
>> >> >
>> >> > SELECT MiCampo FROM MiTabla WHERE MiCampo Like '%" &
>> >> > request.querystring("param") & "%'"
>> >> >
>> >> > Valdov - Omar Valdovino
>> >> >
>> >> >
>> >> > "Juan M Afan de Ribera" escribió en el


mensaje
>> >> > news:u6t9e3v#
>> >> >> Hola a todos,
>> >> >>
>> >> >> Estoy probando una consulta para hacer búsquedas con una base de
> datos
>> >> >> Access. Esta consulta tiene un parámetro de búsqueda, por el que


se
>> > busca
>> >> > en
>> >> >> varios campos. Si configuro el parámetro dentro de la sentencia


SQL
> de
>> >> > esta
>> >> >> forma (y resumiendo mucho la consulta):
>> >> >>
>> >> >> SELECT MiCampo
>> >> >> FROM MiTabla
>> >> >> WHERE MiCampo Like '%' & [param] & '%'
>> >> >>
>> >> >> y después, a través de una página ASP que recoge ese parámetro de
>> >> > búsqueda,
>> >> >> escribo "[" (sin comillas), me aparece el siguiente error:
>> >> >>
>> >> >> "
>> >> >> Información técnica (para personal de soporte técnico)
>> >> >> Tipo de error:
>> >> >> Microsoft JET Database Engine (0x80040E14)
>> >> >> Cadena modelo no válida
>> >> >> ...
>> >> >> ...
>> >> >>
>> >> >> Datos de POST:
>> >> >> txtBuscar=%5B
>> >> >> "
>> >> >>
>> >> >> En cambio, si en la consulta configuro el parámetro de esta otra
>> >> >> forma:
>> >> >>
>> >> >> SELECT MiCampo
>> >> >> FROM MiTabla
>> >> >> WHERE InStr(MiCampo, [param]) > 0
>> >> >>
>> >> >> el introducir el mismo carácter "[" funciona sin más problemas
>> >> >>
>> >> >> ¿A qué se debe esta anomalía? Prefiero utilizar Like siempre que
> puedo
>> > en
>> >> >> vez de una función, pues es bastante más rápido.
>> >> >>
>> >> >> Muchas gracias.
>> >> >>
>> >> >>
>> >> >>
>> >> >> Saludos,
>> >> >> Juan M Afan de Ribera
>> >> >> [MVP Access]
>> >> >> http://www.accessvbafaq.mvp-access.com
>> >> >> http://www.mvp-access.com/juanmafan
>> >> >>
>> >> >>
>> >> >
>> >> >
>> >>
>> >>
>> >
>> >
>>
>>
>
>


Respuesta Responder a este mensaje
#8 Juan M Afan de Ribera
17/01/2005 - 22:16 | Informe spam
Bueno, si te refieres a que has hecho pruebas en mi web, ahora ya lo he
cambiado para que no de error. Si no te refieres a eso, el mensaje de encima
(en el que en vez de enviárselo al destinatario lo envié a este grupo, por
error) era para el Búho, que se que también ataca bases de datos Access y
tiene un buscador. Lo probé allí con su buscador y me sucedía lo mismo que a
mí. El también lo arregló y ahora ya no le cuelga la bd.

En fin, de momento es un misterio para mí, pero seguro que hay alguna razón
de esas curiosas que tendrá el SQL de Access, no se.

Valdov, muchas gracias por tu ayuda e interés.

Saludos,
Juan M Afan de Ribera
[MVP Access]
http://www.accessvbafaq.mvp-access.com
http://www.mvp-access.com/juanmafan


"Valdov" escribió en el mensaje
news:OjlOACF$
Pues entonces no se que suceda, yo he estado haciendo pruebas con tu query
y
me funciona de maravilla

Valdov - Omar Valdovino

"Juan M Afan de Ribera" escribió en el mensaje
news:uU58MX0#
> La pregunta es como le asignas el valor al parametro?

El parámetro lo asigno tal como comentaba antes, lo recojo de la
colección
Form con el método Request, lo paso a una función. En esa función tengo


una
sentencia SQL parecida a esta:

SQL = "SELECT MiCampo FROM MiTabla WHERE MiCampo Like " &


TextoABuscar

donde TextoABuscar es el valor del parámetro al cual anteriormente, en
esa
misma función, le he añadido un "%" al principio y al final.

Esto es lo que está en la página en la web. Ahora en local, he estado
haciendo pruebas con una consulta compilada en Access, en la cual está
establecido que pida un parámetro. Este parámetro se lo paso a través de


la
colección Parameters de un objeto Command. Pero si la consulta (tanto la
compilada en Access como la que viene a partir de la sentencia SQL que
expongo más arriba) utiliza el operador Like, entonces se produce el


error.
Si, en vez de utilizar el operador Like utilizo la función InStr,
entonces
funciona perfectamente. ¿no es esto raro? En fin...

No se, esto lo preguntaba por saber cosas, pues ya me va bien con el


InStr,
aunque es más lento que el operador Like.

Saludos,
Juan M Afan de Ribera
[MVP Access]
http://www.accessvbafaq.mvp-access.com
http://www.mvp-access.com/juanmafan


"Valdov" escribió en el mensaje
news:u16dtwy%
> La pregunta es como le asignas el valor al parametro?, efectivamente el
> query esta bien establecido si lo ejecutas en access directamente, pero
> porque access te manda un input pidiendote el valor del parametro, aca


no
> te
> va a pedir el parametro.
>
> Información técnica (para personal de soporte técnico)
> Tipo de error:
> Microsoft JET Database Engine (0x80040E14)
> Cadena modelo no válida -- esta mal el query
>
> Valdov - Omar Valdovino
>
>
> "Juan M Afan de Ribera" escribió en el mensaje
> news:uWnruWy#
>> Por favor, responde a este mensaje y dinos si te funcionó o no.
>> Gracias
>>
>> Ahh. Vale, jejeje, gracias por la info. Es que no estoy muy ducho con


los
>> términos empleados en ASP.
>>
>> Igualmente, tal vez mi pregunta original no se entendió (o yo, que no


me
>> entero):
>>
>> Si hago una consulta en la que utilizo el Like % parametro % y le paso


el
>> valor "[" (con otros valores funciona bien) en ese parametro, la
>> página
>> casca y envía el mensaje de error antes mencionado. Si en vez de


utilizar
>> Like, utilizo la función InStr(Cadena_donde_buscar, parametro) da
>> igual
>> lo
>> que ponga en el valor parametro, que la consulta funciona
>> perfectamente
>> bien.
>>
>> ¿a qué se debe esto?
>>
>> Saludos,
>> Juan M Afan de Ribera
>> [MVP Access]
>> http://www.accessvbafaq.mvp-access.com
>> http://www.mvp-access.com/juanmafan
>>
>>
>> "Valdov" escribió en el mensaje
>> news:ekws6Cy%
>> > Ok, tu mismo lo dijiste, estas usando una caja de texto y al hacer
>> > click
>> > en
>> > un boton buscar se lleva a cabo la misma sobre la misma pantalla.


Esto
> con
>> > el dato a buscar oculto (va en el post).
>> >
>> > Con lo de la url me referia a algo como esto:
>> >
>> > tu entras a una página: p.e. www.hotmail.com
>> >
>> > inmediatamente se te redirecciona a:
>> > http://login.passport.net/uilogin.srf?id=2
>> >
>> > si te fijas termina con un ?id=2
>> >
>> > id es un parametro que estan pasando a uilogin.srf
>> >
>> > y si te fijas ya le asignan el valor deseado. estos parametros los
> recojes
>> > con request.querystring en lugar de request.form.
>> >
>> > Espero haberme explicado y como decía el chavo del ocho: "La idea es
> esa".
>> > :)
>> > Valdov - Omar Valdovino
>> >
>> >
>> > "Juan M Afan de Ribera" escribió en el mensaje
>> > news:eE#SB4x#
>> >> Hola Valdov y gracias por contestar.
>> >>
>> >> No se si te entiendo bien. A ver... Tengo una página buscar (en
> realidad
>> > es
>> >> la página "Buscar" en la primera web de mi firma) con un solo campo
>> >> (txtBuscar) para captar el texto de busqueda. Una vez lo recojo, lo
> paso
>> >> a
>> >> una función que se encarga de construir la cadena SQL y demás
>> >> cosas.
>> >> Viene
>> > a
>> >> ser algo así:
>> >>
>> >> Dim ResultadosBusqueda
>> >>
>> >> ResultadosBusqueda >> >> >> FuncionResultadosBusqueda(Request.Form("txtBuscar"))
>> >>
>> >> y en esa función:
>> >>
>> >> FuncionResultadosBusqueda(TextoABuscar)
>> >> Dim SQL
>> >>
>> >> TextoABuscar= "'%" & TextoABuscar & "%'"
>> >>
>> >> SQL = "SELECT MiCampo FROM MiTabla WHERE MiCampo Like " &
>> > TextoABuscar
>> >>
>> >> etc...
>> >>
>> >> ¿se corresponde esto con lo que me comentabas?
>> >>
>> >> lo de pasarlo por el Url ya se me escapa, no se a qué te refieres.
>> >>
>> >> Muchas gracias.
>> >>
>> >> Saludos,
>> >> Juan M Afan de Ribera
>> >> [MVP Access]
>> >> http://www.accessvbafaq.mvp-access.com
>> >> http://www.mvp-access.com/juanmafan
>> >>
>> >>
>> >> "Valdov" escribió en el mensaje
>> >> news:u5OaEfx%
>> >> > En Asp deberia quedar algo como:
>> >> >
>> >> > SELECT MiCampo FROM MiTabla WHERE MiCampo Like '%" & variable &
>> >> > "%'"
>> >> >
>> >> > o bien, si el parametro lo capturas en una pantalla antes en una
>> >> > caja
>> >> > de
>> >> > texto de un form:
>> >> >
>> >> > SELECT MiCampo FROM MiTabla WHERE MiCampo Like '%" &
>> >> > request.form("param")
>> >> > & "%'"
>> >> >
>> >> > o si pasas el dato por el url:
>> >> >
>> >> > SELECT MiCampo FROM MiTabla WHERE MiCampo Like '%" &
>> >> > request.querystring("param") & "%'"
>> >> >
>> >> > Valdov - Omar Valdovino
>> >> >
>> >> >
>> >> > "Juan M Afan de Ribera" escribió en el


mensaje
>> >> > news:u6t9e3v#
>> >> >> Hola a todos,
>> >> >>
>> >> >> Estoy probando una consulta para hacer búsquedas con una base de
> datos
>> >> >> Access. Esta consulta tiene un parámetro de búsqueda, por el que


se
>> > busca
>> >> > en
>> >> >> varios campos. Si configuro el parámetro dentro de la sentencia


SQL
> de
>> >> > esta
>> >> >> forma (y resumiendo mucho la consulta):
>> >> >>
>> >> >> SELECT MiCampo
>> >> >> FROM MiTabla
>> >> >> WHERE MiCampo Like '%' & [param] & '%'
>> >> >>
>> >> >> y después, a través de una página ASP que recoge ese parámetro
>> >> >> de
>> >> > búsqueda,
>> >> >> escribo "[" (sin comillas), me aparece el siguiente error:
>> >> >>
>> >> >> "
>> >> >> Información técnica (para personal de soporte técnico)
>> >> >> Tipo de error:
>> >> >> Microsoft JET Database Engine (0x80040E14)
>> >> >> Cadena modelo no válida
>> >> >> ...
>> >> >> ...
>> >> >>
>> >> >> Datos de POST:
>> >> >> txtBuscar=%5B
>> >> >> "
>> >> >>
>> >> >> En cambio, si en la consulta configuro el parámetro de esta otra
>> >> >> forma:
>> >> >>
>> >> >> SELECT MiCampo
>> >> >> FROM MiTabla
>> >> >> WHERE InStr(MiCampo, [param]) > 0
>> >> >>
>> >> >> el introducir el mismo carácter "[" funciona sin más problemas
>> >> >>
>> >> >> ¿A qué se debe esta anomalía? Prefiero utilizar Like siempre que
> puedo
>> > en
>> >> >> vez de una función, pues es bastante más rápido.
>> >> >>
>> >> >> Muchas gracias.
>> >> >>
>> >> >>
>> >> >>
>> >> >> Saludos,
>> >> >> Juan M Afan de Ribera
>> >> >> [MVP Access]
>> >> >> http://www.accessvbafaq.mvp-access.com
>> >> >> http://www.mvp-access.com/juanmafan
>> >> >>
>> >> >>
>> >> >
>> >> >
>> >>
>> >>
>> >
>> >
>>
>>
>
>






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