det är förmodligen ett subtypsproblem.
prova att konvertera båda värdena till strängar i jämförelsen:
if cstr(RecSet("AvtalsNr"))=cstr(Request.Form("PrisGrp")) then
strängen "1" kan aldrig vara lika med heltalet 1 nämligen.
mvh,
5 svar · 299 visningar · startad av drain
Hm detta fungerar inte särskilt bra. Är det någon som vet varför vilkoret i if-satsen (fetstil) aldrig blir sant? Om jag struntar i och ha något värde på value i OPTION och istället jämnför med recSet(Benamning) i vilkoret så fungerar det. OBS att värdet i request.form("PrisGrp") är ett avtalsnr då man skriver ut det precis innan vilkoret som strular och inte en benämning.
Om jag skriver ut (se nedan) precis innan vilkoret får jag detta resultat
Detta är skriv-ut koden:
response.write(recset("AvtalsNr"))%>,<%
response.write(request.form("PrisGrp"))
Resultat:
något sånt här 1,4 2,4 3,4 4,4 5,4 osv..
<TR>
<%
if Request.form("PrisGrp")<>"" then
%>
<TD><font face=arial,verdana size=2><B>Prisgrupp:</font></TD><TD>
<SELECT name=PrisGrp style="HEIGHT: 22px; WIDTH: 140px">
<%
set connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\inetpub\wwwroot\Prototyp1\data\dataredo.mdb"
set RecSet = Server.CreateObject("ADODB.Recordset")
Fnr = "SELECT DISTINCT AvtalsNr, Benamning FROM Avtal"
RecSet.Open Fnr, Connect, adOpenStatic, adLockOptimistic
Do Until RecSet.EOF
**if RecSet("AvtalsNr")=Request.Form("PrisGrp") then**
%\>
\<OPTION selected value=\<%=RecSet("AvtalsNr")%\>\>\<%=RecSet("Benamning")%\>\</OPTION\>
\<%
else
%\>
\<OPTION value=\<%=RecSet("AvtalsNr")%\>\>\<%=RecSet("Benamning")%\>\</OPTION\>
\<%
end if
recSet.MoveNext
loop
recSet.Close
connect.Close
%\>
\</SELECT\>
\<%
else
%>
<TD><font face=arial,verdana size=2><B>Prisgrupp:</font></TD><TD>
<SELECT name=PrisGrp style="HEIGHT: 22px; WIDTH: 140px">
<%
set connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=c:\inetpub\wwwroot\Prototyp1\data\dataredo.mdb"
set RecSet = Server.CreateObject("ADODB.Recordset")
Fnr = "SELECT DISTINCT AvtalsNr, Benamning FROM Avtal"
RecSet.Open Fnr, Connect, adOpenStatic, adLockOptimistic
Do Until RecSet.EOF
%\>
\<OPTION value=\<%=RecSet("AvtalsNr")%\>\>\<%=RecSet("Benamning")%\>\</OPTION\>
\<%
recSet.MoveNext
loop
recSet.Close
connect.Close
%\>
\</SELECT\>
\<%
end if
%>
</TR>
det är förmodligen ett subtypsproblem.
prova att konvertera båda värdena till strängar i jämförelsen:
if cstr(RecSet("AvtalsNr"))=cstr(Request.Form("PrisGrp")) then
strängen "1" kan aldrig vara lika med heltalet 1 nämligen.
mvh,
Data som kommer ifrån formulär är alltid av typen text, data som kommer ifrån ett recordset/databas kan var olika typer... se till så att det är samma datatyp på värdena du försöker att jämnföra... förslagsvis med funktionen Cdate()
Nu får du sluta upp med denna hastighetspostning snabel-anders...
Jag bockar och buggar till er båda . Fast @nders var ju först
. Det verkar troligt med något subtyp problem skall kolla upp om det funkar!!
Nu är det provat och fungerar gör det ju självfallet. Med facit i hand så skäms jag lite borde kollat det där med sträng och tal.
Drain säger tack tack tack tack tack tack och tack till båda två.