Jag försöker få den att radera alla poster i Meddelanden där fältet Senast är tomt i tabellen Medlemmar.
Först görs en koll om medlemmen inte loggat ut utan bara stängt fönstret, om så är fallet så sätts senast till Null.
Men samtidigt ska dennes meddelanden raderas automatiskt.
(Om Besvarat är 1,4 eller 5 ska det INTE raderas, bara 2 eller 3)
Alla inloggade medlemmar som laddar en sida uppdaterar fältet Senast i tabellen Medlemmar med now().
Om Senast är 20 minuter gammalt så sätts det till NULL av en annan medlem som laddar en sida. Då anses den medlemmen vara automatiskt utloggad.
Jag vill att alla meddelanden som är flaggade som 2 eller 3 ska raderas där medlemmarna har blivit automatiskt urloggade.
Ungefär som
delete from meddelanden Where Meddelanden.Besvarat =2 OR Meddelanden.Besvarat= 3 AND Medlemmar.Senast = NULL"
' Ta bort alla som inte gjort något på 20 min - utloggade
SQL = "UPDATE Medlemmar set [senast] = NULL, Loggade_in =#" & now() & "# where Senast < dateadd('n',-20,now())"
connection.execute(SQL)
' Radera meddelanden automatiskt 1=oläst, 2-3 raderas, 4=sparas
SQL2 = "DELETE FROM Meddelanden WHERE Lastes < dateadd('n',-20,now()) AND Besvarat in (2,3) IN (SELECT Senast FROM Medlemmar WHERE [Senast] = NULL )"
connection.execute(SQL2)
Du vill alltså bara utföra detta om det finns en rad där senast är null?
SQL2 = "DELETE FROM Meddelanden WHERE Lastes < dateadd('n',-20,now()) AND Besvarat in (2,3) and exists (SELECT * FROM Medlemmar WHERE Senast is NULL )"
Ett villkor som
where kolumn = null
är aldrig sant. (Det är inte godkänt enligt standard att skriva så.)
Jag förstår inte varför du vill ha exists-villkoret med, men det är väl inget som angår mig.
När medlemmarna har öppnat ett meddelande så markeras det som läst.
Om dessa inte väljer att spara det så raderas det automatiskt när dem loggar ut. Det funkar jättebra. Men jag vill ju radera dem breven automatiskt om de inte klickar på logga ut.