BiasseMedlem sedan aug. 2003480 inlägg Är det möjligt att skicka en sql via en varabel? Lite ex hur jag menar men får felet:
Feltyp:
Microsoft JET Database Engine (0x80040E14)
Ogiltigt SQL-uttryck. 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT' eller 'UPDATE' förväntades.
<%
kommande = Connect.Execute("SELECT * From kalender WHERE bokad < 4 AND datum > #"& date() &"# ORDER BY datum ASC")
bokningar = Connect.Execute("SELECT * From kalender WHERE bokad = 1 ORDER BY datum ASC")
alla = Connect.Execute("SELECT * From kalender WHERE bokad < 4 ORDER BY datum ASC")
plusEtt = "SELECT * From kalender WHERE bokad < 4 AND year(datum) = '"& Year(date)+1 &"' ORDER BY datum ASC"
dagensAr = Connect.Execute("SELECT * From kalender WHERE bokad < 4 AND year(datum) = '"& Year(date) &"' ORDER BY datum ASC")
minusEtt = Connect.Execute("SELECT * From kalender WHERE bokad < 4 AND year(datum) = '"& Year(date)-1 &"' ORDER BY datum ASC")
minusTva = Connect.Execute("SELECT * From kalender WHERE bokad < 4 AND year(datum) = '"& Year(date)-2 &"' ORDER BY datum ASC")
minusTre = Connect.Execute("SELECT * From kalender WHERE bokad < 4 AND year(datum) = '"& Year(date)-3 &"' ORDER BY datum ASC")
%>
<tr>
<td align="center">
<form action="admin_kommande.asp?action=check" method="post">
<Select name="valtAr" style="font-family: verdana; font-size: 10px">
<option value="#"> Välj </option>
<Option value="<%=kommande%>">Kommande</Option>
<Option value="<%=bokningar%>">Preliminära</Option>
<Option value="<%=alla%>">Alla</Option>
<Option value="<%=plusEtt%></Option>
<Option value="<%=dagensAr%>"><%=Year(date)%></Option>
<Option value="<%=minusEtt%>"><%=Year(date)-1%></Option>
<Option value="<%=minusTva%>"><%=Year(date)-2%></Option>
<Option value="<%=minusTre%>"><%=Year(date)-3%></Option>
</Select>
<input type="submit" style="font-family: verdana; font-size: 10px" name="Submit2" value=" Hämta År ">
</td>
</tr>
Sen var tanken att hämta ut det som en sql via detta
SQL = Request.Form("valtAr")
Set RecSet = Server.CreateObject("ADODB.Recordset")
oldAction=Request.Querystring("action")
RecSet.Open SQL, Connect, 1, 3
RecSet.PageSize = 20
If RecSet.EOF Then
osv...
rhdfMedlem sedan okt. 2007446 inlägg för det första så har du ju satt
minusEtt = Connect.Execute("SELECT * From kalender WHERE bokad < 4 AND year(datum) = '"& Year(date)-1 &"' ORDER BY datum ASC"), dvs minusEtt är ett recordset
Sen verkar det lite onödigt att skriva ut hela SQL-frågan i klartext i dina options
jag skulle satt värdena på option till en siffra och sen
Select Case Clng(Request.Form("valtAr"))
Case 1
'Kommande
SQL="SELECT * From kalender WHERE bokad < 4 AND datum > #"& date() &"# ORDER BY datum ASC"
Case 2
'bokningar
SQL="SELECT * From kalender WHERE bokad = 1 ORDER BY datum ASC"
End Select
Set RS=Connect.Execute(SQL)
BiasseMedlem sedan aug. 2003480 inlägg Fick till det såhär tillslut :)
<%
kommande = "SELECT * From kalender WHERE bokad < 4 AND datum > #"& date() &"# ORDER BY datum ASC"
nya = "SELECT * From kalender WHERE bokad = 1 ORDER BY datum ASC"
alla = "SELECT * From kalender WHERE bokad < 4 ORDER BY datum ASC"
plusEtt = "SELECT * From kalender WHERE bokad < 4 AND year(datum) = '"& Year(date)+1 &"' ORDER BY datum ASC"
dagensAr = "SELECT * From kalender WHERE bokad < 4 AND year(datum) = '"& Year(date) &"' ORDER BY datum ASC"
minusEtt = "SELECT * From kalender WHERE bokad < 4 AND year(datum) = '"& Year(date)-1 &"' ORDER BY datum ASC"
minusTva = "SELECT * From kalender WHERE bokad < 4 AND year(datum) = '"& Year(date)-2 &"' ORDER BY datum ASC"
minusTre = "SELECT * From kalender WHERE bokad < 4 AND year(datum) = '"& Year(date)-3 &"' ORDER BY datum ASC"
'//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////'
%>
<tr>
<td align="center">
<form action="admin_kommande.asp?kolla=check" method="post">
<Select name="valtAr" style="font-family: verdana; font-size: 10px">
<option value="#"> Välj </option>
<Option value="<%=kommande%>">Kommande</Option>
<Option value="<%=nya%>">Preliminära</Option>
<Option value="<%=alla%>">Alla</Option>
<Option value="<%=plusEtt%>"><%=Year(date)+1%></Option>
<Option value="<%=dagensAr%>"><%=Year(date)%></Option>
<Option value="<%=minusEtt%>"><%=Year(date)-1%></Option>
<Option value="<%=minusTva%>"><%=Year(date)-2%></Option>
<Option value="<%=minusTre%>"><%=Year(date)-3%></Option>
</Select>
<input type="submit" style="font-family: verdana; font-size: 10px" name="Submit2" value=" Hämta År ">
</td>
</tr>
SQL = Request.Form("valtAr")
rhdfMedlem sedan okt. 2007446 inlägg Det där funkar ju, men som jag skrev, varför ha hela sql-frågan som variabel?
Det enda som skiljer de olika fallen åt är ju vad som står mellan "WHERE bokad" och "ORDER BY datum" (du behöver inte ha med ASC, eftersom det är default)
jag skulle gjort en variant på mitt förslag där du då endast ändrar på ditt villkor
If Clng(Request.Form("valtAr"))>0 Then
Select Case Clng(Request.Form("valtAr"))
Case 1
'Kommande
villkor="bokad < 4 AND datum > #"& date() &"#"
Case 2
'bokningar
villkor="bokad = 1"
End Select
SQL="SELECT * From kalender WHERE "& villkor &" ORDER BY datum"
End If
och
<Select name="valtAr" style="font-family: verdana; font-size: 10px">
<option value="0"> Välj </option>
<Option value="1">Kommande</Option>
<Option value="2">Preliminära</Option>
<Option value="3">Alla</Option>
<Option value="4"><%=Year(date)+1%></Option>
<Option value="5"><%=Year(date)%></Option>
osv
</Select>
BiasseMedlem sedan aug. 2003480 inlägg Ja du har helt rätt. Fick ditt förslag att fungera perfekt. Tack :)
<Select name="valtAr" style="font-family: verdana; font-size: 10px">
<option value="#"> Välj </option>
<Option value="1">Kommande</Option>
<Option value="2">Preliminära</Option>
<Option value="3">Alla</Option>
<Option value="4"><%=Year(date)+1%></Option>
<Option value="5"><%=Year(date)%></Option>
<Option value="6"><%=Year(date)-1%></Option>
<Option value="7"><%=Year(date)-2%></Option>
<Option value="8"><%=Year(date)-3%></Option>
</Select>
och
If Request.Form("valtAr") > 0 Then
Select Case Request.Form("valtAr")
Case 1 '///// Kommande /////'
choiseSQL = "bokad < 4 AND datum > #"& date() &"#"
Case 2 '///// Nya Bokningar /////'
choiseSQL = "bokad = 1"
Case 3 '///// Alla Bokningar /////'
choiseSQL = "bokad < 4"
Case 4 '///// Plus 1 År /////'
choiseSQL = "bokad < 4 AND year(datum) = '"& Year(date)+1 &"'"
Case 5 '///// Nuvarande År /////'
choiseSQL = "bokad < 4 AND year(datum) = '"& Year(date) &"'"
Case 6 '///// Minus 1 År /////'
choiseSQL = "bokad < 4 AND year(datum) = '"& Year(date)-1 &"'"
Case 7 '///// Minus 2 År /////'
choiseSQL = "bokad < 4 AND year(datum) = '"& Year(date)-2 &"'"
Case 8 '///// Minus 3 År /////'
choiseSQL = "bokad < 4 AND year(datum) = '"& Year(date)-3 &"'"
End Select
SQL="SELECT * From kalender WHERE "& choiseSQL &" ORDER BY datum"
End If