Just nu i M3-nätverket
Gå till innehåll

Nytt problem med grafisk markering av poster


jonny1

Rekommendera Poster

Hej igen, fick så otroligt bra hjälp här tidigare idag så jag gör ett nytt försök ;-)

 

Har två datumfält i en databas StartDate och EndDate.

 

Det jag vill göra är att i listan över alla poster så ska vissa markeras med en Bild/Ikon.

Det gäller de poster där deras resp StartDate och EndDate hamnar utanför dagens datum.

 

Det borde väl egentligen inte vara så svårt... men jag får verkligen inte till det.. här är lite hur jag funderat...

 

TodayDate = Now()

 

if StartDate <= "#TodayDate#" OR EndDate > #TodayDate#" then

 

visa bild

 

else

 

visa bild2

 

end if

 

känns som om det inte riktigt räcker och att jag borde ha med fler parametrar?

 

Tackar på förhand // MVH

 

[inlägget ändrat 2003-01-06 23:13:09 av jonny1]

Länk till kommentar
Dela på andra webbplatser

kan man skriva ut en sån här sträng? isf vad för () etc har jag glömt?

 

if EndDate>Now() AND StartDate<=Now() OR EndDate Is Null AND StartDate Is Not Null then

 

Jag får följande fel

Error Type:

Microsoft VBScript runtime (0x800A01A8)

Object required

 

Mvh

 

[inlägget ändrat 2003-01-06 23:39:01 av jonny1]

[inlägget ändrat 2003-01-06 23:39:53 av jonny1]

[inlägget ändrat 2003-01-06 23:40:38 av jonny1]

Länk till kommentar
Dela på andra webbplatser

Magnus Gladh

EndDate Is Null 

 

Skrivs

IsNull(EndDate)

 

- Magnus

-----------------------------------------------------

ju mer jag lär mig ju mer inser jag så lite jag kan

 

Länk till kommentar
Dela på andra webbplatser

Tack för svaret det här forumet är kanon verkligen =) Nu fungerar nästan allt utom att StartDate> "#" &TodayDate& "#" verkar igoreras?

 

koden ser nu ut engefär så är

 

StartDate = rs("Bla Bla")

EndDate = rs("Bla Bla")

TodayDate = Now()

 

if EndDate< "#" &TodayDate& "#" AND StartDate<= "#" &TodayDate& "#" OR IsNull(EndDate) AND StartDate <>"" then

 

bild1

 

else if EndDate<="#" &TodayDate& "#" Or IsNull(StartDate) Or StartDate> "#" &TodayDate& "#" then

 

Bild2

 

end if

end if

 

Jag tror själv att felet ligger i att den sista Or StartDate> "#" &TodayDate& "#" inte är korrekt skriven eller nåt ?

 

Mvh

 

 

 

Länk till kommentar
Dela på andra webbplatser

Magnus Gladh

Varför har du # med i din IF-sats. Det har man bara mot ACCESS och inte i VBScript

 

if (EndDate < TodayDate AND StartDate <= TodayDate) OR (IsNull(EndDate) AND StartDate <> "") then 

 

Fast din kontroll verkar inte riktigt rätt, antingen borde EndDate vara större än TodayDate eller så borde StartDate större än TodayDate. Men jag förstod inte riktigt när du ville skriva ut bilden, så jag kan ju ha fel.

 

- Magnus

-----------------------------------------------------

ju mer jag lär mig ju mer inser jag så lite jag kan

 

Länk till kommentar
Dela på andra webbplatser

Skulle det inte kunna vara så att det räcker såhär?

 

 

if (EndDate <> TodayDate AND StartDate <> TodayDate)

 

alternativt

 

if (EndDate <> TodayDate AND StartDate <> TodayDate) OR IsNull(EndDate) OR IsNull(StartDate)

 

Bara något jag såg nu, så kanske missade något.

 

/LND

 

Länk till kommentar
Dela på andra webbplatser

Ja jag vet inte faktiskt... är ingen ASP guru och jag har haft så mkt problem med det där med datum o # o inte #... jaja

 

hur som helst så tackar jag för en lektion i hur man skriver if satser känns som om jag fått lite bättre kläm på det nu...

 

Det som dock inte fungerar verkar vara just den biten där StartDate är större än TodayDate... när jag kör följande kod

 

 

if (StartDate > TodayDate) Then

ej publicerad

else

publicerad

end if

 

så returneras endast "publicerad" även då det finns poster där StartDate är ligger framåt i tiden.. ??

 

Hoppas ni förstår lite bättre nu

 

Mvh

 

Länk till kommentar
Dela på andra webbplatser

Magnus Ahlkvist

Det är en Accessdatabas?

 

I så fall skulle jag låta SQL-frågan göra jobbet:

 

SELECT-satsen, om vi antar att den idag är

SELECT fält1,fält2,fält3 FROM tabell

 

byts mot

 

SELECT fält1,fält2,fält3,iif(datediff("d",datumfält,date())<>0,1,0) as VisaBild
FROM tabell

 

I VBScriptet som kör sidan behöver du då bara kolla på kolumnen VisaBild i ditt recordset för att se om du ska visa någon bild eller inte.

 

--

En röst talade till mig och sade:

”Le och var glad, ty det kunde vara värre”.

Så jag log, och jag var glad.

Och det blev värre.

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...