Jag gissar att dina variabler är tomma. Kontrollera att formulärsfältsnamnen stämmer överens med det du requestar in, samt att du angett metoden POST i <form>-taggen.
Mvh,
13 svar · 309 visningar · startad av ampy
<% If Request.Querystring("vad") = "sok1" Then
namn = Request.Form("namn") & "%"
username = Request.Form("username") & "%"
stad = Request.Form("stad") & "%"
kon = Request.Form("kon") & "%"
SQL = "Select from members Where namn LIKE '" & namn & "' AND username LIKE '" & username & "' AND stad LIKE '" & stad & "' AND kon LIKE '" & kon & "' Order by username desc"
RecSet.Open SQL, Connect, adOpenStatic, adLockOptimistic
If Not RecSet.EOF Then
Do Until RecSet.EOF
Response.Write RecSet("username") & "<br>"
RecSet.Movenext
Loop
Else
Response.Write "Inga medlemmar hittades vid sökningen."
End If
End If
%>
När jag söker på tex Bertil på username så skriver den ändå ut Andreas.
Alla fälten är av typen text så vad kan vara felet?
Jag gissar att dina variabler är tomma. Kontrollera att formulärsfältsnamnen stämmer överens med det du requestar in, samt att du angett metoden POST i <form>-taggen.
Mvh,
Hade fel som jag rättade till men nu får jag detta fel:
Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Drivrutin för ODBC Microsoft Access] SELECT-uttrycket innehåller ett reserverat ord eller argument som antingen är felstavat eller utelämnat, eller så är skiljetecknen felaktigt använda.
SQL-strängen
SQL = "Select from members Where namn LIKE '" & namn & "' AND username LIKE '" & username & "' AND stad LIKE '" & stad & "' AND kon LIKE '" & kon & "' Order by username desc"
Får du samma fel om du klamrar dina kolumnnamn?
Om du använder svensk Access kan det finnas svenska ord du inte bör använda som tabell- eller fältnamn, exempelvis namn. Prova därför att ange fältnamnen inom [].
Mvh,
Gjorde så här nu men det funkar inte heller:
namn2 = Request.Form("namn") & "%"
username2 = Request.Form("username") & "%"
stad2 = Request.Form("stad") & "%"
kon2 = Request.Form("kon") & "%"
SQL = "Select from [members] Where [namn2] LIKE '" & namn2 & "' AND [username] LIKE '" & username2 & "' AND [stad] LIKE '" & stad2 & "' AND [kon] LIKE '" & kon2 & "' Order by username desc"
Får samma felmeddelande.
Hur ser den färdiga SQL-frågan ut om du skriver ut den med Response.write innan execute?
Om du menar att jag ska skriva så här:
Response.Write Execute(SQL)
så får jag detta:
Feltyp:
Kompileringsfel i Microsoft VBScript (0x800A03FD)
'Case' förväntas.
På den raden jag visade ovan.
Det var inte så du skulle skriva.
Response.Write SQL
Så så har du möjlighet att se vad som händer när du sedan kör SQL:en.
;)
Om jag skriver så här:
SQL = "Select from [members] Where [namn2] LIKE '" & namn2 & "' AND [username] LIKE '" & username2 & "' AND [stad] LIKE '" & stad2 & "' AND [kon] LIKE '" & kon2 & "' Order by username desc"
Response.Write SQL
[b]RecSet.Open SQL, Connect, adOpenStatic, adLockOptimistic[/b]
Så får jag samma felmeddelande som förut fast på den raden som är fetare här ovan.
Nu ser jag vad jag missat tidigare...
Du har glömt specificera vilka fält du vill ska hämtas från tabellen.
Mvh,
Det har jag väl inte, alla inom [] är ju fälten förutom det första som är tabellen.
SQL = "Select [u][b]här skall man ange vilka fält man vill hämta [/b][/u]from [members] Where [namn2] LIKE '" & namn2 & "' AND [username] LIKE '" & username2 & "' AND [stad] LIKE '" & stad2 & "' AND [kon] LIKE '" & kon2 & "' Order by username desc"
Jo lyssna på @nders.
SQL = "SELECT [b]*[/b] FROM [members] WHERE [namn2] LIKE '" & namn2 & "' AND [username] LIKE '" & username2 & "' AND [stad] LIKE '" & stad2 & "' AND [kon] LIKE '" & kon2 & "' Order by username desc"