Avatar billede bodyguard Nybegynder
02. juli 2008 - 15:13 Der er 5 kommentarer og
1 løsning

Dato navigering - kode fejl

Hej eksperter,

Nu har jeg suddet og bakset en hel del med dette script og troede faktisk at det virkede, men nej....

Jeg kan af en eller anden grund ikke hente 01-07-2008, selv om jeg ved at den dato er i databasen!


Håber der er nogen som kan hjælpe :)

<DIV align=left>
<form name="datonavigation" method="post" action="vagtrapport.asp">
<%
function findMandag(uge,aar)
  d = DateSerial(aar, 1, 1)                            ' 1/1/i år
                                                      'find mandag i uge 1
  If DatePart("ww", d, 2, 2) = 1 Then                'Hvis 1/1 er i uge 1
      While(DatePart("w", d, 2, 2) <> 1)            'find sidste mandag
        d = DateAdd("d", -1, d)
      WEnd
  Else
      While(DatePart("ww", d, 2, 2) <> 1)              'find næste mandag
    d = DateAdd("d", 1, d)
      WEnd
  End If
  findMandag = DateAdd("d", 7*(uge-1), d)            'juster til ugenummer, mandag
end function

denneAar=Year(date())
denneUge=DatePart("ww",date())




if Request.form("dag") = "" OR Request.form("maaned") = "" OR Request.form("aar") = "" then
    dato = Day(Now)
    maaned = Month(Now)
    aar = Year(Now)
else
    dato = Request.form("dag")
    maaned = Request.form("maaned")
    aar = Request.form("aar")
end if

korrekt_dato = DateSerial(aar,maaned,dato)

uge=DatePart("ww",korrekt_dato)

if dato <> "" AND maaned <> "" AND aar <> "" then
    mandag_start=findMandag(uge,aar)                'mandag
    mandag_stop=dateadd("d",7,mandag_start)            'søndag
else
  mandag_start=findMandag(denneUge,denneAar)        'mandag
  mandag_stop=dateadd("d",7,mandag_A)              'søndag
end if

'******************************************************************************************
%>
<TABLE cellSpacing=0 cellPadding=0 width="95%" height="90%" border=0>
  <TBODY>
  <TR>
    <TD align=left width="100%" valign="top">

      <table border="0" width="100%" cellpadding="4" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111">
      <tr>
          <td class="all-headline"><p class="subheadline">Rapport oversigt for&nbsp;&nbsp;

<%
'************************************************ Dag
Response.Write "<select name=""dag"">"&vbCrLf
For i=1 To 31
    If i < 10 Then
        iTmp = "0"&i
    Else
        iTmp = i
    End if
%>
<option value="<%= iTmp %>" <% If cint(dato) = cint(iTmp) Then %> selected="selected"<% End If %>><%= i %></option>
<%
    Response.Write ""&vbCrLf
Next
Response.Write "</select>"&vbCrLf


'************************************************ Måned
Response.Write "<select name=""maaned"">"&vbCrLf
For i=1 To 12
    If i < 10 Then
        iTmp = "0"&i
    Else
        iTmp = i
    End if
%>
<option value="<%= iTmp %>" <% If cint(maaned) = cint(iTmp) Then %> selected="selected"<% End If %>><%= UCase(Left(MonthName(i),1))&Mid(MonthName(i),2) %></option>
<%
    Response.Write ""&vbCrLf
Next
Response.Write "</select>"&vbCrLf


'************************************************ ÅR
Response.Write "<select name=""aar"">"&vbCrLf
For i=aar-2 To aar+2
%>
<option value="<%= i %>" <% If cint(aar) = cint(i) Then %> selected="selected"<% End If %>><%= i %></option>
<%
    Response.Write ""&vbCrLf
Next
Response.Write "</select>"&vbCrLf

'************************************************ Submit knap
Response.Write "<input type=""submit"" value=""<- G&aring; til dato"">"&vbCrLf
%>
</p>

          </td>
        </tr>
</table>       
       
<table border="0" cellpadding="4" cellspacing="0"  bordercolor="#111111" width="100%">
          <tbody>
<tr>
<td class="niveau-1" width="5%">&nbsp;</td>
<td class="niveau-1" width="10%">Dato</td>
<td class="niveau-1" width="20%">Kunde</td>
<td class="niveau-1" width="15%">Lokation</td>
<td class="niveau-1" width="15%">Dokument</td>
<td class="niveau-1" width="20%">Oprettet af</td>
<td class="niveau-1" width="10%">&nbsp;</td>
</tr></tbody></table>

<!--#include file="includes/forbindelse2.asp"-->
<%

If session("adgangsniveau") = "9" then
    strSQL = "SELECT * FROM vagtrapport_doegnrapport WHERE dato = #"& korrekt_dato &"# ORDER BY dato ASC"
else
    strSQL = "SELECT * FROM vagtrapport_doegnrapport WHERE dato = #"& korrekt_dato &"# AND kundeid = '"& session("kunde") &"' ORDER BY dato ASC"
end if

    objRec.Open strSQL, objConn, 3, 1, 1

while not objRec.EOF
strCount = strCount + 1
%>
Avatar billede erikjacobsen Ekspert
02. juli 2008 - 15:37 #1
Den kan jo have svært ved at vide om det er januar eller juli.

Du kan fx be' om datoen med "....WHERE dato = #2008-07-01# ..."  - så der der ikke noget at være i tvivl om.
Avatar billede bodyguard Nybegynder
02. juli 2008 - 21:37 #2
Det skulle man jo mene, hvis du kigger så er
korrekt_dato = DateSerial(aar,maaned,dato)

og i SQL
strSQL = "SELECT * FROM vagtrapport_doegnrapport WHERE dato = #"& korrekt_dato &"# AND kundeid = '"& session("kunde") &"' ORDER BY dato ASC"


så det hjalp jo ik så meget :|
Avatar billede erikjacobsen Ekspert
02. juli 2008 - 23:27 #3
Jeg mener faktisk hvad jeg skriver. Du kan prøve med

strSQL = "SELECT * FROM vagtrapport_doegnrapport WHERE dato = #" & aar & "-" & maaned & "-" & dato & "# AND kundeid = '"& session("kunde") &"' ORDER BY dato ASC"
Avatar billede bodyguard Nybegynder
02. juli 2008 - 23:53 #4
Det virkede :)

Kom med et svar :D
Avatar billede erikjacobsen Ekspert
02. juli 2008 - 23:57 #5
Jeg samler slet ikke på point, tak. Svar selv, accepter eget svar.

Det har altid været bøvlet med gammeldags ASP, Access (og sikkert andre kombinationer), når Microsoft i misforstået venlighed har skelnet mellem det amerikanske datoformat, og det rigtige.

Der er andre måder at løse det på, men der er ingen grund til at bruge så mange kræfter på gammeldags ASP.
Avatar billede bodyguard Nybegynder
03. juli 2008 - 00:03 #6
Jamen jeg bukker og nejer :)
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