12. maj 2006 - 08:32
Der er
81 kommentarer og 1 løsning
Vise data afhængig af dato
Hej Som titlen siger, skal jeg have lavet en kode. Som selv tjekker dags dato og finder den nærmeste søndag. Altså Hvis det i dag er Tirsdag så tjekker koden hvad dag det er og så viser det som kommer den nærmeste søndag. Hvordan gøres det? - I ASP!
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
Beskrivelsen er det næste søndag den skal finde, undtagen hvis det er søndag så vises dagen? Du kan bruge date Serial til at samle datoen. Søndag er i ASP dag 1 og lørdag dag 7, så if sætningen tjekker på om det er søndag og er det ikke sødag ligge 8 - uge dagen til for at finde antal dage i næste søndag: offsetToSunday = 0 if weekDay(Date) <> vbSunday then offsetToSunday = 8-WeekDay(Date) dato = DateSerial(Year(date), Month(date), Day(Date) + offsetToSunday)
Dvs. Det skal egentlig så sådan her ud: <% offsetToSunday = 0 if weekDay(Date) <> vbSunday then offsetToSunday = 8-WeekDay(Date) dato = DateSerial(Year(date), Month(date), Day(Date) + offsetToSunday) Response.Write "" & navn & "" Response.Write "" & logo & "" Response.Write "" & besked & "" end if %>
Den sætning tjekker linien igennem og tilbagesender kun de dataer der må vises den søndag.
Jeg tror ikke helt med på hvad du mener? dato indeholden datoen for næste søndag Så du kan bruge den i en SQL sætning til at finde poster i en dato for dag eks: offsetToSunday = 0 if weekDay(Date) <> vbSunday then offsetToSunday = 8-WeekDay(Date) dato = DateSerial(Year(date), Month(date), Day(Date) + offsetToSunday) datoSQL = year(dato) & "-" &month(dato) & "-" & day(dato) SQL = "Select * FROM tabelnavn wher datoKolonne = #" & datoSQL & "#" 'Så lave et recordset og udskrive posterne: Set rs =Conn.Execute(SQL) do while not rs.EOF ..Udksirve her rs.MoveNext loop Eller du kan lave en if sætning direkte på datoen med if dato = datoVariable then 'udskrive data for søndaen her end if
jeg kan se jeg bliver nød til at smutte en del timer.. men kigger ind senere eller er der jo nok andre som ser spørgsmålet :)
Okay, men jeg prøver mig frem med dine eksempler. Mange tak indtil nu :-)
Jeg kan ikke få det til at virke det viser ingenting på siden. Det kunne være du kunne give et eksempel?
Eks med database, her en Access database og med en datoKolonne som skal være af typen dato/klokkeslæt, Conn skal være en connection til databasefilen: offsetToSunday = 0 if weekDay(Date) <> vbSunday then offsetToSunday = 8-WeekDay(Date) dato = DateSerial(Year(date), Month(date), Day(Date) + offsetToSunday) datoSQL = year(dato) & "-" &month(dato) & "-" & day(dato) SQL = "Select * FROM tabelnavn wher datoKolonne = #" & datoSQL & "#" 'Så lave et recordset og udskrive posterne: Set rs =Conn.Execute(SQL) do while not rs.EOF ..Udksirve her rs.MoveNext loop hvilken type eksempel skal det være?
Det er den jeg har brugt, men den udskriver ingen resultater...: <% offsetToSunday = 0 if weekDay(Date) <> vbSunday then offsetToSunday = 8-WeekDay(Date) dato = DateSerial(Year(date), Month(date), Day(date) + offsetToSunday) datoSQL = year(dato) & "-" &month(dato) & "-" & day(dato) Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath("blablabla; password=") Conn.Open DSN SQL = "Select * FROM blabla where butiksaabning = #" & datoSQL & "#" Set rs = Conn.Execute(SQL) do while not rs.EOF butiksId = "" & rs("butiksId") & "" butiksnavn = "" & rs("butiksnavn") & "" butiksaabning = "" & rs("butiksaabning") & "" butikslogo = "" & rs("butikslogo") & "" Response.Write "" & rs("butiksnavn") & "" rs.MoveNext loop Conn.Close Set Conn = Nothing %>
Skal datokolonnen være dato/klokkeslæt. Det er fordi at der er flere datoer i F.eks 14-05-2006,15-05-2006,17-05-2006,14-06-2006
Problemet er at den ikke viser noget : Response.Write "<li>" & rs("butiksnavn") & "</li><br>" Man ser de små sorte dots, men ingen tekst....
WUHUUU!!! Det virker nu :-)!!!!
Mit spørgsmål er så: Skal datokolonnen være dato/klokkeslæt. Det er fordi at der er flere datoer i F.eks 14-05-2006,15-05-2006,17-05-2006,14-06-2006 Kan den godt søge i en kolonnen mellem flere forskellige datoer og udvælge den rigtige
OG er det muligt at sætte tidspunkt på også f.eks 14-05-2006 - 10:00 - 13:00,21-05-2006 - 10:00 - 13:00,28-05-2006 - 10:00 - 13:00
<% Dim SQL, arrtid offsetToSunday = 0 if weekDay(Date) <> vbSunday then offsetToSunday = 8-WeekDay(Date) dato = DateSerial(Year(date), Month(date), Day(Date) + offsetToSunday) datoSQL = year(dato) & "-" &month(dato) & "-" & day(dato) Conn.Open DSN SQL = "Select * FROM xxxx where xxxx = #" & datoSQL & "#" 'Så lave et recordset og udskrive posterne: Set rs =Conn.Execute(SQL) Do while not rs.EOF butiksId = "" & rs("butiksId") & "" butiksnavn = "" & rs("butiksnavn") & "" butiksaabning = "" & rs("butiksaabning") & "" butikslogo = "" & rs("butikslogo") & "" arrtid = Split(SQL,",") Response.Write "<p>Åbningstider:" Response.Write "<ul>" ' Her bruges en løkke til at genneløbe arrFrugt For t = 0 to 4 Response.Write "<li>" & arrtid(t) Next Response.Write "</ul>" rs.MoveNext loop %>
Ja hvis du vil gemme en dato bør det være i en kolonne af typen Dato/klokkeslæt men gemmer du flere datoer i samme kolnne? så skal du ud i noget instr: if inStr(datoer, dato) > 0 then 'Datoen findes end if du kan også bruge inStr direkte i SQL sætningen. så skal man bare bruge samme format dd-mm-yyyy så den kan findes: offsetToSunday = 0 if weekDay(Date) <> vbSunday then offsetToSunday = 8-WeekDay(Date) dato = DateSerial(Year(date), Month(date), Day(Date) + offsetToSunday) datoSQL = year(dato) & "-" &month(dato) & "-" & day(dato) Conn.Open DSN SQL = "Select * FROM xxxx where instr(1, xxxx, " & dato & ") > 0"
men der kan kun være en dato i en dato/klokklesæt så hvis du vil havde flere datoer i samme kolonne kan det kun være i en tekst kolonne og så skal det gøres med instr. hvis du har det på denne måde: 14-05-2006 - 10:00 - 13:00,21-05-2006 - 10:00 - 13:00,28-05-2006 - 10:00 - 13:00 Bliver det og så med instr til at finde datoen og så finde klokken efter datoen offsetToSunday = 0 if weekDay(Date) <> vbSunday then offsetToSunday = 8-WeekDay(Date) dato = DateSerial(Year(date), Month(date), Day(Date) + offsetToSunday) str = rs("datokolonne") iDato = inStr(1,str,dato) if iDato> 0 then 'dato findes slutTid = instr(iDato,str,",") if slutTid = 0 then slutTid = len(str) tidPunkt = mid(str, iDato+15, sluttid + iDato+15) 'Så har du start og slut i tidPunkt. slipt på " - " og du har startog slut i et array end if
Så det bliver således: SQL = "Select * FROM bu_001_data where butiksaabning = #" & datoSQL & "#" 'Så lave et recordset og udskrive posterne: Set rs =Conn.Execute(SQL) Do while not rs.EOF butiksId = "" & rs("butiksId") & "" butiksnavn = "" & rs("butiksnavn") & "" butiksaabning = "" & rs("butiksaabning") & "" butikslogo = "" & rs("butikslogo") & "" offsetToSunday = 0 if weekDay(Date) <> vbSunday then offsetToSunday = 8-WeekDay(Date) dato = DateSerial(Year(date), Month(date), Day(Date) + offsetToSunday) str = rs("datokolonne") iDato = inStr(1,str,dato) if iDato> 0 then 'dato findes slutTid = instr(iDato,str,",") if slutTid = 0 then slutTid = len(str) tidPunkt = mid(str, iDato+15, sluttid + iDato+15) 'Så har du start og slut i tidPunkt. 'slipt på " - " og du har startog slut i et array end if
hvad ligger der i kolonnen butiksaabning ?
hvis det er den kkolonne som indeholder: 14-05-2006 - 10:00 - 13:00,21-05-2006 - 10:00 - 13:00,28-05-2006 - 10:00 - 13:00 Så det i stil med: SQL = "Select * FROM bu_001_data" 'Så lave et recordset og udskrive posterne: Set rs =Conn.Execute(SQL) offsetToSunday = 0 if weekDay(Date) <> vbSunday then offsetToSunday = 8-WeekDay(Date) dato = DateSerial(Year(date), Month(date), Day(Date) + offsetToSunday) Do while not rs.EOF str = rs("butiksaabning") iDato = inStr(1,str,dato) if iDato> 0 then butiksId = "" & rs("butiksId") & "" butiksnavn = "" & rs("butiksnavn") & "" butiksaabning = "" & rs("butiksaabning") & "" butikslogo = "" & rs("butikslogo") & "" slutTid = instr(iDato,str,",") if slutTid = 0 then slutTid = len(str) tidPunkt = mid(str, iDato+15, sluttid + iDato+15) tidArr = split(tidPunkt, "-") StartTidspunkt = trim(tidArr(0)) StopTidspunkt = trim(tidArr(1)) 'UDSKRIV data her end if rs.MoveNext loop
Hvordan udskriver jeg dataen har flg: Response.Write "<li>" & butiksnavn & "</li><br>" Response.Write "Tid" & butiksaabning & "<br>" Der hvor der står: udskriv data her den kolonne indeholder : 14-05-2006 - 10:00 - 13:00,21-05-2006 - 10:00 - 13:00,28-05-2006 - 10:00 - 13:00 og skal bare splittes ved kommaet
Ja du udskriver på den måde: Response.Write "<li>" & butiksnavn & "</li><br>" Response.Write "Tid" & butiksaabning & "<br>"
Den viser intet i Tid: der ingeting derfeter!
Prøv at rette denne linie: iDato = inStr(1,str,dato) Til dette: iDato = inStr(1,str,replace(dato, "/", "-"))
Nej desværre hjalp ikke...
Så prøv at udskrive den dato den regner ud: offsetToSunday = 0 if weekDay(Date) <> vbSunday then offsetToSunday = 8-WeekDay(Date) dato = DateSerial(Year(date), Month(date), Day(Date) + offsetToSunday) response.write dato og tjek det er den rigtige dato den regner sig frem til.. og kolonnene indeholdte datoer i dette format?? 14-05-2006 - 10:00 - 13:00,21-05-2006 - 10:00 - 13:00,28-05-2006 - 10:00 - 13:00
Okay, det prøver jeg lige tror det er det...! har nemlig en | mellem dato og klokkeslæt altså f.eks 14-05-2006 | 10:00 - 13:00
De ser nu flg ud i min db: 14-05-2006 - 10:00 - 17:00,21-05-2006 - 09:00 - 17:00,28-05-2006 - 14:00 - 20:00 Men virker stadig ikke kan det være mellemrummet?
Kan det være fordi at dato udskriften ikke er delt med en - men istedet et , dato = DateSerial(Year(date), Month(date), Day(Date) + offsetToSunday)
Der en fejl i når jeg udskriver tidpunkt får jeg flg: :00 - 13:00,21-05-2006 - 10:00 - 13 Dvs. den ikke tager dato og første tal med fra tid og den deler/splitter ikke ved kommaet!
Har nemlig prøvet og udskrive dette: Response.Write StartTidspunkt & "<br>" Response.Write "<br>" Response.Write StopTidspunkt Det giver flg: :00 13:00,21 Det viser jo at den ikke stopper ved kommeaet og at den ikke har de første cifre med!
Prøv at rette så datoen får 0 ved entelt tal: offsetToSunday = 0 if weekDay(Date) <> vbSunday then offsetToSunday = 8-WeekDay(Date) dato = DateSerial(Year(date), Month(date), Day(Date) + offsetToSunday) dato = Right("0" & day(dato),2) & "-" & Right("0" & month(dato),2) & "-" year(dato)
Det hjalp egentlig ikke...? hvad kan det være?
Hvis man udskriver: Response.Write dato får man 21-05-2006 Men hvis jeg skriver: Response.Write butiksaabning kommer der intet?!
ideen var at den skulle formater dato som dd-mm-yyyy og så skal datoerne i butiksaabning stå i formatet dd-mm-yyyy så de to formater er ens. Når den eks tjekker for "12/5/2006" med "12-05-2006" vil de to ikke være ens når de sammenlignes som strenge med instr, så derfor dato-foramtet i begge variable være ens. Har du en linie som?: butiksaabning = rs("butiksaabning")
Linien i rs("butiksaabning") ser f.eks således her ud: 21-05-2006
ok men du skriver hvis du skriver: Response.Write butiksaabning kommer der intet?! Så kunne det tyde på der ikke er lagt noget ind i variablen butiksaabning.
Får denne fejl hvis jeg tilføjer en ny dato til databasen der ser således ud 21/05-2006 så kommer denne fejl: Microsoft VBScript runtime error '800a0009' Subscript out of range: '[number: 0]' /fil.asp, line 38
rs("butiksaabning") = 14-05-2006 - 10:00 - 13:00,21-05-2006 - 10:00 - 13:00 og selvfølgelig flere dette var bare en af linier
Mente 21/05-2006 = 21/05/2006
kan der være en butiksaabning som er tom ? Kan du evt. vise hvordan koden er lige nu.
jA OK.. :-) Her er koden: <% Conn.Open DSN SQL = "Select * FROM bu_001_data" 'Så lave et recordset og udskrive posterne: Set rs =Conn.Execute(SQL) offsetToSunday = 0 if weekDay(Date) <> vbSunday then offsetToSunday = 8-WeekDay(Date) dato = DateSerial(Year(date), Month(date), Day(Date) + offsetToSunday) dato = Right("0" & day(dato),2) & "-" & Right("0" & month(dato),2) & "-" & year(dato) Do while not rs.EOF str = "" & rs("butiksaabning") & "" iDato = inStr(1,str,replace(dato, ",", "-")) if iDato > 0 then butiksId = "" & rs("butiksId") & "" butiksnavn = "" & rs("butiksnavn") & "" butikslogo = "" & rs("butikslogo") & "" slutTid = instr(iDato,str,",") if slutTid = 0 then slutTid = len(str) tidPunkt = mid(str, iDato+15, sluttid + iDato+15) tidArr= split(tidPunkt, "/") StartTidspunkt = trim(tidArr(0)) StopTidspunkt = trim(tidArr(1)) 'Response.Write "<img src=" & butikslogo & "><br><br><br>" 'Response.Write "<br>" 'Response.Write "<li>" & butiksnavn & "</li><br>" Response.Write "<br>" 'Response.Write "Hvad er næste søndags dato: " & dato & "<br>" 'Response.Write "<br>" 'Response.Write "Vi har åbent fra Kl.<b> " & butiksaabning & "</b><br>" 'Response.Write StartTidspunkt & "<br>" Response.Write "<br>" 'Response.Write StopTidspunkt Response.Write butiksaabning & "<br>" Response.Write dato end if rs.MoveNext loop Conn.Close Set Conn = Nothing %> og i dbasen ser kolonnen således ud: butiksaabning 14-05-2006 / 10:00 - 13:00,21-05-2006 - 10:00 - 13:00 14-05-2006 | 13:00 - 17:00,21-05-2006 - 10:00 - 17:00 14-05-2006 13:00 - 17:00,21-05-2006 - 10:00 - 13:00 14-05-2006 - 13:34 - 17:31,21-05-2006 - 10:00 - 13:00 21-05-2006 21/05/2006
Ok prøv at rette det til dette: <% Conn.Open DSN SQL = "Select * FROM bu_001_data" 'Så lave et recordset og udskrive posterne: Set rs =Conn.Execute(SQL) offsetToSunday = 0 if weekDay(Date) <> vbSunday then offsetToSunday = 8-WeekDay(Date) dato = DateSerial(Year(date), Month(date), Day(Date) + offsetToSunday) dato = Right("0" & day(dato),2) & "-" & Right("0" & month(dato),2) & "-" & year(dato) Do while not rs.EOF str = "" & rs("butiksaabning") & "" str = replace(str, "/","-") 'Der var en dato med / og ikke - så sikre - når der testes iDato = inStr(1, str, dato) if iDato > 0 then butiksId = "" & rs("butiksId") & "" butiksnavn = "" & rs("butiksnavn") & "" butikslogo = "" & rs("butikslogo") & "" slutTid = instr(iDato,str,",") if slutTid = 0 then slutTid = len(str) tidPunkt = mid(str, iDato+15, sluttid + iDato+15) tidArr= split(tidPunkt, "-") 'Skal spilte på - da der - imellem de to tidspunkter if ubound(tidArr) >= 1 then StartTidspunkt = trim(tidArr(0)) StopTidspunkt = trim(tidArr(1)) else 'hvis der ikke er angivet et tidspunkt skriv hvad den så skal skrive her. StartTidspunkt = "" StopTidspunkt = "" end if 'Response.Write "<img src=" & butikslogo & "><br><br><br>" 'Response.Write "<br>" 'Response.Write "<li>" & butiksnavn & "</li><br>" Response.Write "<br>" 'Response.Write "Hvad er næste søndags dato: " & dato & "<br>" 'Response.Write "<br>" 'Response.Write "Vi har åbent fra Kl.<b> " & butiksaabning & "</b><br>" 'Response.Write StartTidspunkt & "<br>" Response.Write "<br>" 'Response.Write StopTidspunkt Response.Write butiksaabning & "<br>" Response.Write dato end if rs.MoveNext loop Conn.Close Set Conn = Nothing %>
Har desværre ikke hjulpet har ryddet op i dben så der er : 14-05-2006 - 10:00 - 13:00,21-05-2006 - 10:00 - 13:00 14-05-2006 - 13:00 - 17:00,21-05-2006 - 10:00 - 17:00 14-05-2006 - 13:00 - 17:00,21-05-2006 - 10:00 - 13:00 14-05-2006 - 13:34 - 17:31,21-05-2006 - 10:00 - 13:00 Men viser stadig intet
Hvis jeg prøver at udskrive str så får jeg strengen fra butiksaabning, det er derfra det går galt men hvad ved jeg ikke...
Skal datoerne i databasen skrives således: 21/05-2006 eller skal de skrives med 21-05-2006
Der skal tilføjes en linie mere: butiksaabning = rs("butiksaabning") der hvor de andre felter bliver lagt i variable
datoen kan skrives som enten 21/05-2006 eller 21-05-2006.
Ja så står det rigtigt, men det virker stadig ikke har tilføjet den variabel til recordsettet
Kan det være fordi at - 10:00 - 13:00 ikke regnes med.... eller hvad?? altså at det e kun er datoen den søger efter i databasen for tidspunkt er jo også i db'en
ok det lyder lidt underligt... Prøv at tilføje denne linie i toppen af koden så for at sidre den køre dk format: Session.LCID = 1030
Ja den kigger kun på datoen.
og så ud fra datoen finder den start og stop tidspunkt i de to variable hvis der angivet et tidspunkt: StartTidspunkt StopTidspunkt
Hvis jeg prøver at lave en response.write på starttidspunkt giver det flg resultat på test siden: :00
For når et tidspunkt indsættes i databasen i butiksaabning kolonnen bliver det flg: 21-05-2006 - 10:00 - 13:00,28-05-2006 - 10:00 - 13:00
ok, men vil du havde det som to variable "10:00" og "13:00" eller som en variable med "10:00 - 13:00" ?
Bare som en enkelt variabel.. det er vil være fint..
Hvor splitter koden egentlig de forskelllige dato sæt altså f.eks: 21-05-2006 - 10:00 - 13:00,28-05-2006 - 10:00 - 13:00 skilles ved kommaet der ved 13:00,28-05-2006...
den finder datoen eksvis den 28-05-2006 og så søger den efter , fra det sted hvor datoen blev fundet, hvis ikke er der komma tages indtil slutningen af strengen. Men det kan være det skal laves lidt om, når der kan være en dato uden tidspunkt.
Nårh okay. Altså der vil ikke være datoer uden tidspunkter...
ok så prøv at rette koden til dette så den udskriver variablen tidpunkt: <% Conn.Open DSN SQL = "Select * FROM bu_001_data" 'Så lave et recordset og udskrive posterne: Set rs =Conn.Execute(SQL) offsetToSunday = 0 if weekDay(Date) <> vbSunday then offsetToSunday = 8-WeekDay(Date) dato = DateSerial(Year(date), Month(date), Day(Date) + offsetToSunday) dato = Right("0" & day(dato),2) & "-" & Right("0" & month(dato),2) & "-" & year(dato) Do while not rs.EOF str = "" & rs("butiksaabning") & "" str = replace(str, "/","-") 'Der var en dato med / og ikke - så sikre - når der testes iDato = inStr(1, str, dato) if iDato > 0 then butiksId = "" & rs("butiksId") & "" butiksnavn = "" & rs("butiksnavn") & "" butikslogo = "" & rs("butikslogo") & "" butiksaabning = "" & rs("butiksaabning") & "" slutTid = instr(iDato,str,",") if slutTid = 0 then slutTid = len(str) tidPunkt = mid(str, iDato+12, sluttid - (iDato+10)) tidPunkt = trim(tidPunkt) 'Response.Write "<img src=" & butikslogo & "><br><br><br>" 'Response.Write "<br>" 'Response.Write "<li>" & butiksnavn & "</li><br>" 'Response.Write "<br>" 'Response.Write "Hvad er næste søndags dato: " & dato & "<br>" 'Response.Write "<br>" 'Response.Write "Vi har åbent fra Kl.<b> " & butiksaabning & "</b><br>" Response.Write tidPunkt & "<br>" Response.Write "<br>" 'Response.Write StopTidspunkt 'Response.Write butiksaabning & "<br>" Response.Write dato & "<br>" end if rs.MoveNext loop Conn.Close Set Conn = Nothing %>
Okay det virker nu. Den udskriver tidspunktet, men skal datoen ikke også være med i eller skal man lave en separat response.write dato for den?
Microsoft VBScript runtime error '800a0005' Invalid procedure call or argument: 'mid' /test.asp, line 37 den der mid skal det ikke være trim?
Arh nu tror jeg ved hvad du mener :) Den skal udskrive alt det som står i database (men kun for den dato) eks: 21-05-2006 - 10:00 - 13:00 For lige nu skal den man skvie dato som en variable for sig selv?
Sorry glem mit forrige spørgsmål og udskrivning af dato.. for det kan jeg jo bare hente i strengen dato. Men den skriver en fejl ang. argument 'mid'
Den fejl kommer hvis der ikke er tidspunkt på somm det er lavet lige nu. Prøv at rette: if slutTid = 0 then slutTid = len(str) tidPunkt = mid(str, iDato+12, sluttid - (iDato+10)) tidPunkt = trim(tidPunkt) Til dette: if slutTid = 0 then slutTid = len(str) tidPunkt = mid(str, iDato, sluttid - iDato) tidPunkt = trim(tidPunkt) Så vil tidPunkt indeholde både dato og klokkeslætet.
Det virkede hvis jeg lavede response.write tidPunkt, men hvis jeg skriver response.write butiksaabning kommer der stadig intet...
Altså kan så forstå at det er tidpunkt jeg skal udskrive og derfor ikke butiksaabning...
Det skal faktisk være sådan her: if slutTid = 0 then slutTid = len(str) tidPunkt = mid(str, iDato, (sluttid - iDato)+1) tidPunkt = trim(tidPunkt)
Ja nu vil tidPunkt indeholde datoen for næste søndag + det klokkeslæt som er angivet for datoen, eks: 21-05-2006 - 10:00 - 13:00 (præsis som angivet i databasen)
Jeg fandt ud af at det var bedre at den kun skrev tidspunkt ud så jeg rettede tiL: if slutTid = 0 then slutTid = len(str) tidPunkt = mid(str, iDato+12, (sluttid - iDato)+1) tidPunkt = trim(tidPunkt) Det er den rigtige metode ikke, det virkede ihverrfald
Wauw..... Mange tak for din udholdenhed... ;-)!!! Endelig virker det.... Hvis det har fanget dig er du meget så velkommen i mit projekt..! hvis det var noget for dig?
Ups der er et problem den splitter ikke de forskellige datoer se her: 10:00 - 17:00,28-05-2006 - 10:00 - 13:00
Har du stadig linien: slutTid = instr(iDato,str,",") med sådan her: slutTid = instr(iDato,str,",") if slutTid = 0 then slutTid = len(str) tidPunkt = mid(str, iDato+12, (sluttid - iDato)+1) tidPunkt = trim(tidPunkt)
Det hjalp at sætte det ind ups.. kom til at slette det før, men den viser stadig : 10:00 - 13:00,28-05-2006 - Her er min kode sårn pt.: <% Conn.Open DSN SQL = "Select * FROM bu_001_data" 'Så lave et recordset og udskrive posterne: Set rs =Conn.Execute(SQL) offsetToSunday = 0 if weekDay(Date) <> vbSunday then offsetToSunday = 8-WeekDay(Date) dato = DateSerial(Year(date), Month(date), Day(Date) + offsetToSunday) dato = Right("0" & day(dato),2) & "-" & Right("0" & month(dato),2) & "-" & year(dato) Do while not rs.EOF str = "" & rs("butiksaabning") & "" str = replace(str, "/","-") 'Der var en dato med / og ikke - så sikre - når der testes iDato = inStr(1, str, dato) if iDato > 0 then butiksId = "" & rs("butiksId") & "" butiksnavn = "" & rs("butiksnavn") & "" butikslogo = "" & rs("butikslogo") & "" butiksaabning = "" & rs("butiksaabning") & "" slutTid = instr(iDato,str,",") if slutTid = 0 then slutTid = len(str) tidPunkt = mid(str, iDato+12, (sluttid - iDato)+1) tidPunkt = trim(tidPunkt) if slutTid = 0 then slutTid = len(str) tidPunkt = mid(str, iDato+12, (sluttid - iDato)+1) tidPunkt = trim(tidPunkt) Response.Write "<img src=" & butikslogo & "><br><br><br>" Response.Write "<br>" Response.Write "<li>" & butiksnavn & "</li><br>" Response.Write "<br>" Response.Write "Hvad er næste søndags dato: " & dato & "<br>" Response.Write "<br>" Response.Write "Vi har åbent fra Kl.<b> " & tidPunkt & "</b><br>" end if rs.MoveNext loop Conn.Close Set Conn = Nothing %>
ok prøv at rette koden til dette, hvor der ikke er +12 til iDato og tidPunkt udregningen kun er med en gang: <% Conn.Open DSN SQL = "Select * FROM bu_001_data" 'Så lave et recordset og udskrive posterne: Set rs =Conn.Execute(SQL) offsetToSunday = 0 if weekDay(Date) <> vbSunday then offsetToSunday = 8-WeekDay(Date) dato = DateSerial(Year(date), Month(date), Day(Date) + offsetToSunday) dato = Right("0" & day(dato),2) & "-" & Right("0" & month(dato),2) & "-" & year(dato) Do while not rs.EOF str = "" & rs("butiksaabning") & "" str = replace(str, "/","-") 'Der var en dato med / og ikke - så sikre - når der testes iDato = inStr(1, str, dato) if iDato > 0 then butiksId = "" & rs("butiksId") & "" butiksnavn = "" & rs("butiksnavn") & "" butikslogo = "" & rs("butikslogo") & "" butiksaabning = "" & rs("butiksaabning") & "" slutTid = instr(iDato,str,",") if slutTid = 0 then slutTid = len(str) tidPunkt = mid(str, iDato, (sluttid - iDato)+1) tidPunkt = trim(tidPunkt) Response.Write "<img src=" & butikslogo & "><br><br><br>" Response.Write "<br>" Response.Write "<li>" & butiksnavn & "</li><br>" Response.Write "<br>" Response.Write "Hvad er næste søndags dato: " & dato & "<br>" Response.Write "<br>" Response.Write "Vi har åbent fra Kl.<b> " & tidPunkt & "</b><br>" end if rs.MoveNext loop Conn.Close Set Conn = Nothing %>
Jes!!! det hjalp dog er kommeaet der stadigvæk..
ok disse linier: slutTid = instr(iDato,str,",") if slutTid = 0 then slutTid = len(str) tidPunkt = mid(str, iDato, (sluttid - iDato)+1) tidPunkt = trim(tidPunkt) Skal faktisk rettes til dette: slutTid = instr(iDato,str,",") if slutTid = 0 then slutTid = len(str)+1 tidPunkt = mid(str, iDato, sluttid - iDato) tidPunkt = trim(tidPunkt)
Jeps... :-)!!!!! Mange mange tak...!!!!!!
Hvis det har fanget dig er du meget så velkommen i mit projekt..! hvis det var noget for dig?
Tak for point ;) Men jeg vil sige nej tak til at deltage i dit projekt.
Hvordan undgår man den skriver datoen altså så den kun skriver tiden??
Kurser inden for grundlæggende programmering