Avatar billede egenfeldt Nybegynder
11. september 2001 - 20:15 Der er 2 kommentarer

Skal sortere efter 6 forskellige værdier og derefter aflæse yes/no

Jeg har et problem med at hente nogen ting fra en database. Databasen har variablerne business, wireless, history etc. - disse er i en access database sat til enten afkrydset eller ikke afkrydset dvs. værdi 0 el. 1

jeg kan sagtens lave en form, hvor jeg får hentet value \'business\' el. \'history\' el. wireless etc., men hvordan får jeg gjort så den går ned i denne enkelte variable og ligger de poster til som har værdien 1?

Mit script ser ud som nedenfor - håber nogen kan hjælpe - det er den sidste hurdle i mit newbie databaseprojekt :-)

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

strsprog= Request.Form(\"sprog\")
strwriting= Request.Form(\"writing\")
strrelevance = Request.Form(\"relevance\")

strpick = Request.Form(\"pick\")

strKeyword = Replace(strKeyword,\"\'\",\"\'\'\")



\' Opbygger en dynamisk SQL streng
strSQL = \"SELECT author, title, pa, publisher, freetext, url FROM users WHERE \"
strSQL = strSQL & \" ((author LIKE \'%\" & strKeyword & \"%\')\"
strSQL = strSQL & \" OR (title LIKE \'%\" & strKeyword & \"%\')\"
strSQL = strSQL & \" OR (publisher LIKE \'%\" & strKeyword & \"%\')\"
strSQL = strSQL & \" OR (freetext LIKE \'%\" & strKeyword & \"%\')\"
strSQL = strSQL & \" OR (url LIKE \'%\" & strKeyword & \"%\'))\"



\' Checker om der er skrevet i felterne
if Len(strsprog) > 0 then
    strSQL = strSQL & \" AND    (sprog = \'\" & strsprog & \"\')\"

else strSQL =strSQL
end if

if Len(strwriting) > 0 then
    strSQL = strSQL & \" AND    (writing = \'\" & strwriting & \"\')\"
end if

if Len(strrelevance) > 0 then
    strSQL = strSQL & \" AND    (relevance = \'\" & strrelevance & \"\')\"

end If

if Len(strpick) > 0 then
    strSQL = strSQL & \" AND    (pick \'\" & strpick & \"\')\"

end If


strSQL = strSQL & \" ORDER by author\"

+ selvfølgelig noget omkring connection open and close samt response.write kommandoer! Hvis jeg fjerner den sidste if kommando lige herover får jeg ingen fejl!

Fejlmeddelsen er Microsoft OLE DB Provider for ODBC Drivers fejl \'80040e10\'

[Microsoft][ODBC Microsoft Access-driver] Der er for få parametre. Der var ventet 1.

/searchv3.asp, linje 55 (Set rs = myConn.Execute(strSQL))


Hvis det er nemmere kan jeg sagtens sende databasefil, form side eller selve asp-siden. Min email er simon.egenfeldt@12move.dk
Avatar billede proaccess Nybegynder
12. september 2001 - 08:47 #1
Du mangler et \'=\' ...


if Len(strpick) > 0 then
    strSQL = strSQL & \" AND    (pick = \'\" & strpick & \"\')\"
end If

Avatar billede egenfeldt Nybegynder
14. september 2001 - 08:05 #2
Jeg kan godt se jeg mangler et = det må være smuttet i kopieringen af scriptet, det er ikke problemet. Jeg er kommet lidt nærmere problemet nu. Det som jeg skal have gjort er at jeg have lavet den værdi som er i pick f.eks. wireless lavet om til en variable, som der spørges efter i databasen 

MVH Simon
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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