Te voy a dar una idea que talvés te sirva, a lo mejor no sea la más adecuada en cuanto a rendimiento ni a rapidez, pero por lo menos me ha servido a mí.
La idea básica consiste en crear vistas (o consultas almacenadas) dentro de la base de datos de forma tal que te devuelvan todas igual número de campos para luego unirlas todas en una sola consulta adonde puedas realizar la búsqueda.
Si por ejemplo tienes una tabla llamada
Nosotros en la cual almacenas un texto descriptivo acerca de la empresa la consulta te podría quedar así:
Código:
SELECT 1 AS id, nosotros.titulo, trim(nosotros.contenido) AS texto,
99 AS dia, 999 AS mes, 9999 AS anio, 1 AS activo, "nosotros.asp" AS vinculo
FROM nosotros;
Llamenos esta consulta
Consulta_Nosotros
Si observas bien, la idea es que todo el texto me quede en el campo
texto para luego utlizarlo para realizar la búsqueda.
Ahora por ejemplo puedes tener una tabla con noticias la consulta puede quedarte así:
Código:
SELECT Noticia.id, Noticia.titulo, trim(Noticia.resumen) &
trim(Noticia.contenido) AS texto,
day(Noticia.fecha) AS dia, month(Noticia.fecha) AS mes,
year(Noticia.fecha) AS anio,
Noticia.activa AS activo, "vnoticias.asp" AS vinculo
FROM Noticia;
Pongámosle de nombre a esta consulta:
Consulta_Noticias
Sucesivamente deberás ir concatenando los campos que necesites dentro del campo texto y obviamente la estructura de todas las consultas debe ser la misma. Al final solamente deberás unir todas las consultas en una sola así:
Código:
SELECT *
FROM Consulta_Nosotros
UNION ALL SELECT *
FROM Consulta_Nosotros_Valores
UNION ALL SELECT *
FROM Consulta_Noticias
UNION ALL SELECT *
FROM Consulta_Publicaciones
UNION ALL SELECT *
FROM Consulta_Agenda
Le pondremos a esta consulta:
Buscar_en_Database
Recuerda que todo esto lo haces dentro de Access.
ahora bien, en tu página web solamente deberás ejecutar una consulta contra la "Tabla"
Buscar_en_Database y listo. Si observas yo he incluido un campo llamado vinculo el cual me servira para saber en que pagina de mi sitio voy a visualizar cada registro devuelto.
El codigo del formulario seria algo asi:
Código:
<form name="buscar" method="post" action="busqueda.asp"
enctype="application/x-www-form-urlencoded">
<fieldset>
<label for="criterio">Buscar:</label>
<input class="criterio" name="criterio" size="20" type="text"
value="<%=Server.HTMLEncode(trim(request.form("criterio")))%>" />>
<input type="submit" value="Buscar" />
</fieldset>
</form>
Y el codigo de busqueda en ASP seria algo como esto:
Código:
<%
criterio=TRIM(Request.Form("criterio"))
Set cRS = Server.CreateObject("ADODB.Recordset")
cRS.ActiveConnection = Conexion_a_tu_DB
cRS.Source = buscar(criterio,year(now()))
cRS.CursorType = 1
cRS.CursorLocation = 2
cRS.LockType = 1
cRS.Open()
Public Function buscar(TxtCriterios,anio)
Dim criterio
TxtCriterios = Replace(TxtCriterios,"'","")
TxtCriterios = Replace(TxtCriterios,"""","")
buscar = "SELECT * FROM Buscar_en_Database WHERE "
For Each criterio In Split(TxtCriterios, " ")
If Len(Trim(criterio)) > 0 Then buscar = buscar & " texto LIKE '%" & trim(criterio) & "%' AND "
Next
buscar = buscar & " 1 = 1 "
End Function
%>
Espero que te sirva.