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..??
------------------
Vad gör Göran då, vad gör Göran då?
E-post
12 svar · 255 visningar · startad av JAreMANNEN
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..
------------------
Vad gör Göran då, vad gör Göran då?
E-post
[Redigerat av JAreMANNEN den 11 jan 2001]
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..??
------------------
Vad gör Göran då, vad gör Göran då?
E-post
Ä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?
------------------
"You can not solve todays problems with the same level of thinking that created the problems in the first place" Albert Einstein
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..
------------------
Vad gör Göran då, vad gör Göran då?
E-post
[Redigerat av JAreMANNEN den 12 jan 2001]
Ä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)?
------------------
"You can not solve todays problems with the same level of thinking that created the problems in the first place" Albert Einstein
Det verkar som om du har förstått saken rätt nu.... :e
------------------
Vad gör Göran då, vad gör Göran då?
E-post
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 :)
------------------
"You can not solve todays problems with the same level of thinking that created the problems in the first place" Albert Einstein
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
------------------
Vad gör Göran då, vad gör Göran då?
E-post
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
------------------
"You can not solve todays problems with the same level of thinking that created the problems in the first place" Albert Einstein
Syntaxen för Replace:
replace(variabel,"nuvarande värde","nytt värde"
Glömde slutparantesen...men det såg du väl?
:e
------------------
"You can not solve todays problems with the same level of thinking that created the problems in the first place" Albert Einstein
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 ")
------------------
Vad gör Göran då, vad gör Göran då?
E-post
[Redigerat av JAreMANNEN den 16 jan 2001]
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
------------------
"You can not solve todays problems with the same level of thinking that created the problems in the first place" Albert Einstein
Hello!!
Det ligger ett mail i din (Bendro) Inbox på hotmail.com....
Hoppas vi kan få ordning på detta nu! :e
------------------
Det är lättare att leva ett rikt liv som ung, när man vet att det väntar ett som gammal
E-post