devotionMedlem sedan jan. 20013 582 inlägg :e
Hej!
Jag har en tabell där datum och tid sätts varje gång en användare synkroniserar sin handdator.... (access)
Det finns 7 användare i tabellen.
Jag vill att om en användare inte synkroniserat sin handdator på exempelvis 72 timmar skall följande skrivas ut:
Pelle har inte synkroniserat på 72 timmar!
Någon som kan ge mig lite starthjälp??
Mvh
if cInt(DateDiff("H", datum_fran_databastabellen, now()))>72 then
response.write "Användare x ej synkroniserat på 72 timmar!"
end if
devotionMedlem sedan jan. 20013 582 inlägg Tack!
snabba svar... ;)
Och innan if-satsen är det bara att skapa ett recordset där användarna loopas ut?
Mvh
@ndersMedlem sedan juni 200032 969 inlägg
devotion skrev:
Och innan if-satsen är det bara att skapa ett recordset där användarna loopas ut?
Japp.
Annars kan du ställa villkoret direkt i SQL-frågan och bara hämta ut de poster du är intresserad av. Datediff() fungerar fint och på liknande sätt i Jet SQL.
Mvh
devotionMedlem sedan jan. 20013 582 inlägg Det kanske är smidigare att ställa villkoret direkt i sql-frågan.... Då loopas ju bara de användarna ut som uppfyller villkoret: >72 timmar ut...
Blir det så här då?
SELECT tblUser.userName, tblUser.syncDate
FROM tblUser
WHERE dateDiff("H", tblUser.SyncDate, syncDate, now()) > 72
ORDER BY timeSinceSync
MEN
Hur får jag ihop asp-delarna i sql-strängen.... Det var inte lätt
Sedan vore det ju bra att få ut värdet på dateDiff så man kan sortera på den som har flest antal timmar från synkning kommer överst.
Och om villkoret uppfylls( > 72 timmar) skulle det stå det faktiska antalet...
Dvs
Pelle har inte synkat på 89 timmar
Tacksam för hjälp....
Mvh
@ndersMedlem sedan juni 200032 969 inlägg
devotion skrev:
Blir det så här då?
Jag hade nog provat något sånt härnt:
SELECT tblUser.userName, tblUser.syncDate, dateDiff('h', tblUser.SyncDate, now()) AS fooDiff
FROM tblUser
WHERE dateDiff('h', tblUser.SyncDate, now()) > 72
ORDER BY tblSyncDate
Hur får jag ihop asp-delarna i sql-strängen
Vad är det för asp-delar du vill ha in?
Sedan vore det ju bra att få ut värdet på dateDiff så man kan sortera på den som har flest antal timmar från synkning kommer överst.
Du får ut värdet, men enklast är ju att bara sortera på tblSyncDate, precis som du gjort. Det borde ge samma resultat.
(Det är förresten onödigt att du markerar alla fältnamn med tabell enl. tabell.fältnamn, när det bara handlar om en tabell.)
Edit: där du skrivit tblSyncDate förresten, det ska väl bara vara SyncDate?
Mvh
devotionMedlem sedan jan. 20013 582 inlägg
Vad är det för asp-delar du vill ha in?
Tänkte om jag behövde använda &-tecknet (som har et fint namn som jag inte kommer på nu.....) :r
Edit: där du skrivit tblSyncDate förresten, det ska väl bara vara SyncDate?
Jag såg att jag skrivit fel där....
Det är ändrat....
Nu skulle väl sorteringen vara på fooDiff enligt ditt exempel...
Mvh
@ndersMedlem sedan juni 200032 969 inlägg
Tänkte om jag behövde använda &-tecknet (som har et fint namn som jag inte kommer på nu.....)
Ampersand är nog ordet du letar efter.
Nu skulle väl sorteringen vara på fooDiff enligt ditt exempel...
Ja, om du hade använt något annat än Access. Antingen får du lägga hela datediff-uttrycket i order by, eller så sorterar du på SyncDate, vilket jag fortfarande påstår ger samma resultat.
Mvh
devotionMedlem sedan jan. 20013 582 inlägg
Ja, om du hade använt något annat än Access. Antingen får du lägga hela datediff-uttrycket i order by, eller så sorterar du på SyncDate, vilket jag fortfarande påstår ger samma resultat.
Just det ja...Smidigt... :p
Ska testa....
Mvh
devotionMedlem sedan jan. 20013 582 inlägg :h
Kanske blev en mer sql-fråga än asp-fråga... sorry!
Så här blev resultatet i a f:
strSQL = "SELECT tblUsers.Name, tblUsers.LastSyncDate, dateDiff('h', tblUsers.LastSyncDate, now()) AS syncDiff " &_
"FROM tblUsers " &_
"WHERE dateDiff('h', tblUsers.LastSyncDate, now()) > 72 AND NOT tblUsers.Name = 'Janne'" &_
"ORDER BY dateDiff('h', tblUsers.LastSyncDate, now()) DESC"