cs_Hobby
Messages postés116Date d'inscriptionmercredi 5 juin 2002StatutMembreDernière intervention17 septembre 2008
-
14 janv. 2003 à 01:50
cs_Hobby
Messages postés116Date d'inscriptionmercredi 5 juin 2002StatutMembreDernière intervention17 septembre 2008
-
15 janv. 2003 à 04:55
Salut a tous,
j'ai un petit problème pour effacez des enregistrement a partir de la date, je doit en faite effacez les Today-60jours je fait comme cela:
Public Sub CleanDb()
Dim dtRemoveDate As Date
Set mainDb = New adodb.Connection
mainDb.Open strMainDb
Set main = New adodb.Recordset
' Date - 60 Jours
dtRemoveDate = "15/11/2002"
main.Open "DELETE FROM main Where Date < " & dtRemoveDate, mainDb, 1, 2
main.Close
Set main = Nothing
End Sub
Mais j'ai une erreur a "main.close": "Operation non alloué"
Je ne sais si ma requete est bonne. J'utilise +/- cette methode pour lire et écrire sans probleme. Mais là je seche.
cs_Hobby
Messages postés116Date d'inscriptionmercredi 5 juin 2002StatutMembreDernière intervention17 septembre 2008 15 janv. 2003 à 04:55
Après une bonne nuits de repos, j'ai trouvé deux solutions qui ce resemble fort:
Dim dtRemoveDate As Date
Set mainDb = New adodb.Connection
mainDb.Open strMainDb
Set main = New adodb.Recordset
dtRemoveDate = DateAdd("d", -60, Now) '-60 jours
dtRemoveDate = Format(dtRemoveDate, "Short Date") 'Si format short date dans le champs de la DB
main.Open "main", mainDb, adOpenDynamic, adLockOptimistic
main.Find "Date <= #" & dtRemoveDate & "#"
Do While Not main.EOF
main.Delete
main.MoveNext
Loop
main.Close
Set main = Nothing
Dim dtRemoveDate As Date
Set mainDb = New adodb.Connection
mainDb.Open strMainDb
Set main = New adodb.Recordset
dtRemoveDate = DateAdd("d", -60, Now) '-60 jours
dtRemoveDate = Format(dtRemoveDate, "Short Date") 'Si format short date dans le champs de la DB
main.Open "SELECT * FROM main WHERE Date <= #" & dtRemoveDate & "#", mainDb, 1, 2
Do While Not main.EOF
main.Delete adAffectCurrent
main.Update
main.MoveNext
Loop
main.Close
Set main = Nothing