Avatar billede benkebus Nybegynder
26. februar 2002 - 11:06 Der er 6 kommentarer og
1 løsning

Presentation av recordsetet

Jag har denna kod, som skall vara en en lista man fyller i om man ska vara borta. men varför skrivs ordet tomt ut samma antal gånger det finns noteringar för veckan... jag vill bara att det ska skrivas ut en gång ifall det inte finnns någon anteckning för just den dagen i den veckan... Hur skall man göra?

--------------------------------kodsnutt--------------------


  vecka = DatePart("ww", Date, 2, vbFirstFourDays)
  vnr=request.querystring("vnr")
  if vnr ="" then
  vnr = vecka
  end if

    dim Connectionfran,SQLstringKfran,rsfran
    Set Connectionfran = Server.CreateObject("ADODB.Connection")
    Connectionfran.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="&Server.MapPath("db/franvaro.mdb")
    SQLstringKfran="select* from franvaro where vecka ='"&vnr&"'"
    SET rsfran=Connectionfran.Execute(SQLstringKfran)
%>
<table border="0" width="550"><tr>
<td><div align="center">
<table width="550" border="0"><tr>
<td width="90"><a href="java script:popUp('franvaroant.asp')" class="submeny">Lägg till</a></td>
<td align="center" valign="top" width="">
<span class="tdgast">Frånvarolista v. <%= vnr %></span></td>
<td align="right" width="90">
<FORM NAME="myform" class="select">
<SELECT NAME="dest" SIZE=1 onChange="leapto(this.form)">
<option selected value="intranet.asp?textid=31">Välj här</option>
<% For t=0 To 10%>
<option value="intranet.asp?textid=31&vnr=<%=vecka+t%>">Vecka <%=vecka+t%></option>
<% Next %> 
</SELECT>
</FORM>
</td>
</tr></table>
</div>
</td>
</tr>
<tr>
<td><span class="tdsubrub">Måndag</span><br>
<% If (rsfran.BOF AND rsfran.EOF) Then%>
<span class="tdtext">Inget noterat än..</span>
<% Else  %>
<% rsfran.MoveFirst %>
<%Do while Not rsfran.EOF %>
<% if rsfran("dag") = "Måndag" and rsfran("vecka")= vnr then%>
<span class="tdtext"><%=rsfran("franvaro") %></span><br>
<% Else  %>
tomt
<% End If %>
<% rsfran.MoveNext
loop%>
<% End If %>
</td>
</tr>
Avatar billede benkebus Nybegynder
26. februar 2002 - 11:07 #1
Glömde skriva att de andra dagarna i veckan bara är en upprepning av koden för måndagen...
Avatar billede coltau Juniormester
26. februar 2002 - 13:06 #2
Denne if-sætning går ikke godt.
<% if rsfran("dag") = "Måndag" and rsfran("vecka")= vnr then%>
Du må ikke gemme dagen som text - du skal gemme dagen som tal.
0 = Søndag, 1 = Måndag, 2 = Tirsdag etc.

Det betyder at du kan lave din SQL-sætning således:
SQLstringKfran = "select * from franvaro where vecka ='"&vnr&"' order by dag" ' Dag som sortering

Herefter kan du bruke denne kode:
<% for intDag = 0 to 7 ' Udskriv alle 7 dage selvom de er tomme
  if Not rsfran.EOF and rsfran("dag") = intDag then
    Do while Not rsfran.EOF and rsfran("dag") = intDag %>
      <span class="tdtext"><%=rsfran("franvaro") %></span><br>
      <% rsfran.MoveNext
    loop %>
  <% Else  %>
      <span class="tdtext">tomt</span><br>
  <% End If %>
<% next %> ' Dag

Jeg har ikke haft mulighed for at test dette - men jeg håber du kan se ideen.
Avatar billede benkebus Nybegynder
26. februar 2002 - 13:17 #3
var ska jag definiera dagarna som nummer. i databasen jag använder finns följande fält: ID(autonumber), datum(vilket datum posten lades till), franvaro(notatfält där man gör sin anteckning), vecka(ett veckonummer från en selectlista som visar veckans nummer)och dag(från en selectlista som jag gjort som innehåller dagarnas namn)... om det hjälper så kan klistrar jag in koden som lägger till värde i databasen här under:

------------------------------------------------kodsnutt gör anteckning------------------
<% vecka = DatePart("ww", Date, 2, vbFirstFourDays) %>
<html>
<head>
    <title>Untitled</title>
    <link href="includes/stylecss.css" rel="stylesheet" type="text/css">
<body>
<form action="franvaroant_laggtill.asp" method="post" name="Laggtill" id="Laggtill">
<input type="hidden" name="datum" value="<%= now() %>" class="input">
    <table bgcolor="White" border="0" cellpadding="0" cellspacing="0">
    <tr>
    <td colspan="2"><span class="tdsubrub">Här lägger du till en anteckning i frånvarolistan...</span><br><br></td>
    </tr>
    <td><span class="form2">Vilken vecka:</span> <SELECT NAME="vecka" SIZE=1>
<option selected>Välj här</option>
<% For t=0 To 10%>
<option value="<%=vecka+t%>"><%=vecka+t%></option>
<% Next %> 
</SELECT>
</td>
    <td><span class="form2">Vilken dag:</span> <SELECT NAME="dag" SIZE=1>
<option selected>Välj här</option>
<option value="Måndag">Måndag</option>
<option value="Tisdag">Tisdag</option>
<option value="Onsdag">Onsdag</option>
<option value="Torsdag">Torsdag</option>
<option value="Fredag">Fredag</option>
</SELECT>
</td>
</tr><tr>
<td colspan="2" valign="top"><br><span class="form2">Anteckning</span>:<br>
<textarea cols="25" rows="5" name="anteckning" class="input"></textarea></td>
    </tr><tr>
    <td colspan="2" align="center"><br><br><input class="input2" type="submit" value="Gör anteckning">&nbsp;&nbsp;&nbsp;&nbsp;<input class="input2" type="reset" value="Gör om"></td></tr>
    </table>
</FORM>
</body>
</html>

----------------------------------------------slut på den snutten------------------------------

-----------------------------------------------här är koden som lägger till i databasen-----------------------------
<%
Dim MySQL
Dim MyTable
Dim MyDatabase
Dim MyRecordSet
Dim MyDataConnection

MyDatabase = "db/franvaro.mdb"
MyTable = "franvaro"

Set MyDataConnection = Server.CreateObject("ADODB.Connection")
Set MyRecordSet = Server.CreateObject("ADODB.Recordset")
MyDataConnection.Open "DBQ=" & Server.Mappath(MyDatabase) & ";Driver={Microsoft Access Driver (*.mdb)};"

MySQL = "SELECT " & MyTable & ".* FROM " & MyTable
MyRecordSet.Open MySQL, MyDataConnection, 1, 3

function ReplaceCRLF(fString)
fString = Replace(fString, CHR(13), "")
fString = Replace(fString, CHR(10), "<BR>")
ReplaceCRLF = fString
end function

MyRecordSet.AddNew
    MyRecordSet.Fields("datum") = Request.Form("datum")
    MyRecordSet.Fields("vecka") = ReplaceCRLF(Request.Form("vecka"))
    MyRecordSet.Fields("dag") = Request.Form("dag")
    MyRecordSet.Fields("franvaro") = Request.Form("anteckning")
MyRecordSet.Update
MyRecordSet.Close

%>
-----------------------------------------------slut på den lilla snutten------------------
Avatar billede coltau Juniormester
27. februar 2002 - 10:19 #4
Her skal det være:

<option value="0">Måndag</option>
<option value="1">Tisdag</option>
<option value="2">Onsdag</option>
<option value="3">Torsdag</option>
<option value="4">Fredag</option>

Herefter vil tallene 0 - 4 findes i databasen i stedet for "Måndag" - "Fredag". Det er fordi tallene kan sorteres.

Samme kode igen:
<% for intDag = 0 to 4 ' Udskriv 5 dage selvom de er tomme
  if Not rsfran.EOF and rsfran("dag") = intDag then
    Do while Not rsfran.EOF and rsfran("dag") = intDag %>
      <span class="tdtext"><%=rsfran("franvaro") %></span><br>
      <% rsfran.MoveNext
    loop %>
  <% Else  %>
      <span class="tdtext">tomt</span><br>
  <% End If %>
<% next %> ' Dag
Avatar billede benkebus Nybegynder
04. marts 2002 - 07:47 #5
ska man då ha en ifsats med "if intdag=0 then intdag=Måndag" osv...
Avatar billede coltau Juniormester
04. marts 2002 - 14:39 #6
Nej. Denne for-next genneløber alle 5 dage.

Hvis du skal udskrive navnene måndag, tirsdag osv så skal du have en if-sætning eller således:

Dim dagnavn(4)
dagnavn(0) = "Måndag"
dagnavn(1) = "Tirsdag"
dagnavn(2) = "Onsdag"
dagnavn(3) = "Torsdag"
dagnavn(4) = "Fredag"

Så kan du udskrive navnet for dagen med:

strDag = dagnavn(RS("dag")) ' Findern navnet på dagen.
Avatar billede benkebus Nybegynder
04. marts 2002 - 15:01 #7
Alltså du får ursäkta mig men jag kan inte få ihopa detta...
detta är den kod jag har nu...

  vnr=request.querystring("vnr")
    dim Connectionfran,SQLstringKfran,rsfran
    Set Connectionfran = Server.CreateObject("ADODB.Connection")
    Connectionfran.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="&Server.MapPath("db/franvaro.mdb")
    SQLstringKfran="select* from franvaro where vecka ='"&vnr&"'"
    SET rsfran=Connectionfran.Execute(SQLstringKfran)
%>
<table border="0" width="550"><tr>
<td><div align="center">
<table width="550" border="0"><tr>
<td width="90"><a href="java script:popUp2('franvaroant.asp')" class="submeny">Lägg till</a></td>
<td align="center" valign="top" width="">
<span class="tdgast">Frånvarolista v. <%= vnr %></span></td>
<td align="right" width="90">
<FORM NAME="myform" class="select">
<SELECT NAME="dest" SIZE=1 onChange="leapto(this.form)">
<option selected value="intranet.asp?textid=31">Välj här</option>
<% For t=0 To 10%>
<option value="intranet.asp?textid=31&vnr=<%=vecka+t%>">Vecka <%=vecka+t%></option>
<% Next %> 
</SELECT>
</FORM>
</td>
</tr></table>
</div>
</td>
</tr>
<tr>
<td><span class="tdsubrub">Måndag</span><br>
<% If (rsfran.BOF AND rsfran.EOF) Then%>
<span class="tdtext">Inget noterat än..</span>
<% Else  %>
<% rsfran.MoveFirst %>
<%Do while Not rsfran.EOF %>
<% if rsfran("dag") = "Måndag" and rsfran("vecka")= vnr then%>
<span class="tdtext"><%=rsfran("franvaro") %></span><br>
<% Else  %>
tomt
<% End If %>
<% rsfran.MoveNext
loop%>
<% End If %>
</td>
</tr>
<tr>
<td><span class="tdsubrub">Tisdag</span><br>
<% If (rsfran.BOF AND rsfran.EOF) Then%>
<span class="tdtext">Inget noterat än..</span>
<% Else  %>
<% rsfran.MoveFirst %>
<%Do while Not rsfran.EOF %>
<% if rsfran("dag") = "Tisdag" and rsfran("vecka")= vnr then%>
<span class="tdtext"><%=rsfran("franvaro") %></span><br>
<% Else  %>
tomt
<% End If %>
<% rsfran.MoveNext
loop%>
<% End If %>
</td>
</tr>
<tr>
<td><span class="tdsubrub">Onsdag</span><br>
<% If (rsfran.BOF AND rsfran.EOF) Then%>
<span class="tdtext">Inget noterat än..</span>
<% Else  %>
<% rsfran.MoveFirst %>
<%Do while Not rsfran.EOF %>
<% if rsfran("dag") = "Onsdag" and rsfran("vecka")= vnr then%>
<span class="tdtext"><%=rsfran("franvaro") %></span><br>
<% Else  %>
tomt
<% End If %>
<% rsfran.MoveNext
loop%>
<% End If %>
</td>
</tr>
<tr>
<td><span class="tdsubrub">Torsdag</span><br>
<% If (rsfran.BOF AND rsfran.EOF) Then%>
<span class="tdtext">Inget noterat än..</span>
<% Else  %>
<% rsfran.MoveFirst %>
<%Do while Not rsfran.EOF %>
<% if rsfran("dag") = "Torsdag" and rsfran("vecka")= vnr then%>
<span class="tdtext"><%=rsfran("franvaro") %></span><br>
<% Else  %>
tomt
<% End If %>
<% rsfran.MoveNext
loop%>
<% End If %>
</td>
</tr>
<tr>
<td><span class="tdsubrub">Fredag</span><br>
<% If (rsfran.BOF AND rsfran.EOF) Then%>
<span class="tdtext">Inget noterat än..</span>
<% Else  %>
<% rsfran.MoveFirst %>
<%Do while Not rsfran.EOF %>
<% if rsfran("dag") = "Fredag" and rsfran("vecka")= vnr then%>
<span class="tdtext"><%=rsfran("franvaro") %></span><br>
<% Else  %>
tomt
<% End If %>
<% rsfran.MoveNext
loop%>
<% End If %>
</td>
</tr>
</table>

och det enda problemet är att om det finns tre anteckningar för en vecka, exempelvis måndag,tisdag och onsdag så skriver den ut tomt tre gånger på de dagar som inte har någon anteckning och två gånger på de dagfar som har anteckning... men jag vet inte hur jag skall få ihop ditt exempel med min databas och sida...  det jag vill ha är att det ska stå:

Måndag
Kalle kommer senare
Tisdag
Ingen notering än
Onsdag
Kalle slutar tidigare
Anders slutar tidigare
Torsdag
Ingen notering än
Fredag
Kalle slutar tidigare
Anders slutar tidigare

det är mitt mål...
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
Kurser inden for grundlæggende programmering

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