Avatar billede kramerfan Nybegynder
05. december 2000 - 12:38 Der er 11 kommentarer og
1 løsning

hente data

Jeg bruger access til asp. Jeg gemmer data fra en reservation, der skriver en dato og en tid enten  mellem 10-15, 15 19 eller 19-24 ned i et tekstsfelt.Udfra disse data vil jeg styrer en grafiskrepræsentation. Problemet er:
VB.script virker ikke hvis der ikke er noget data i DB\'en og hvis der er noget, så aflæser den kun den første data den finder på en bestemt dato.
Mit script ser sådan ud:

<% SQL3 = \"SELECT Tid1, Tid2, Tid3 FROM Kalend Where Dag =\'\"& man &\"\'\"
set kala = conn.execute(SQL3)
%>
<td height=\"44\" align=\"center\" width=\"50\"
<% If kala(\"Tid1\") = \"10-15\" Then Response.Write \"bgcolor=#FF0033\" Else Response.Write \"bgcolor=#339900\"
%> ><font color=\"#FFFFFF\">10-15</font></td>
<td height=\"44\" align=\"center\" width=\"50\"
<% If kala(\"Tid2\") = \"15-19\" Then Response.Write \"bgcolor=#FF0033\" Else Response.Write \"bgcolor=#339900\"
%> ><font color=\"#FFFFFF\">15-19</font></td>
<td height=\"44\" align=\"center\" width=\"50\"
<% If kala(\"Tid3\") = \"19-24\" Then Response.Write \"bgcolor=#FF0033\" Else Response.Write \"bgcolor=#339900\"
%> ><font color=\"#FFFFFF\">19-24</font></td>

Url til siden:(her går I se hvad er mener med grafisk repræsentation)  http://eschle.net/bunkeren/skema.asp
Avatar billede mape Nybegynder
05. december 2000 - 12:59 #1
Du skal huske at lave det som et Recordset, som du kan løbe igennem for hver enkelt udtræk fra DB. Du skal også huske at checke om der overhovedet er fundet noget vha. EOF.
Avatar billede kramerfan Nybegynder
05. december 2000 - 13:15 #2
Hvis jeg har forstået det igtigt er Kala mit recordset. Jeg prøvet af skrive det ud og det indeholder de data, jeg skal bruge. Men af en eller anden grund kører det ikke rigtigt som det skal. Jeg har også prøvet at sætte Tid1, Tid2 og Tid3 til den tilhørerne værdier og så virker mit VB-script, som det skal. Det er aflæsningen af mit recordset, der er noget galt med. Men hvad?
Avatar billede senj Nybegynder
05. december 2000 - 13:26 #3
Kan du komme med resten af koden?
Avatar billede mape Nybegynder
05. december 2000 - 13:30 #4
Du skal huske at hoppe til næste med MoveNext().
Avatar billede kramerfan Nybegynder
05. december 2000 - 13:44 #5
Hvor skal den movenext() sættes ind?
Avatar billede kasseper Nybegynder
05. december 2000 - 14:14 #6
Nej du skal ikke lave movenext.....du har jo Tid1, Tid2 og Tid3 i samme recordset.....
Avatar billede mape Nybegynder
05. december 2000 - 14:24 #7
Hvis der ikke er noget data i recordsettet skal du stadig sætte baggrundsfarven.

if Recordset.EOF
{
  <td height=\"44\" align=\"center\" width=\"50\" bgcolor=#339900><font color=\"#FFFFFF\">10-15</font></td>
  <td height=\"44\" align=\"center\" width=\"50\" bgcolor=#339900><font color=\"#FFFFFF\">10-15</font></td>
  <td height=\"44\" align=\"center\" width=\"50\" bgcolor=#339900><font color=\"#FFFFFF\">10-15</font></td>
}
Avatar billede mape Nybegynder
05. december 2000 - 14:25 #8
Husk at ændre tidspunkterne!!!
Avatar billede kramerfan Nybegynder
05. december 2000 - 14:59 #9
Hvis der ikke er noget data er det min tanke at else-sætningen skal tage den. Men det gør den ikke - hvorfor?
Avatar billede kasseper Nybegynder
05. december 2000 - 15:15 #10
Sæt denne ind istedet :

<%
SQL3 = \"SELECT Tid1, Tid2, Tid3 FROM Kalend Where Dag =\'\"& man &\"\'\"
set kala = conn.execute(SQL3)
%>
<td height=\"44\" align=\"center\" width=\"50\"

<%
If NOT kala.EOF then
    If kala(\"Tid1\") = \"10-15\" Then
    Response.Write \"bgcolor=\'#FF0033\'><font color=\'#FFFFFF\'>10-15</font></td><td height=\'44\' align=\'center\' width=\'50\'\"
    Else
    Response.Write \"bgcolor=\'#339900\'><font color=\'#FFFFFF\'>10-15</font></td><td height=\'44\' align=\'center\' width=\'50\'\"
    end if
   
    If kala(\"Tid2\") = \"15-19\" Then
    Response.Write \"bgcolor=\'#FF0033\'><font color=\'#FFFFFF\'>15-19</font></td><td height=\'44\' align=\'center\' width=\'50\'\"
    Else
    Response.Write \"bgcolor=\'#339900\'><font color=\'#FFFFFF\'>15-19</font></td><td height=\'44\' align=\'center\' width=\'50\'\"
    End if
   
    If kala(\"Tid3\") = \"19-24\" Then
    Response.Write \"bgcolor=\'#FF0033\'><font color=\'#FFFFFF\'>19-24</font></td>\"
    Else
    Response.Write \"bgcolor=\'#339900\'><font color=\'#FFFFFF\'>19-24</font></td>\" 
    End if
Else
    response.write \"<td height=\'44\' align=\'center\' width=\'50\' bgcolor=\'#339900\'><font color=\'#FFFFFF\'>10-15</font></td>\"
    response.write \"<td height=\'44\' align=\'center\' width=\'50\' bgcolor=\'#339900\'><font color=\'#FFFFFF\'>15-19</font></td>\"
    response.write \"<td height=\'44\' align=\'center\' width=\'50\' bgcolor=\'#339900\'><font color=\'#FFFFFF\'>19-24</font></td>\"
End if
%>

Så kommer der også lidt mere styr på din kode....;-)
Avatar billede kramerfan Nybegynder
05. december 2000 - 15:27 #11
Nu har jeg fåer det til at virke når der ikke er noget i DB med mapes lille EOF - tak for det.
Men det er stadig et problem at den ikke kan læse to værdier fra den samme dato.
Scriptet ser nu sådan ud.

<tr>
          <td height=\"44\" align=\"center\" width=\"126\" bgcolor=\"#999999\"><font color=\"#FFFFFF\"><% response.write \"Tirsdag : \" & tirs & \"<br>\" %></font></td>
<%SQL4 = \"SELECT Tid1, Tid2, Tid3 FROM Kalend where Dag =\'\"& tirs &\"\'\" 
set kalb = conn.execute(SQL4)
%>
<% if kalb.eof = true then%>
<td height=\"44\" align=\"center\" width=\"50\" bgcolor=#339900><font color=\"#FFFFFF\">10-15</font></td>
  <td height=\"44\" align=\"center\" width=\"50\" bgcolor=#339900><font color=\"#FFFFFF\">15-19</font></td>
  <td height=\"44\" align=\"center\" width=\"50\" bgcolor=#339900><font color=\"#FFFFFF\">19-24</font></td>
<%end if
%>
<%if kalb.eof = false then%>
<td height=\"44\" align=\"center\" width=\"50\"
<%If kalb(\"Tid1\") = \"10-15\" Then Response.Write \" bgcolor=#FF0033\" Else Response.Write \" bgcolor=#339900\" %> >
            <font color=\"#FFFFFF\">10-15</font></td>
          <td height=\"44\" align=\"center\" width=\"50\"
<%If kalb(\"Tid2\") = \"15-19\" Then Response.Write \" bgcolor=#FF0033\" Else Response.Write \" bgcolor=#339900\" %> >
            <font color=\"#FFFFFF\">15-19</font></td>
          <td height=\"44\" align=\"center\" width=\"50\"
<%If kalb(\"Tid3\") = \"19-24\" Then Response.Write \" bgcolor=#FF0033\" Else Response.Write \" bgcolor=#339900\" %> >
            <font color=\"#FFFFFF\">19-24</font></td>
     
</tr>
<% end if%>
Avatar billede kramerfan Nybegynder
05. december 2000 - 16:02 #12
Jeg tror jeg har fundet ud af hvad det store problem er. I mit recordset kan min:
kala(\"Tid1\") fra en bestemt dato have tre værdier, da er jeg har lave en autonummereret ID. Så kala(\"Tid1\") kan have værdien \"10-15\", \"\" eller \"\" - da der bliver genereret tre datoer. Når jeg så søger i mit recordset kan den ikke finde ud af hvilken værdi der er den rigtige.
Hvordan undgår jeg det?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester