Hej, detta funkar bra så länge inte både sokord och sokord1 innehåller värdet "All" för då får jag felmedelandet overflow , men annars så funkar allt bra hur jag än vänder och vrider på det vore jättetacksam för hjälp
set connection=server.createobject("adodb.connection")
connection.open "dsn=cmt1"
stm="select * from cm1 where manad like '"&sokord1&"' and ar like '"&sokord2&"'"
set rs = connection.execute(stm)
else
if sokord1="All" then
set connection=server.createobject("adodb.connection")
connection.open "dsn=cmt1"
stm="select * from cm1 where konto like '"&sokord&"' and ar like '"&sokord2&"'"
set rs = connection.execute(stm)
else
if sokord="All" and sokord1="All" then
set connection=server.createobject("adodb.connection")
connection.open "dsn=cmt1"
stm="select * from cm1 where ar like '"&sokord2&"'"
set rs = connection.execute(stm)
else
set connection=server.createobject("adodb.connection")
connection.open "dsn=cmt1"
stm="select * from cm1 where konto like '"&sokord&"' and manad like '"&sokord1&"' and ar like '"&sokord2&"'"
set rs = connection.execute(stm)
Jag tycker att du har onödigt mycket kod. Du kan läga in beräkningarna direkt i sql. Jag ändrade också att man kan söka på alla möjliga kombinationer
set connection=server.createobject("adodb.connection")
connection.open "dsn=cmt1"
stm = "select sum(jproc)/count(*) as jproc,sum(nproc)/count(*) as nproc from cm1 where 1 = 1 "
if sokord <> "All" then
stm = stm & "and konto = '" & sokord & "' "
end if
if sokord1 <> "All" then
stm = stm & "and manad = '" & sokord1 & "' "
end if
if sokord2 <> "All" then
stm = stm & "and ar = '" & sokord2 & "' "
end if
set rs = connection.execute(stm)
if isnull(rs("jproc")) then
jamedel = 0
nejmedel = 0
else
jamedel = round(rs("jproc"))
nejmedel = round(rs("nproc"))
end if
rs.close
connection.close
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] Circular reference caused by alias 'jproc' in query definition's SELECT list.
/cmt/cm/cmkonto1.asp, line 34
Du får byta efter as, då det tydligen blir fel om man har ett alias som är samma som ett kolumnnamn.
stm = "select sum(jproc)/count(*) as jc,sum(nproc)/count(*) as nc from cm1 where 1 = 1 "
if sokord <> "All" then
stm = stm & "and konto = '" & sokord & "' "
end if
if sokord1 <> "All" then
stm = stm & "and manad = '" & sokord1 & "' "
end if
if sokord2 <> "All" then
stm = stm & "and ar = '" & sokord2 & "' "
end if
set rs = connection.execute(stm)
if isnull(rs("jproc")) then
jamedel = 0
nejmedel = 0
else
jamedel = round(rs("jc"))
nejmedel = round(rs("nc"))
end if
rs.close
connection.close
Jag säger att det är fel i Access, även om Microsoft förmodligen skulle kalla det för en feature.
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression.
/cmt/cm/cmkonto1.asp, line 36
ar och manad är med siffror konto är med bokstäver när det ligger i databasen men jag har en sida när jag hämtar informationen som jag väljer hur det skall sorteras där har jag lagt med att man skall kunna välja "All" om den skall ta med alla månader eller tex alla konton.
som ser ut :
<select name="sokord2">
<option>1
<option>2
<option>3
<option>4
<option>5
<option>6
<option>7
<option>8
<option>9
<option>10
<option>11
<option>12
<option>All
</SELECT>
Hej , jo like funkar jag använde det ju i den första koden och den funka ju ( förutom med två sökord med "all")
det blir lite mer fel :Error Type:
ADODB.Recordset (0x800A0CC1)
Item cannot be found in the collection corresponding to the requested name or ordinal.
/cmt/cm/cmkonto1.asp, line 40
line 40: if isnull(rs("jproc")) then
den heter ju "jproc" fast det kanske inte är det som det indikerar??
tack igen för att du tar dig tid
i databasen är dom satta till "tal" för "all" finns bara med på den sidan som söker , det finns aldrig med i databasen.
Det verkar som jag får en total summa?? jag behöver ha ett medelvärdet. jag har gjort om koden lite för konceptet blev ändrat men den funkar förutom det med att jag verkar få en total summa istället för medelvärdet. koden ser ut som följer:
Ursäkta mig jag såg fel men en en annan sak är att jag får fel värde nu jag får tex 24% fast det ser snarare ut i databasen som det borde vart 76%, kan det vara möjligt att det är nått som vänder på steken?