Varför får jag detta felmeddelandet..? För att din SQL sats är fel :) Vad innehåller QueryString("cs_sok") ? ÄR det typ "ORDER BY Kommando" ? Tackar Nu fattar jag ingetting!! :)Vad e d för fel..?
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] Syntax error in FROM clause.
/HL & CS kommandon/search_cs.asp, line 30
Koden ser ut såhär:
<%
SORT = Request.QueryString("cs_sok")
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("data/command.mdb")&";"
Set RecSet = Server.CreateObject("ADODB.Recordset")
Visa="SELECT * From CounterStrike &SORT& Kommando='"&Request.QueryString("Kommando")&"'"
RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic
DO Until RecSet.EOF
%>
<tr>
<td width="186"><%=RecSet("Kommando")%></td>
<td width="314"> <%=RecSet("Beskrivning")%></td>
<%
RecSet.MoveNext
Loop
RecSet.Close
Connect.Close
%>Sv: Vad e d för fel..?
<code>
Visa="SELECT * From CounterStrike &SORT& Kommando='"&Request.QueryString("Kommando")&"'"
</code>
Vad vill du egentligen göra här?
Kommandot &SORT& finns inte i SQL, men du kanske menar WHERE
<code>
Visa="SELECT * From CounterStrike WHERE Kommando='"&Request.QueryString("Kommando")&"'"
</code>
- Magnus
http://www.divxsubtitles.netSv: Vad e d för fel..?
Testa något sådanhär:
<code>
<%
Dim Visa
Dim SORT
Dim RecSet
Dim Connect
Dim fldKommando
Dim fldBeskrivning
SORT = Request.QueryString("cs_sok")
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("data/command.mdb")&";"
Set RecSet = Server.CreateObject("ADODB.Recordset")
Visa = "SELECT *" & vbCrLf & _
"FROM CounterStrike" & vbCrLf & _
"WHERE Kommando = '" & Request.QueryString("Kommando") & "'" & vbCrLf & _
" & SORT
RecSet.Open Visa, Connect
Set fldKommando = RecSet("Kommando")
Set fldBeskrivning = RecSet("Beskrivning")
Do Until RecSet.EOF
%>
<tr>
<td width="186"><%=fldKommando%></td>
<td width="314"> <%=fldBeskrivning%></td>
<%
RecSet.MoveNext
Loop
Set fldKommando = Nothing
Set fldBeskrivning = Nothing
RecSet.Close
Connect.Close
%>
</code>
Några tips:
* Använd Option Explicit: Innebär att du måste deklarera alla variabler. Men underlätttar att finna felstavningar och är snyggare programmering
* Deklarera dina variabler: Det är dålig programmering att inte deklarera variabler.
* Använd rätt recordset:
Efter som du inte uppdaterar och bara förflyttar dig framåt skall du använda adOpenForwardOnly, adLockReadOnly. Detta är standard för oppen satsen. därför tog jag bort dina konstanter.
'RecSet.Open Visa, Connect, adOpenForwardOnly, adLockReadOnly
Är samma som:
'RecSet.Open Visa, Connect
* Fältvariabler snabbar upp loopen lite.Sv: Vad e d för fel..?
men d e såhär, att istället för att använda WHERE så ska jag använda &SORT& som kollar vad man har valt för sök alternativ
t ex:
Ungefär
Lika med o.s.v
hur gör jag då..?Sv: Vad e d för fel..?
Om du vill ha en sökning där man skall få träffar på något som är inärheten av det du har skrivit in blir det väldigt svårt...
Det finns en lösning som du kanske skulle kunna använda, men den fungerar inte riktigt som du vill.
Den hetter LIKE
<code>
SELECT * FROM [TABELL_NAME] WHERE [KOLUMN_NAMN] LIKE 'ma%'
</code>
Om du nu har några namn i din kolumn_Namn som börjar på ma alltså.
Magnus
Martin
Mats
så kommer de 3 att ge träff.
Men om du skulle skriva in så här istället
<code>
SELECT * FROM [TABELL_NAME] WHERE [KOLUMN_NAMN] LIKE 'matts%'
</code>
Så skulle du inte få någon träff fast mats är nästan samma som matts.
Vet inte om jag förstod dig rätt då får förklara mer hur du exakt vill att din sökning skall fungera.
- Magnus
http://www.divxsubtitles.net