13. august 2002 - 11:00
Der er
34 kommentarer og 1 løsning
Hvad er galt?
Jeg har nogle ugenr lageret i en database efter formed 0102 for uge 1 år 2002. Jeg skal nu ha lavet en menu, hvor ugenummeret opdeles i to - en uge-del og en år-del således der kan vælges et år hvorefter alle de uger der er oprettet herunder kommer hjem - jeg har prøvet men kan ikke rigtig finde ud af det. <body topmargin="0" leftmargin="0"> <table border="0" width="100%"> <tr><td width="100%" align="center"><b><font size="1">År</font></b></td></tr> <tr> <td width="100%" align="center"><a href="?saar=01"><u><span style="text-decoration: overline">2001</font></span></u></a></td> </tr> <tr> <td width="100%" align="center"><a href="?saar=02"><u><span style="text-decoration: overline">2002</font></span></u></a></td> </tr> <tr> <td width="100%" align="center"><a href="?saar=03"><u><span style="text-decoration: overline">2003</font></span></u></a></td> </tr> </table> <br> <br> <% saar = Request.QueryString("saar") If saar <> "" Then Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" + Server.MapPath("../../../../database/tips.mdb")) strUgerSQL = "SELECT ugenr FROM uge ORDER BY ugenr" set rs = Conn.Execute(strUgerSQL) %> <table border="0" width="100%"> <tr> <td width="101%" colspan="3" align="center"><b>Uge</b></td> </tr> <% While Not rs.EOF If Len(rs("ugenr")) = 1 Then ugenr = "000"&rs("ugenr") End If If Len(rs("ugenr")) = 2 Then ugenr = "00"&rs("ugenr") End If If Len(rs("ugenr")) = 3 Then ugenr = "0"&rs("ugenr") End If noColPrRow = 0 maxColsPrRow = 3 do while not rs.EOF if noColPrRow = 0 then Response.Write "<tr>" end if %> <td width="33%" align="center"><u><span style="text-decoration: overline"> <a onFocus="blur()" href="java script:popWin('rapport.asp?ugenr=<% =ugenr %>','','width=700,height=500,status=0,scrollbars=1')"><% =ugenr %></a></td> <% noColPrRow = noColPrRow + 1 if noColPrRow = maxColsPrRow then Response.Write "</tr>" noColPrRow = 0 end if loop if noColPrRow <> 0 then Response.Write "</tr>" %> <% End If %> </body>
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
13. august 2002 - 11:05
#1
du skal lave det hele i en loop: <% noColPrRow = 0 maxColsPrRow = 3 do while not rs.EOF If Len(rs("ugenr")) = 1 Then ugenr = "000"&rs("ugenr") End If If Len(rs("ugenr")) = 2 Then ugenr = "00"&rs("ugenr") End If If Len(rs("ugenr")) = 3 Then ugenr = "0"&rs("ugenr") End If if noColPrRow = 0 then Response.Write "<tr>" end if %> <td width="33%" align="center"><u><span style="text-decoration: overline"> <a onFocus="blur()" href="java script:popWin('rapport.asp?ugenr=<% =ugenr %>','','width=700,height=500,status=0,scrollbars=1')"><% =ugenr %></a></td> <% noColPrRow = noColPrRow + 1 if noColPrRow = maxColsPrRow then Response.Write "</tr>" noColPrRow = 0 end if rs.MoveNext loop if noColPrRow <> 0 then Response.Write "</tr>" %>
13. august 2002 - 11:13
#2
IE står han ikke åbne siden... det tage i hvert fald meget lang til.... den kommer ikke med nogen fejl... skærmen er bare hvis
13. august 2002 - 11:13
#3
du skal udskifte alt fra og med: <% While Not rs.EOF Til og med: if noColPrRow <> 0 then Response.Write "</tr>" %> med det jeg har vist.
13. august 2002 - 11:14
#4
Koden ser nu således ud: <% saar = Request.QueryString("saar") If saar <> "" Then Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open("DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" + Server.MapPath("XX")) strUgerSQL = "SELECT ugenr FROM uge ORDER BY ugenr" set rs = Conn.Execute(strUgerSQL) %> <table border="0" width="100%"> <tr> <td width="101%" colspan="3" align="center"><b>Uge</b></td> </tr> <% While Not rs.EOF noColPrRow = 0 maxColsPrRow = 3 do while not rs.EOF If Len(rs("ugenr")) = 1 Then ugenr = "000"&rs("ugenr") End If If Len(rs("ugenr")) = 2 Then ugenr = "00"&rs("ugenr") End If If Len(rs("ugenr")) = 3 Then ugenr = "0"&rs("ugenr") End If if noColPrRow = 0 then Response.Write "<tr>" end if %> <td width="33%" align="center"><u><span style="text-decoration: overline"> <a onFocus="blur()" href="java script:popWin('rapport.asp?ugenr=<% =ugenr %>','','width=700,height=500,status=0,scrollbars=1')"><% =ugenr %></a></td> <% noColPrRow = noColPrRow + 1 if noColPrRow = maxColsPrRow then Response.Write "</tr>" noColPrRow = 0 end if loop if noColPrRow <> 0 then Response.Write "</tr>" End If Wend End If %>
13. august 2002 - 11:17
#5
du skal havde rs.movenext ind før loop: rs.MoveNext loop
13. august 2002 - 11:18
#6
Du kan godt slette linien: While Not rs.EOF For: do while not rs.eof gør det samme. Hvis du sletter den skal du også slette linie: Wend
13. august 2002 - 11:29
#7
Det jeg får på skærmen nu er: År 2001 2002 2003 Uge <a onFocus="blur()" href="java script:popWin('rapport.asp?ugenr='0809','','width=700,height=500,status=0,scrollbars=1')>0809
13. august 2002 - 11:30
#8
Den udskriver koden for linket i stedet for linket
13. august 2002 - 11:32
#9
ugenr = 0809 er record nr 5 i tabellen
13. august 2002 - 11:37
#10
underligt ændre det hvis du skriven den sådan så href står først efter <a: <td width="33%" align="center"><u><span style="text-decoration: overline"> <a href="java script:popWin('rapport.asp?ugenr=<% =ugenr %>','','width=700,height=500,status=0,scrollbars=1')" onFocus="blur()"><% =ugenr %></a></td>
13. august 2002 - 11:42
#11
Ja nu skriver den slet ingen ting :-)
13. august 2002 - 11:43
#12
De der variabler jeg definere som Len(ugenr,2) de skifter da sammen med rs ikke?
13. august 2002 - 11:44
#13
Så nu udskriver den de fire først rigtigt.... resten af felterne bliver alle fyldt ud med recordsset no. 5 fra DB
13. august 2002 - 11:48
#14
Jeg kan ikke lige se hvor de variale er som bliver sat til: varnavn = Len(ugenr,2)
13. august 2002 - 11:51
#15
hvis du tænker på if- sætningen så bliver de kort for hver record.. men hvis len(ugenr) = 4 så tager den den gamle værdi af ugenr og ikke den nye du skal tilføje denne linie før den første if sætningen med len(rs("ugenr"): do while not rs.EOF ugenr = rs("ugenr") '<--------- NY LINIE If Len(rs("ugenr")) = 1 Then
13. august 2002 - 11:52
#16
EOF Det var også skirdt formuleret men jeg mener det her: If Len(rs("ugenr")) = 1 Then ugenr = "000"&rs("ugenr") End If .... Har du noget idé om hvorfor den kun udskriver de 5 første og derefter forstætter med nummer 5
13. august 2002 - 11:53
#17
Det er som om den stopper med at loope efter 5 gang
13. august 2002 - 11:55
#18
Prøv at se min kommentar (13/08-2002 11:51:41)
13. august 2002 - 11:55
#19
SÅDAN..... nu virker det...... Må jeg plage dig lidt mere?
13. august 2002 - 11:56
#20
Er det fordi den kommer ind i en uendelig løkke, hvis Len(ugenr) = 4 - så misser den alle If-sætningerne?
13. august 2002 - 11:57
#21
Ja :)
13. august 2002 - 12:00
#22
Min plan til at begynde med var så at lave en menu der helt selv genereres på baggrund af indholdet i databasen. Det er herfor jeg har lavet sådan at alle ugenr tvinges til at antage 4-cifre, idet jeg så kan bestemme ugenr og år sådan her: uge = Left(ugenr,2) aar = Rigth(ugenr,2) Min plan var så at menuen inledningsvis kun skal bestå at en oversigt over de der er oprettet. Herefter skal brugeren så vælge et år, som overføres via en Request.querySting der så bevirker at der kommer en udskrift at alle de uger der er operettet under det pågældende år. Do I make myself clear - Sonst fragen Sie bitte :-)
13. august 2002 - 12:01
#23
der skal stå "en oversigt over de *år*, der er oprettet" i 3. sidste linie
13. august 2002 - 12:08
#24
hvis du øverføre år via en QueryString i sitl med fil_navn.asp?aar=02 for år 2002. Så skal du lavde en SQL sætning som kun vælger de uger som er i år 2002 ?? Det må blive noget med: aar = Request.QueryString("aar") sql = "SELECT ugenr FROM uge WHERE Right(ugenr,2) = '" & aar & "' ORDER BY ugenr"
13. august 2002 - 12:11
#25
jeg var ikke klar over at man kan inbygge eks Right i en SQL-sætning
13. august 2002 - 12:13
#26
Det kan man med Access SQL jeg ved ikke om det vil virke med mySQL eller MSSQL.
13. august 2002 - 12:13
#27
Hvordan får jeg så lavet listen over de år der er oprettet. Skal de i et array? Kan man så sige noget med If exist eller noget i den stil, for kun at den ikke tilføjer samme år flere gange
13. august 2002 - 12:17
#28
OK
13. august 2002 - 12:24
#29
Du kan gøre det med right..: sql = "SELECT DISTINCT Right(ugenr,2) as aartal FROM uge ORDER BY ugenr;" set rs=conn.execute(sql) 'udskriv det do while not rs.eof Response.write rs("aartal") & "<br>" rs.movenext loop
13. august 2002 - 12:28
#30
hvad gør DISTINCT?
13. august 2002 - 12:33
#31
Jeg får en fejl der går op at der opstår konflikt i SQL-sætningen i man ikke sortere efter ugenr hvis man bruger DISTICNT på ugenr. Microsoft OLE DB Provider for ODBC Drivers error '80040e07' [Microsoft][ODBC Microsoft Access Driver] ORDER BY clause (ugenr) conflicts with DISTINCT. /Spiloversigt/JTTips/uge/menu.asp, line 15
13. august 2002 - 12:35
#32
Arh man skal skrive det samme i DISTINCT og ORDER BY: sql = "SELECT DISTINCT Right(ugenr,2) as aartal FROM uge ORDER BY Right(ugenr,2);"
13. august 2002 - 12:37
#33
Så er den vel sådan set i vinkel...... Jeg takker mange gange for hjælpen Det er vel ikke sådan at du har et ICQ-nummer i tilfælde af akut mangel på hjælp :-)
13. august 2002 - 12:50
#34
Normalt hjælper jeg ikke over ICQ længere det blev for meget på et tidspunkt...
13. august 2002 - 13:28
#35
Det er bare helt i orden.... du skal i hvert fald have tak for hjælpen
Kurser inden for grundlæggende programmering