Avatar billede vd-per Nybegynder
27. august 2003 - 12:05 Der er 17 kommentarer og
1 løsning

form/access database - link dropdown med 2 valgfri textfields

jeg har 3 felter i en form der henter data fra en access DB

DIM strFORM, strMAXPRIS, strSEARCH
strFORM = Trim(Request.Form("produkt")) (dropdown)
strMAXPRIS = Trim(Request.Form("maxpris")) (textfield)
strSEARCH = Trim(Request.Form("sogeord")) (textfield)

dropdown menu'en skal vælges, men maxpris og sogeord er valgfri. dvs.:
produkt
produkt + maxpris
produkt + sogeord
produkt + maxpris + sogeord
er mulighederne.

produkt(dropdown):
strSQL = "Select * from Kampange"

maxpris(textfield):
strSQL = "Select * from Kampange WHERE pris <= " & strMAXPRIS

sogeord(textfield):
strSQL = "SELECT * FROM Kampange WHERE"
strSQL = strSQL & " (Varenr LIKE '%" & strSEARCH & "%')"
strSQL = strSQL & " OR (Producent LIKE '%" & strSEARCH & "%')"
strSQL = strSQL & " OR (Varenavn LIKE '%" & strSEARCH & "%')"
strSQL = strSQL & " OR (Pris LIKE '%" & strSEARCH & "%')"

De virker enkeltvis, men jeg har problemer med a linke dem sammen

haaber jeg har gjordt mig forstaalig.

//Per
Avatar billede gertp Nybegynder
27. august 2003 - 12:08 #1
strSQL = "SELECT * FROM Kampange WHERE"
strSQL = strSQL & " (Varenr LIKE '%" & strSEARCH & "%')"
strSQL = strSQL & " OR "
strSQL = strSQL & " (Producent LIKE '%" & strSEARCH & "%')"
....
Avatar billede vd-per Nybegynder
27. august 2003 - 12:12 #2
søge funktionen virker fint, det jeg har problemer med er hvis der bliver skrevet i maxpris ell. sogeord ell. begge paa samme tid.
Avatar billede socle Nybegynder
27. august 2003 - 12:24 #3
'produkt(dropdown):
strSQL = "Select * from Kampange"

'maxpris(textfield):
if strMAXPRIS <> "" then
  strSQL = strSQL & " WHERE pris <= " & strMAXPRIS & " OR "
end if

'sogeord(textfield):
if strSEARCH <> "" then
strSQL = strSQL & " (Varenr LIKE '%" & strSEARCH & "%')"
strSQL = strSQL & " OR (Producent LIKE '%" & strSEARCH & "%')"
strSQL = strSQL & " OR (Varenavn LIKE '%" & strSEARCH & "%')"
strSQL = strSQL & " OR (Pris LIKE '%" & strSEARCH & "%')"
else
strSQL = left(strSQL, len(strSQL)-4)
end if
Avatar billede socle Nybegynder
27. august 2003 - 12:27 #4
'funktion m. fleksibel AND/OR
'produkt(dropdown):
sincl = " AND " 'alternativt OR

strSQL = "Select * from Kampange"

'maxpris(textfield):
if strMAXPRIS <> "" then
  strSQL = strSQL & " WHERE pris <= " & strMAXPRIS & sincl
end if

'sogeord(textfield):
if strSEARCH <> "" then
strSQL = strSQL & " (Varenr LIKE '%" & strSEARCH & "%')"
strSQL = strSQL & sincl & "(Producent LIKE '%" & strSEARCH & "%')"
strSQL = strSQL & sincl & "(Varenavn LIKE '%" & strSEARCH & "%')"
strSQL = strSQL & sincl & "(Pris LIKE '%" & strSEARCH & "%')"
else
strSQL = left(strSQL, len(strSQL)-len(sincl))
end if
Avatar billede socle Nybegynder
27. august 2003 - 12:30 #5
der er en fejl, øjeblik
Avatar billede socle Nybegynder
27. august 2003 - 12:34 #6
jeg tror nok den her virker:

'funktion m. fleksibel AND/OR
'produkt(dropdown):
sincl = " AND " 'alternativt OR

strSQL = "Select * from Kampange"

'maxpris(textfield):
if strMAXPRIS <> "" then
  strSQL = strSQL & " WHERE pris <= " & strMAXPRIS & sincl
elseif strSEARCH <> "" then
  strSQL = strSQL & " WHERE "
end if

'sogeord(textfield):
if strSEARCH <> "" then
strSQL = strSQL & " (Varenr LIKE '%" & strSEARCH & "%')"
strSQL = strSQL & sincl & "(Producent LIKE '%" & strSEARCH & "%')"
strSQL = strSQL & sincl & "(Varenavn LIKE '%" & strSEARCH & "%')"
strSQL = strSQL & sincl & "(Pris LIKE '%" & strSEARCH & "%')"
elseif strMAXPRIS <> "" then
    strSQL = left(strSQL, len(strSQL)-len(sincl))
end if
Avatar billede vd-per Nybegynder
27. august 2003 - 12:50 #7
var lige ud og spise frokost, tester det lige.
Avatar billede vd-per Nybegynder
27. august 2003 - 12:55 #8
maxpris virker, men hvis jeg bruger sogeord siger den:

Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
Avatar billede socle Nybegynder
27. august 2003 - 13:01 #9
hmm, det lyder mere som om det kommer fra det sted du begynder at behandle de data der er hentet ud fra databasen. Har du en rs.close før du er færdig med at hente data m. rs("navn")?
Avatar billede socle Nybegynder
27. august 2003 - 13:03 #10
har lige testet sql strengen og den ser fin ud her
Avatar billede vd-per Nybegynder
27. august 2003 - 13:04 #11
er neders paa siden

Conn.Close
Set Conn = Nothing
Avatar billede socle Nybegynder
27. august 2003 - 13:08 #12
ah, nu tror jeg jeg ved det.

jeg har sat sincl til " AND " hvilket er ret mange krav der så skal opfyldes. Derfor findes der sikert slet ikke nogen data i udtrækket og der er nok ikke nogen test herfor:

if not rs.eof then
'indsæt kode hvis der findes data
end i

prøv at sætte sincl til " OR " i stedet, så kommer der sikkert noget, altså:

'funktion m. fleksibel AND/OR
'produkt(dropdown):
sincl = " OR " 'alternativt AND
'i stedet for sincl = " AND " 'alternativt OR
Avatar billede vd-per Nybegynder
27. august 2003 - 13:18 #13
ja nu virker det, men hvis jeg skriver maxpris 400 og sogeord test
kommer alle poster frem med test (ogsaa over 400,-)
og alle poster med en pris paa 400 ell. under kommer ogsaa med.

hvis du ikke har tid ell. lyst er det fint, kun faa point alligevel da du har brugt tid og energy paa at hjaelpe mig lidt videre.
Avatar billede vd-per Nybegynder
27. august 2003 - 13:26 #14
Mange tak for din hjaelp saa har jeg laert lidt mere i ASP
haaber ikke jeg har taget al for meget af din tid

og som sagt hvis du har en ide til hvordan jeg for dem til at arbejde sammen med ogsaa uafhængig af hinanden)
Avatar billede socle Nybegynder
27. august 2003 - 13:26 #15
yep, hvis du sætter sincl til AND, så kommer kun poster med søgeordet 'test' til max 400,-

hvid du sætter sincl til OR, så får du det du skriver øverst. Det er egentlig grunden til at jeg satte AND/OR i en variabel, så er det lettere at integrere i siden som brugervalg, f.eks. m. en radio, eller en checkbox. Det er self. ikke super fleksibelt fordi man ikke kan kombinere AND/OR mellem de forskellige datatyper.
Avatar billede vd-per Nybegynder
27. august 2003 - 13:33 #16
hmm ved du hvad jeg fjerner søgefunktionen da den ikke betyder ret meget da du kun kan søge under de forskellige DB Tables og ikke allesammen paa en gang

laver maaske en generel søgefunktion et andet sted paa siden.
tak for din hjaelp er blevet sat godt igang igen.

//Per
Avatar billede vd-per Nybegynder
27. august 2003 - 13:36 #17
mener sogeord
beholder maxpris
Avatar billede socle Nybegynder
27. august 2003 - 13:39 #18
ok, tak for point
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