SQL-frågor...

ASP

33 svar · 416 visningar · startad av Method · sida 2 av 2

Trådstarten, av Method

Jag e inte så bra på att optimera SQL-frågor så jag skulle gärna vilja ha lite hjälp med detta. Jag skall ha ett par dropdownmenyer närmare bestämt 5 st som jag skulle behöva lite hjälp med att "utforma": |Ålder| där man kan välja från 20 och uppåt med 5 års intervaller t ex 20 - 25 år, Hur skal denna dropdown ha för value för att få det? |Utbildning| Denna har jag reda

Läs hela trådstarten →
Medlem sedan apr. 2001357 inlägg
#21

Nu har jag testat lite mer och man kan söka fritt mellan olika alternativ förutom när man blandar in serchdate och age.

När man har med searchdate så "förstör" den de andra sökalternativen för väljer man ett alternativ ur |jobb|, |utbildning|, |kontor| så visar den ändå alla inlägg och kollar jag på vad SQL-frågan så blir den så här

select * from ansokan True order by Efternamn

och jag använder mig av denna

if SearchDate <> "" then
if where = "" then
where = " where "
else
where = where & " and " 
end if
where = WHERE & datum >=" & dateadd(""d""," & request.form("searchDate") & ", date()) & "
end if

sen har jag problem med age koden och den ser ut så här

if age <> "" then
if where = "" then
where = " where "
else
where = where & " and "
end if
where = where & "datediff(""yyyy"",fod_datum,date) between " & request.form("age")'"
end if

SQL-frågan ser ut så här

select * from ansokan where datediff("yyyy",fod_datum,date) between 20 and 25 order by Efternamn

Snälla snälla hjälp det e ju så nära att det funkar nu :)

Sen vill jag tacka LarsG för bra tålamod ;)

Medlem sedan dec. 200012 464 inlägg
#22

Det saknas ett " precis framför datum

if SearchDate <> "" then
if where = "" then
where = " where "
else
where = where & " and " 
end if
where = WHERE & "datum >=" & dateadd(""d""," & request.form("searchDate") & ", date()) & "
end if

age-koden tycker jag ser helt korrekt ut. Vad händer om du kör den select-satsten direkt i Access?

Medlem sedan apr. 2001357 inlägg
#23

jag prova search koden nu och fick detta felet

Microsoft VBScript compilation error '800a03ee' 

Expected ')' 

/int/test.asp, line 69 

where = WHERE & "datum >=" & dateadd(""d""," & request.form("searchDate") & ", date()) & "
---------------------------------------^

hur kör man en select-sats direkt i Access?

Medlem sedan dec. 200012 464 inlägg
#24

hur kör man en select-sats direkt i Access?

Vet inte exakt, (har aldrig använt Access) men det borde finnas något fönster under någon meny.

Ytterligare ett försök

where = WHERE & _
"datum >= dateadd(""d""," & _
request.form("searchDate") & _
", date()) "
Medlem sedan feb. 20012 412 inlägg
#25

Hej!

hur kör man en select-sats direkt i Access?

  1. öppna avsedd databas (markera en tabell, öppna ej)
  2. välj frågor under object i menyn till vänster.
  3. välj - skapa fråga i designläge
  4. stäng de popup fönser som dyker upp
  5. välj SQL uppe till vänster
  6. skriv din fråga i textarean
  7. Klicka på kör (rött utropstecken) när du är nöjd.

lycka till!

Jörgen

Medlem sedan apr. 2001357 inlägg
#26

Den koden jag fick funkar inte får denna fel

sql:
select * from ansokan where datum <= dateadd("d",-2, date()) order by Efternamn

Microsoft OLE DB Provider for ODBC Drivers error '80040e10' 

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1. 

/int/test.asp, line 80

jag använder mig av denna kod på ett annan sida men när jag försöker lägga in # så slutar koden att fungera.

SQL = "SELECT * From jobb WHERE datum >=#" & dateadd("d", -5, date())& "# ORDER BY ID DESC"

Hur skall jag utforma denna SQL i Access för att kunna prova den?

where = where & "datediff(""yyyy"",fod_datum,date) between " & request.form("age")'"

Tack på förhand

Jonas

Medlem sedan apr. 2001357 inlägg
#27

Nu har jag fått fram en kod som hämtar inlägg efter ett visst datum

where = where & "[datum] >=#" & dateadd("d", -10, date()) & "# "

men i stället för -10 vill jag att den hämtar det från dropdownmenyn men när jag lägger in denna

" & Request.Form("searchDate") & "

istället för -10 så får jag bara fel hela tiden.

Hur ska jag göra för att få det att funka?

Kan nån hjälpa mig med detta?

Medlem sedan juni 200032 967 inlägg
#28

men hur ser sql-frågan ut när det blir fel? det är ju det som är intressant.

Medlem sedan apr. 2001357 inlägg
#29

så här

Microsoft VBScript compilation error '800a03ee' 

Expected ')' 

/int/ansokningar.asp, line 104 

where = where & "[datum] >=#" & dateadd("d", " & Request.Form("searchDate") & ", date()) & "# "
---------------------------------------------------------------^

(jag har märkt att ----------^ kan peka fel den pekar på s i ("searchDate")

Medlem sedan juni 200032 967 inlägg
#30
where = where & "[datum] >=#" & dateadd("d", cdate(Request.Form("searchDate")) , date()) & "# "

mvh,

Medlem sedan apr. 2001357 inlägg
#31

JAJAJAJAJAJAA det funkar göttt tack :) :)

Nu e det bara den

where = where & "datediff(""yyyy"",fod_datum,date) between " & request.form("age")'"

som inte funkar

varför?

fel

sql:
SELECT id, fornamn, efternamn, telefon, mobil, [datum], sokvag, httpsokvag, jobb,kontor, fod_datum, utbildning FROM ansokan where datediff("yyyy",fod_datum,date) between 26 and 30 ORDER BY [datum] DESC

Microsoft JET Database Engine error '80040e10' 

No value given for one or more required parameters. 

/int/ansokningar.asp, line 122

i databasen heter raden |fod_datum|
typ: Datum/tid
där användaren sparar födelsedatum i formatet MM/DD/YYYY

Tack på förhand

Jonas

Medlem sedan apr. 2001357 inlägg
#32

jag fick igång det sista

Tack för all hjälp allesammans :) :) :)

häls.
Jonas

Medlem sedan dec. 200012 464 inlägg
#33

Så bra, vad var det sista för fel?

Medlem sedan apr. 2001357 inlägg
#34

så här ser den slutgiltiga koden ut

m_strSQL = "SELECT id, fornamn, efternamn, telefon, mobil, [datum], sokvag, httpsokvag, jobb,kontor, fod_datum, utbildning  " & _
							"FROM ansokan "
							where = ""
							if jobb <> "" then
							if where = "" then
							where = " where "
							else
							where = where & " and "
							end if
							where = where & " jobb = '" & jobb & "'"
							end if

							if kontor <> "" then
							if where = "" then
							where = " where "
							else
							where = where & " and "
							end if
							where = where & " kontor = '" & kontor & "'"
							end if

							if age <> "" then
							if where = "" then
							where = " where "
							else
							where = where & " and "
							end if
							where = where & "datediff(""yyyy"",fod_datum,date()) between " & request.form("age")'"
							end if

							if utb <> "" then
							if where = "" then
							where = " where "
							else
							where = where & " and "
							end if
							where = where & " utbildning = '" & utb & "'"
							end if

							if SearchDate <> "" then
							if where = "" then
							where = " where "
							else
							where = where & " and " 
							end if
							where = where & "[datum] >=#" & dateadd("d", cdate(Request.Form("searchDate")) , date()) & "# "
							end if

							m_strSQL = m_strSQL & where & " ORDER BY [datum] DESC"

så här såg |age| ut innan

where = where & "datediff(""yyyy"",fod_datum,date) between " & request.form("age")'"
263 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
116 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)