HJÄÄLP! (blir snart galen)

ASP

12 svar · 279 visningar · startad av JAreMANNEN

Medlem sedan aug. 20002 272 inlägg
Trådstart#1

Jag har problem med att "ta emot" rätt information från ett formulär och sedan utföra en sökning i en Access 2000 Databas..

Jag har en sida (search.htm) som innehåller 6st formulär. Nu vill jag att om man bara fyller i ett av fälten ska sökningen endast ske i just den kolumnen i databasen, men om man fyller i tex 4 fält så ska sökningen ske i de fyra kolumnerna..

Jag behöver altså hjälp med den sidan som tar emot formulärinformationen, SQL-satsen...

Såhär ser mina variabler ut..

Dim strSearch, strCompany, strStreet, strPost_nr, strPostcity, strPhone_nr
strSearch = Request.Form("sokord")
strCompany = Request.Form("company")
strStreet = Request.Form("street")
strPost_nr = Request.Form("post_nr")
strPostcity = Request.Form("postcity")
strPhone_nr = Request.Form("phone_nr")

Har försökt i flera dagar nu men får inte till det.. :(

SNÄLLA hjälp mig..

Medlem sedan aug. 20002 272 inlägg
#2

Vad är detta...inte ett enda svar.. :l

Är det SÅ krångligt att göra eller är det ingen som orkar att engagera sig..??

Medlem sedan jan. 20013 039 inlägg
#3

Är det en och samma tabell du vill söka ur, eller skall du ner i olika tabeller beroende på vilka fält som är ifyllda?

Om det är samma tabell förstår jag inte varför du skulle behöva definiera vilka kolumner du skall hämta ifrån. Det är väl bara att hämta upp hela tabellen och lägga den i recordsetet och sedan hämta upp det du vill ha därifrån?

Medlem sedan aug. 20002 272 inlägg
#4

Jovisst, allt ligger i samma tabell..

MEN informationen som ska hämtas är helt beroende av vilket/vilka fält som är ifyllda...

Det är det som är problemet..
Att ifall formulärfält sokord är ifyllt så ska sökningen ske i kolumnen keyword i min databas, men om formulärfälten sokord, company och postcity är ifyllda ska sökningen ske i kolumnerna keyword, company och post_city i databasen..

Förklarar jag dåligt kanske..

Medlem sedan jan. 20013 039 inlägg
#5

Är väl inte så mycket du som förklarar dåligt utan jag som fattar långsamt. ;)

Får tänka till lite och återkomma.
Har jag fattat rätt....du vill ha in värdet du får från de olika request.form in i SQL-satsen? Och de som har värde skall med, de utan värde skall inte med?
Eller har jag tänkt fel (igen)?

Medlem sedan aug. 20002 272 inlägg
#6

Det verkar som om du har förstått saken rätt nu.... :e

Medlem sedan jan. 20013 039 inlägg
#7

Har funderat lite och har inget klart svar men en tanke. (alltid något kanske)

Skall det se ut ungefär så här?
sql="Select * from tabell where sokord=1 And city=2 And company=3;"

...och allt efter Where är beroende på vad som skrivits i formulären?

Som jag ser det skulle det väl kunna lösas med en hel del If-satser och replace... Det borde gå, men om det är smidigaste lösningen vågar jag inte lova.
Vill du jag skall försöka komma med ett mer konkret kodexempel eller kör du själv härifrån? Man vill ju gärna försöka hjälpa en annan Boråsare så gott det går :)

Medlem sedan aug. 20002 272 inlägg
#8

Det verkar som om du har förstått allt precis så som jag hade tänkt mej... :e

Du får gärna skriva en kodsnutt om du har tid, vore KALASBRA!!!
Jag har aldrig använt mig utav Replace så jag vet inte riktigt hur det fungerar..

Tack på förhand

Medlem sedan jan. 20013 039 inlägg
#9

Syntaxen för Replace:

replace(variabel,"nuvarande värde","nytt värde"

Min tanke var att prova något i den här stilen:

If NOT strSearch ="" Then
	strSearch=replace(strSearch,strSearch,strSearch&" ='"&FALTNAMN&"' AND ")
End If

Med andra ord..variabelvärdet Göteborg byts ut mot Göteborg='stad' AND (förutsatt att FALTNAMN motsvarar stad)

Om vädet är noll ("") har användaren inte fyllt i det formuläret och så sker inte någon replace.
SQL-satsen blir då något liknande det här:

SQL="Select * FROM Tabell Where "&strSearch&" "&strCompany&" "&strStreet&"....etc

Har tyvärr inte haft tid att testköra så jag vet inte om det funkar. Är som sagt bara en ide. If och replace funkar i alla fall som det skall.
Om SQL-satsen funkar så behöver du bara(?) lägga en liknande If sats på varje variabel. Tanken är att de variabelvärden som är tomma inte kommer att ge något värde alls till SQL medans de som körts replace på skapar en SQL-sats automatiskt.

Sedan kommer du antagligen att behöva göra en koll ifall det bara är ett fält som fyllts i..för i så fall skall det ju inte vara med något AND någonstans.
Gör också en koll innan SQL körs ifall alla är tomma..då är det ju bara att köra response.redirect så blir ju SQL-strängen aldrig exekverad.

Lycka till... :h
(Hör gärna av dig och tala om ifall det funkar, eller om du vill ha mer hjälp. Är rädd för att jag strular till mer än jag hjälper ibland bara...) :e

Medlem sedan jan. 20013 039 inlägg
#10

Syntaxen för Replace:
replace(variabel,"nuvarande värde","nytt värde"

Glömde slutparantesen...men det såg du väl?
:e

Medlem sedan aug. 20002 272 inlägg
#11

Hrm...

Variablerna får ett värde när jag söker på Borås som postort men vad kan det bero på att det inte funkar??
Får ett felmeddelande som lyder:
Syntaxfel (operator saknas) i frågeuttrycket 'Borås =''

En fråga till.. Varför finns det 3 strSearch i Replace?

strSearch=replace(strSearch,strSearch,strSearch&" ='"&FALTNAMN&"' AND ")
Medlem sedan jan. 20013 039 inlägg
#12

Vi tar sista frågan först:

En fråga till.. Varför finns det 3 strSearch i Replace?

Kommer du ihåg syntaxen?

replace(variabel,"nuvarande värde","nytt värde"

Det första strSearch motsvarar variabelnamnet..det andra motsvarar variabelns nuvarande värde och det sista nytt värde(lägger ju till saker till befintligt värde för att få en komplett sökning.
Blir ju inte speciellt pedagogiskt att använda samma namn kanske...men jag hoppas du förstår hur jag menar.

När det gäller

Syntaxfel (operator saknas) i frågeuttrycket 'Borås =''

kan det väl bero på att du inte definierat vad Borås skall vara lika med.(FALTNAMN i mitt exempel) Vet ju inte hur du lagt upp sökningen...du kanske inte behöver ha en variabel där utan kan hårdkoda in en jämförelse...men något måste ju Borås jämföras med. Finns ju ett tristare alternativsvar och det är att det helt enkelt inte går att göra såhär. Men jag vill nog inte ge upp än.
Om du inte får ordning på det får du väl maila över hela koden till mig. Är kanske lite lättare att hitta felet då.
:h

Medlem sedan aug. 20002 272 inlägg
#13

Hello!!

Det ligger ett mail i din (Bendro) Inbox på hotmail.com....

Hoppas vi kan få ordning på detta nu! :e

260 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
119 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)