Avatar billede 12tri Nybegynder
13. juli 2001 - 20:11 Der er 4 kommentarer og
2 løsninger

Søgning i flere tabeller i access database

jeg har fundet dette script på http://www.activeserverpages.dk/aspdigital/kapitel2/search.asp og det virker fint:

<%
strKeyword = Trim(Request.Form(\"Keyword\"))
If Len(strKeyword) = 0 Then
Response.Clear
Response.Redirect(\"http://morten/fejl.asp\")
Else
strKeyword = Replace(strKeyword,\"\'\",\"\'\'\")
End If
strSQL = \"SELECT id, overskrift, beskrivelse, kildenavn, indhold FROM artikler or WHERE\"
strSQL = strSQL & \" (overskrift LIKE \'%\" & strKeyword & \"%\')\"
strSQL = strSQL & \" OR (beskrivelse LIKE \'%\" & strKeyword & \"%\')\"
strSQL = strSQL & \" OR (kildenavn LIKE \'%\" & strKeyword & \"%\')\"
strSQL = strSQL & \" OR (indhold LIKE \'%\" & strKeyword & \"%\')\"
strDSN = \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" &(\"C:\\Inetpub\\access\\db.mdb\")
Set myConn = Server.CreateObject(\"ADODB.Connection\")
myConn.Open strDSN
Set rs = myConn.Execute(strSQL)
If Not (rs.BOF Or rs.EOF) Then
Do While Not rs.EOF
%>
<IMG SRC=\"../img/pil.gif\" BORDER=\"0\" WIDTH=\"12\" HEIGHT=\"10\" ALIGN=\"bottom\" ALT=\"\"><a HREF=http://morten/artikler/read.asp?id=<%=rs(\"Id\")%>><b><%=rs(\"overskrift\")%></b></a><BR>
<%=rs(\"beskrivelse\")%>
<BR><BR>
<%
rs.MoveNext
Loop
Else
Response.Write \"<p>Der er ikke fundet noget på denne søgning</p>\"
End If
myConn.Close
Set myConn = Nothing
%>

men jeg vil gerne have mulighed for at søge flere tabeller i databasen igennem på samme tid og vælge hvilke som skal søges i. Jeg havde forstillet mig at men kunne gøre således, ændre:

strSQL = \"SELECT id, overskrift, beskrivelse, kildenavn, indhold FROM artikler WHERE\"

Til

strSQL = \"SELECT id, overskrift, beskrivelse, kildenavn, indhold FROM artikler or forum WHERE\" 

Men det virker ikke:

Microsoft OLE DB Provider for ODBC Drivers fejl \'80040e14\'
[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl i FROM-delsætningen.

Udover dette problem vil jeg gerne have hjælp til noget andet vedr. denne søgefunktion:

Jeg har på alle mine side et søge felt under min menu, denne formular er meget simpel:

<form action=\"http://morten/soeg/default.asp\" method=\"post\">
<input type=\"text\" name=\"keyword\">
<input type=\"submit\" name=\"Action\" value=\"SØG\">
</form>

Og den virker fint. Men som en udbygning på overstående problem vil jeg gerne lave en søge side, med en mere kompliceret formular hvor man ved at krydse, kan vælge hvilke tabeller man ønsker der skal søges i.

Er det muligt at lave, og hvordan ?
Avatar billede tmceu Praktikant
13. juli 2001 - 20:39 #1
Du kan ikke gøre det du prøver med strSQL = \"SELECT id, overskrift, beskrivelse, kildenavn, indhold FROM artikler or forum WHERE

OR kan kun bruges i WHERE delen af en SELECT, som en del af kriteriet.

Har du prøvet det som bredum foreslog i http://www.eksperten.dk/spm/88843 ?

Du kan kun søge i flere recordset i eks. SQL Server, men ikke Access, da den kun kan returnerer ét recordset.

Mvh
Thomas
Avatar billede jasp.dk Nybegynder
13. juli 2001 - 23:01 #2
Sql = \"Select tabel_1.tekst, tabel_2.tekst2 from tabel_1, tabel_2 where tabel_1.id=\"&id&\" or tabel_2.id=\"&id&\"\"
Avatar billede tmceu Praktikant
14. juli 2001 - 00:13 #3
jasp.dk >> uden at ville betvivle at ovenstående kan lade sig gøre, vil jeg mene at det recordset du får tilbage med ovenstående SELECT bliver rimelig svært at håndtere, specielt hvis 12tri vil vise i hvilken tabel kriteriet er fundet, hvis der er navnesammenfald på kolonner m.v..

Avatar billede jasp.dk Nybegynder
14. juli 2001 - 00:59 #4
tmceu : her er så en løsning på det!

Sql = \"Select tabel_1.tekst As tekst1, tabel_2.tekst as tekst2 from tabel_1, tabel_2 where tabel_1.id=1 and tabel_2.id=1\"

http://www.jasp.dk/eksempler/eks1/eks1.rar
Avatar billede jasp.dk Nybegynder
14. juli 2001 - 01:01 #5
hov glemte lige :
http://www.jasp.dk/eksempler/eks1/

Se det i action :-)
Avatar billede 12tri Nybegynder
16. september 2001 - 12:08 #6
tak for hjælpen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester