Hallå Du måste använda . som decimalseparator för tal. Så har du inte inkluderat jämförelse operatorn i din sträng. Enkelfnuttar används bara till strängar.<br> Får upp detta felmeddelande på din kodsnutt Andreas. Så här ser den ut nu: <code> Felt du fick beror på att du deklarerat en variabel med samma namn som din funktion. Går nog bättre om du tar bort SQLNumber från din Dim rad. Nu fungerar det, men den gillar inte koden efter bortkommenteringen. Kanske blir det en dubbelfråga eller nått eftersom värdena ligger på samma rad i DB:n Såhär ska det nog vara... (byt plats på = och > Herregud vad petigt det kan va :=). Sitter klockrent nu. Det var nog både >= och mellanslaget som tokade till alltihop.SQL-sats?
Jag har en databas med följande struktur:
Kolumn1 Kolumn2 Kolumn3
0,8 1,5 3
1,6 2,4 4
2,5 3,2 5
3,3 4,1 6
<%
strTal = Request.Form("Tal")
strSQL = "SELECT * FROM tblSummor WHERE kolumn1" <= "'" strTal "'" "and kolumn2" => "'" strTal "'"
%>
</code>
Genom att mata in ett tal mellan 1,6 o 2,4 ska jag få värdet 4 i rs("kolumn3")
Denna sql-sats har jag provat med men den är inte rätt. Frågan är om strukturen är rätt överhuvudtaget? Någon som kan hjälpa mig?Sv: SQL-sats?
<br>
Försök med:
<code>
Function SQLNumber(Value)
If IsNumeric(Value) Then
SQLNumber = Replace(Value, ",", ".")
Else
SQLNumber = "Null"
End If
End Function
<%
strTal = Request.Form("Tal")
strSQL = "SELECT * FROM tblSummor WHERE kolumn1 <= " & SQLNumber(strTal) & "AND kolumn2 => "& SQLNumber(strTal)
%>
</code>Sv: SQL-sats?
Feltyp:
Kompileringsfel i Microsoft VBScript (0x800A0411)
Namnet har omdefinierats.
/test.asp, line 22, column 9
Function SQLNumber(Value)Sv: SQL-sats?
<code>
<%@LANGUAGE="VBSCRIPT"%>
<% Option Explicit %>
<% Response.Expires = 0 %>
<%
Dim sConnect, sPath, iLen, conn, rs, sqlNumber, strGender, strHcp
sPath = Request.ServerVariables("PATH_TRANSLATED")
While (Right(sPath, 1) <> "\" And Len(sPath) <> 0)
iLen = Len(sPath) - 1
sPath = Left(sPath, iLen)
Wend
sConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & sPath & "banguide.mdb;User Id=Admin;Password=;"
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open sConnect
Function SQLNumber(Value)
If IsNumeric(Value) Then
SQLNumber = Replace(Value, ",", ".")
Else
SQLNumber = "Null"
End If
End Function
strGender = Request.Form("gender")
strHcp = Request.Form("hcp")
Set RS = Server.CreateObject("ADODB.Recordset")
If strGender = "herr" then
strSQL = "SELECT * FROM slope_1 WHERE white_low <= " & SQLNumber(strHcp) & "AND white_high => "& SQLNumber(strHcp)
elseif strGender = "dam" then
strSQL = "SELECT * FROM slope_2"
End If
SET RS = Conn.Execute(strSQL)
Response.Write strSQL
%>
</code>Sv: SQL-sats?
SET RS = Conn.Execute(strSQL)
skall nog vara
RS.open strSQL,Conn
</code>
ioch med att du sätter upp rs tidigare med
<code>
set rs = server.createobject("adodb.recordset")
</code>
//PutteSv: SQL-sats?
<br>
Skrivit om din kod lite:
<code>
<%@LANGUAGE="VBSCRIPT"%><%
Option Explicit
Function SQLNumber(Value)
If IsNumeric(Value) Then
SQLNumber = Replace(Value, ",", ".")
Else
SQLNumber = "Null"
End If
End Function
Dim sConnect, conn, rs, strGender, strHcp
Response.Expires = 0
sConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("banguide.mdb") & ";User Id=Admin;Password=;"
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open sConnect
strGender = Request.Form("gender")
strHcp = Request.Form("hcp")
Set RS = Server.CreateObject("ADODB.Recordset")
If strGender = "herr" then
strSQL = "SELECT * FROM slope_1 WHERE white_low <= " & SQLNumber(strHcp) & "AND white_high => "& SQLNumber(strHcp)
elseif strGender = "dam" then
strSQL = "SELECT * FROM slope_2"
End If
Response.Write strSQL
RS.Open strSQL, Conn
%>
</code>Sv: SQL-sats?
<code>
strSQL = "SELECT * FROM slope_herrar WHERE white_low <= " & SQLNumber(strHcp) '& "AND white_high => "& SQLNumber(strHcp)
</code>
Får upp följande fel på den:
Feltyp:
Microsoft JET Database Engine (0x80040E14)
Syntaxfel (operator saknas) i frågeuttrycket 'white_low <= 13.5 AND white_high => 13.5'.Sv: SQL-sats?
strSQL = "SELECT * FROM slope_herrar WHERE white_low <= " & SQLNumber(strHcp) & " AND white_high >= " & SQLNumber(strHcp)
/JohanSv: SQL-sats?
Tack för hjälpen/Uffe
PS. Betalade 500:- idag som tack för ett suveränt forum och hjälpsamma människor.