Avatar billede pxa Nybegynder
05. april 2001 - 12:39 Der er 12 kommentarer og
1 løsning

søg i form bestemt tabel i database

I den nedenstående kode vil jeg søge i en tabel i en access database. Min i stedet for at tage værdien af Table og sidde ind tager den åbenbart bare strTabel som det står. Hvordan får jeg den til at tage værdien?


strTabel = Trim(Request.Form(\"Tabel\"))

strSQL = \"SELECT ID, Titel, Type, Beskrivelse, Katagori, Navn FROM strTabel WHERE\"
Avatar billede mike@work Praktikant
05. april 2001 - 12:46 #1
Den skal se således ud:

strSQL = \"SELECT ID, Titel, Type, Beskrivelse, Katagori, Navn FROM \" & strTabel & \"WHERE\"
Avatar billede pxa Nybegynder
05. april 2001 - 13:07 #2
Nu har jeg skrevet somdu skrev, men så får jeg fejlen:

Microsoft VBScript compilation error \'800a0401\'

Expected end of statement

/cgi-bin/ledelsesnetasptest/searchdatabase/search.asp, line 23

strSQL = \"SELECT ID, Titel, Type, Beskrivelse, Katagori, Navn \" FROM & strTabel & \"WHERE\"

min kode

strSQL = \"SELECT ID, Titel, Type, Beskrivelse, Katagori, Navn \" FROM & strTabel & \"WHERE\"
strSQL = strSQL & \" (Titel LIKE \'%\" & strKeyword & \"%\')\"
strSQL = strSQL & \" OR (Type LIKE \'%\" & strKeyword & \"%\')\"
strSQL = strSQL & \" OR (Beskrivelse LIKE \'%\" & strKeyword & \"%\')\"
strSQL = strSQL & \" OR (Katagori LIKE \'%\" & strKeyword & \"%\')\"
strSQL = strSQL & \" OR (Navn LIKE \'%\" & strKeyword & \"%\')\"
Avatar billede mike@work Praktikant
05. april 2001 - 13:11 #3
Du skal liiigge flytte \" til efter from - Sådan her:

strSQL = \"SELECT ID, Titel, Type, Beskrivelse, Katagori, Navn FROM \" & strTabel & \"WHERE\"
strSQL = strSQL & \" (Titel LIKE \'%\" & strKeyword & \"%\')\"
strSQL = strSQL & \" OR (Type LIKE \'%\" & strKeyword & \"%\')\"
strSQL = strSQL & \" OR (Beskrivelse LIKE \'%\" & strKeyword & \"%\')\"
strSQL = strSQL & \" OR (Katagori LIKE \'%\" & strKeyword & \"%\')\"
strSQL = strSQL & \" OR (Navn LIKE \'%\" & strKeyword & \"%\')\"
Avatar billede pxa Nybegynder
05. april 2001 - 13:15 #4
Det har jeg prøvet nu, men så virker det slet ikke.
Nu siger den at siden ikke kan vises.
Avatar billede mike@work Praktikant
05. april 2001 - 13:28 #5
Hvad får du af fejl ?
Avatar billede pxa Nybegynder
05. april 2001 - 13:29 #6
Denne:

Siden kan ikke vises
Der er problemer med den side, du prøver at åbne, og den kan ikke vises.

--------------------------------------------------------------------------------

Prøv følgende:

Åbn hjemmesiden www.forum-for-outsourcing.dk, og søg efter hyperlinks, der hopper til de ønskede oplysninger.
Klik på knappen  Opdater, eller prøv igen senere.

Klik på  Søg før at søge efter oplysninger på Internettet.
Du kan også se en liste over relaterede Websteder.




HTTP 500 - Intern serverfejl
Internet Explorer 
Avatar billede mike@work Praktikant
05. april 2001 - 13:33 #7
hmm Det siger jo ikke meget - Men din sql linje er i orden, med mindre at felterne ikke findes i DB\'en....

Det er lidt svært det her, når man ikke har mere kode - Post lidt mere, så kigger jeg på det.
Avatar billede pxa Nybegynder
05. april 2001 - 13:35 #8
Her er hele koden.
Koden virker hvis jeg i stedet for strTabel bare skriver tabellen navn.

<% Response.Buffer = True %>
<html><head>
<title>Søgeresultat</title>
</head><body>

<%
\' Henter værdien fra soeg.htm
strKeyword = Trim(Request.Form(\"Keyword\"))

strTabel = Trim(Request.Form(\"Tabel\"))

If Len(strKeyword) = 0 Then
    \' Hvis der ikke er skrevet i feltet
    Response.Clear
    Response.Redirect(\"search.htm\")
Else
    \' Hvis der er skrevet i feltet
    strKeyword = Replace(strKeyword,\"\'\",\"\'\'\")
End If


\' Opbygger en dynamisk SQL streng
strSQL = \"SELECT ID, Titel, Type, Beskrivelse, Katagori, Navn FROM \" & strTabel & \"WHERE\"
strSQL = strSQL & \" (Titel LIKE \'%\" & strKeyword & \"%\')\"
strSQL = strSQL & \" OR (Type LIKE \'%\" & strKeyword & \"%\')\"
strSQL = strSQL & \" OR (Beskrivelse LIKE \'%\" & strKeyword & \"%\')\"
strSQL = strSQL & \" OR (Katagori LIKE \'%\" & strKeyword & \"%\')\"
strSQL = strSQL & \" OR (Navn LIKE \'%\" & strKeyword & \"%\')\"

\' Skaber DSNLess forbindelse til DBen
strDSN = \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\"&Server.MapPath(\"fagbibliotek.mdb\")
Set myConn = Server.CreateObject(\"ADODB.Connection\")
myConn.Open strDSN

\' Skaber et recordset udfra SQL strengen
Set rs = myConn.Execute(strSQL)
If Not (rs.BOF Or rs.EOF) Then
    \' Hvis der er fundet poster på søgningen
    Response.Write \"<p>Søgeresultat</p>\"
    Response.Write \"<table border=1>\"
    Response.Write \"<tr><th>Titel</th><th>Navn</th><th>Beskrivelse</th></tr>\"
    Do While Not rs.EOF
        Response.Write \"<tr><td>\" & rs(\"Titel\") & \"</td>\"
        Response.Write \"<td>\" & rs(\"Navn\") & \"</td>\"
        Response.Write \"<td>\" & rs(\"Beskrivelse\") & \"</td></tr>\"
        rs.MoveNext
    Loop
    Response.Write \"</table>\"
Else
    \' Hvis der ikke er fundet poster på søgningen
    Response.Write \"<p>Der er ikke fundet noget på denne søgning</p>\"
End If

\' Rydder op efter os
myConn.Close
Set myConn = Nothing
%>

</body></html>
Avatar billede mike@work Praktikant
05. april 2001 - 13:42 #9
Ja det lyder mystisk....

Prøv at skriv >> strTabel = TABELNAVN

Efter >> strTabel = Trim(Request.Form(\"Tabel\"))
Avatar billede pxa Nybegynder
05. april 2001 - 13:46 #10
Det virker stadig ikke.
Avatar billede mike@work Praktikant
05. april 2001 - 13:53 #11
Er du sikker på at Din request får tabel navnet med sig ???
Avatar billede pxa Nybegynder
05. april 2001 - 13:57 #12
Da jeg prøvede at sidde strTabel = TABELNAVN
der brude det jo ha virket uanset hvad jeg får fra formen ikke?
Det burde være det samme som at skrive TABELNAVN i stedet for & strTabel &
Så jeg forstår ikke en brik.
jeg er dog også meget ny med dette her :-)
Avatar billede pxa Nybegynder
05. april 2001 - 14:13 #13
Jeg har fundet ud af det.
Der skal stå:

strSQL = \"SELECT ID, Titel, Type, Beskrivelse, Katagori, Navn FROM \" & strTabel & \" WHERE\"

Jeg manglede mellemrummet  mellem \" og WHERE

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