God dag! Varför krångla till det så förbenat för? hehe, alltid lika trevligt med snabba svar här på Pellesoft >Men om man använder Date(Now) blir väl inte formatet YYMMDD ? eller har jag fel där Om jag skriver så här Date() Ger dig dagens datum, samma med Now() men den ger dig datum och tid. Jo det har jag fattat, men varför får jag felmedd. som i förg. inlägg Date() tar inga argument om jag minns rätt, den ger dig bara dagens datum, samma med Now(). Tror jag kom en bit på vägen men....... Hmm, är det inte lättare att ställa en fråga till databasen som kollar om det finns förfallna fakturor? Det är det jag försöker göra. Oj, förlåt... jag svamlade lite... cDate() skall det vara förståss... inte Date() Helt Ok!Kontrollera 2 datum mot varandra
Jag sitter och knåpar på en funktion som skall kontrollera två datum mot varandra
Datumet i databasen är i formatet text YYMMDD
Detta vill jag jämför mot dagens datum + 2 dagar och få svaret att
om databasdatum är äldre än dagensdatum
gör något
annars
gör något annat
jag har försökt med en kodsnutt jag fann på nätet
VYear = Right(DatePart("yyyy",datum), 2)
VMonth = DatePart("m",datum)
VDay = DatePart("d",datum)
if len(VMonth) = 1 then VMonth = "0" & VMonth
if len(VDay) = 1 then VDay = "0" & VDay
strDATUM = VYear & VMonth & VDay
Men får bara svaret 991230
Vet någon vart det kör ihop sig
Mvh
PeterSv: Kontrollera 2 datum mot varandra
Använd DateAdd, lägg på 2 dagar på det datum som du vill jämföra.
Sen i din IF sats så kollar du om Databasdatumet är större än DagensDatum+2.
//Anna-KarinSv:Kontrollera 2 datum mot varandra
Vad jag förstår skulle det bli typ
StrDATUM = DateAdd (Date(Now)+2
If strDATUM > Rs("DATUM") then
gör något kul
else
gör något annat.
Men om man använder Date(Now) blir väl inte formatet YYMMDD ? eller har jag fel där
Mvh
PeterSv: Kontrollera 2 datum mot varandra
Använd Date(Rs("DATUM")) och Date(Now()) vid jämförelsen så spelar det ingen roll hur datumet presenteras i databasen... formatet blir detsamma vid jämförelsen...
Sen borde du nog använda DateDiff() istället för > i jämförelsen...Sv:Kontrollera 2 datum mot varandra
If Date(Now()) > Date(Rst("LEDDUEDATE")) then
gör nåt
else
gör nåt annat
så får jag felmedd.
Wrong number of arguments or invalid property assignment: 'Date'
Vad beror det på?
Mvh
PeterSv: Kontrollera 2 datum mot varandra
//Anna-KarinSv:Kontrollera 2 datum mot varandra
Mvh
PeterSv: Kontrollera 2 datum mot varandra
Ska du göra om ett tal eller text till Datumformat så gör du det med cDate(DittVärde)
//Anna-KarinSv:Kontrollera 2 datum mot varandra
I databastabellen kan det finnas fler poster med samma kundnr(text), dvs det finns flera rader typ:
KUNDNR Datum
0113366 050426
0113366 050326
0113366 050726
Det jag vill är att om ett datum ovan är äldre än dagens så skall man får en "varning"
jag provade med att loopa igenom recordsetet men det fungerade inte ändå
[KOD]
<%
strPERSNO = Request.QueryString("PERSNO")
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & server.mappath("/xxx/ccc.mdb")
SQL = "SELECT * FROM TABELL WHERE PERSNO = '" & strPERSNO & "' AND LEDTYPE = '#000' "
Set Rst = Server.CreateObject("ADODB.Recordset")
Rst.Open SQL, Connection
If Rst.EOF then
response.redirect "fel.asp"
ELSE
Do while not rst.eof
DATUM = Rst("LEDDUEDATE")
DAGEN = Now()
rst.movenext
loop
If "& DAGEN &" < " & DATUM & " then
att = "DU HAR FÖRFALLNA FAKTUROR<BR>VIDARE KÖP EJ MÖJLIGT"
ELSE
response.redirect "ja.asp"
End If
End If
%>Sv: Kontrollera 2 datum mot varandra
Om det finns skicka vidare, annars gör det som skall göras.
Sen ligger din jämförelse utanför din Loop så det är den sista posten som kommer att jämföras.
//Anna-KarinSv:Kontrollera 2 datum mot varandra
dvs den skall kolla i databasen om kunden finns där och har förfallna faturor.
provade att lägga jämförelsen in i loopen med samma resultat
Vad jag förstår måste jag formatera Date() på nåt sätt typ YYMMDD men det är där det sk-er sig:-(
om jag provar att visa båda värdena visas recordsetten korrekt dvs 050504 men Date visas 2005-04-04
Fler förslag?
Mvh
PeterSv: Kontrollera 2 datum mot varandra
Sv:Kontrollera 2 datum mot varandra
jag löste det hela efter ett antal gråa hår, så här blev koden om någon undrar
Do while not rst.eof
varDagensdatum = CDate(Date())
intMonth = Month(varDagensdatum)
intDay = Day(varDagensdatum)
intYr = Year(varDagensdatum)
If intMonth < 10 Then
strMonth = "0" & CStr(intMonth)
Else
strMonth = CStr(intMonth)
End If
If intDay < 10 Then
strDay = "0" & CStr(intDay)
Else
strDay = CStr(intDay)
End If
strYr = Right(CStr(intYr), 2) ' And change the 4 to 2 for 2 year dates.
varDagensdatum = CStr(strYr & "" & strMonth & "" & strDay)
varDATUM = Rst("LEDDUEDATE")
rst.movenext
loop
FORFALL = varDagensdatum - varDATUM
If FORFALL > 3 then
att = "ENL. VÅRA NOTERINGAR HAR DU EN ELLER FLERA FÖRFALLNA FAKTUROR<BR>VI KAN DÄRFÖR INTE BEHANDLA ER ORDER."
att1 = "Misstänker du att något är fel så kontakta vår kundtjänst HÄR"
ELSE
response.redirect "cust_reg_show.asp?PERSNO='" & strPERSNO & "'"
End If