Je veux traiter des enregistrements Access par lots......
ce qui signifie que je memorise dMAJ = Now() à une valeur
ensuite chargée dans un champ pour mon lot d'enregistrements.
Ensuite je veux recupérer/traiter ces date-heures en SQL,
en particulier effacer l'ensemble des enregistrements
n'ayant pas cette valeur Date-Heure (pas seulement le jour !)
1°/ question n°1 : comment formater l'expression SQL !
(je voudrais effectivement tester Date ET HEURE ! dans mon filtre !)
2°/ comment la passer a mon RecordSet ?
f_SQL = "DELETE * FROM Table" & fWHERE_SQL(aFilter)
Set tRst = db.OpenRecordset(f_SQL)
> Operation non valide ! ? ? ?
Bon, d'accord, cela passe avec :
f_SQL = "SELECT* FROM Table" & fWHERE_SQL(aFilter)
Set tRst = db.OpenRecordset(f_SQL)
With tRst
While NOT .EOF
.Delete
Wend
END with
Mais n'est-il pas possible d'exécuter une instruction SQL " DELETE....."
Puisque personne ne semble vouloir vous répondre ...
1°/ question n°1 : comment formater l'expression SQL ! (je voudrais effectivement tester Date ET HEURE ! dans mon filtre !)
le séparateur de Date/Heure dans Access est #. Donc on peut écrire des expressions de comparaison ou d'affectation du style :
... madateheure=#01/12/2004 23:45# ....
2°/ comment la passer a mon RecordSet ?
f_SQL = "DELETE * FROM Table" & fWHERE_SQL(aFilter)
f_sql="delete * from table where monchampdate=#" & format(variabledate,"mm/dd/yyyy hh:nn:ss") & " # " bd.execute f_sql
Mais n'est-il pas possible d'exécuter une instruction SQL " DELETE....."
voir au dessus...
YannX
Bonsoir,
Et merci de cette réponse : une precision sur le 1°/ le séparateur # est reconnu donc pour Access donc a défaut de lire un TIMESTAMP, on fera un : "#" & Format(dMaj,"dd/mm/aa hh:mm::ss") & "#" savez-vs s'il l'est aussi, avec les heures bien sûr, pour un autre SQL ?
Quant au 2°/ n'ayant pas réussi avec OpenRecordSet("DELETE.... j'ai by-passé le pb. en faisant les Rst.Delete...... dans une vulgaire boucle Dommage ; pourquoi le SQL ne passerait pas ? Que je ré-initialize Set Rst = db.OpenrecrdSet("SELECT...) de nombreuses fois ?
@+ Et merci encore Bon WE
"jmn" a écrit dans le message de news:
Puisque personne ne semble vouloir vous répondre ... > 1°/ question n°1 : comment formater l'expression SQL ! > (je voudrais effectivement tester Date ET HEURE ! dans mon filtre
!)
le séparateur de Date/Heure dans Access est #. Donc on peut écrire des expressions de comparaison ou d'affectation du style :
... madateheure=#01/12/2004 23:45# ....
> 2°/ comment la passer a mon RecordSet ? > > f_SQL = "DELETE * FROM Table" & fWHERE_SQL(aFilter)
f_sql="delete * from table where monchampdate=#" & format(variabledate,"mm/dd/yyyy hh:nn:ss") & " # " bd.execute f_sql
> > Mais n'est-il pas possible d'exécuter une instruction SQL " DELETE....." voir au dessus...
Bonsoir,
Et merci de cette réponse :
une precision sur le 1°/ le séparateur # est reconnu donc pour Access
donc a défaut de lire un TIMESTAMP, on fera un :
"#" & Format(dMaj,"dd/mm/aa hh:mm::ss") & "#"
savez-vs s'il l'est aussi, avec les heures bien sûr, pour un autre SQL ?
Quant au 2°/ n'ayant pas réussi avec OpenRecordSet("DELETE....
j'ai by-passé le pb. en faisant les Rst.Delete...... dans une vulgaire
boucle
Dommage ; pourquoi le SQL ne passerait pas ?
Que je ré-initialize Set Rst = db.OpenrecrdSet("SELECT...) de nombreuses
fois ?
@+
Et merci encore
Bon WE
"jmn" <jmn@truc.com> a écrit dans le message de
news:umWX13MyEHA.3168@TK2MSFTNGP15.phx.gbl...
Puisque personne ne semble vouloir vous répondre ...
> 1°/ question n°1 : comment formater l'expression SQL !
> (je voudrais effectivement tester Date ET HEURE ! dans mon filtre
!)
le séparateur de Date/Heure dans Access est #. Donc on peut écrire des
expressions de comparaison ou d'affectation du style :
... madateheure=#01/12/2004 23:45# ....
> 2°/ comment la passer a mon RecordSet ?
>
> f_SQL = "DELETE * FROM Table" & fWHERE_SQL(aFilter)
f_sql="delete * from table where monchampdate=#" &
format(variabledate,"mm/dd/yyyy hh:nn:ss") & " # "
bd.execute f_sql
>
> Mais n'est-il pas possible d'exécuter une instruction SQL " DELETE....."
voir au dessus...
Et merci de cette réponse : une precision sur le 1°/ le séparateur # est reconnu donc pour Access donc a défaut de lire un TIMESTAMP, on fera un : "#" & Format(dMaj,"dd/mm/aa hh:mm::ss") & "#" savez-vs s'il l'est aussi, avec les heures bien sûr, pour un autre SQL ?
Quant au 2°/ n'ayant pas réussi avec OpenRecordSet("DELETE.... j'ai by-passé le pb. en faisant les Rst.Delete...... dans une vulgaire boucle Dommage ; pourquoi le SQL ne passerait pas ? Que je ré-initialize Set Rst = db.OpenrecrdSet("SELECT...) de nombreuses fois ?
@+ Et merci encore Bon WE
"jmn" a écrit dans le message de news:
Puisque personne ne semble vouloir vous répondre ... > 1°/ question n°1 : comment formater l'expression SQL ! > (je voudrais effectivement tester Date ET HEURE ! dans mon filtre
!)
le séparateur de Date/Heure dans Access est #. Donc on peut écrire des expressions de comparaison ou d'affectation du style :
... madateheure=#01/12/2004 23:45# ....
> 2°/ comment la passer a mon RecordSet ? > > f_SQL = "DELETE * FROM Table" & fWHERE_SQL(aFilter)
f_sql="delete * from table where monchampdate=#" & format(variabledate,"mm/dd/yyyy hh:nn:ss") & " # " bd.execute f_sql
> > Mais n'est-il pas possible d'exécuter une instruction SQL " DELETE....." voir au dessus...
Eric
Bonjour YannX,
Pour le 2° Au risque de me tromper, sous Access, on ouvre (affiche) une requête Sélection via OpenRecordset, (OpenQuery) mais pas une requête Action. Celle-ci n'affichant rien doit être exécutée.
Ce qui donne pour une requête Sélection Dim Rst as DAO.Recordset Set RstÛ.OpenRecordset("Select * from MaTable where...;") ...
et pour une requête Action Dim strSQL as String strSQL = "Delete * from Matable where ...;" CurrentDb.Execute strSQL
A+ Eric
PS: Pour le 1°, pour éviter la concaténation avec les #, il est possible de faire : Format(dMaj,"#mm/dd/aa hh:nn:ss#")
A+ Eric
"YannX" écrivait news::
Bonsoir,
Et merci de cette réponse : une precision sur le 1°/ le séparateur # est reconnu donc pour Access donc a défaut de lire un TIMESTAMP, on fera un : "#" & Format(dMaj,"dd/mm/aa hh:mm::ss") & "#" savez-vs s'il l'est aussi, avec les heures bien sûr, pour un autre SQL ?
Quant au 2°/ n'ayant pas réussi avec OpenRecordSet("DELETE.... j'ai by-passé le pb. en faisant les Rst.Delete...... dans une vulgaire boucle Dommage ; pourquoi le SQL ne passerait pas ? Que je ré-initialize Set Rst = db.OpenrecrdSet("SELECT...) de nombreuses fois ?
@+ Et merci encore Bon WE
"jmn" a écrit dans le message de news:
Puisque personne ne semble vouloir vous répondre ... > 1°/ question n°1 : comment formater l'expression SQL ! > (je voudrais effectivement tester Date ET HEURE ! dans mon > filtre
!)
le séparateur de Date/Heure dans Access est #. Donc on peut écrire des expressions de comparaison ou d'affectation du style :
... madateheure=#01/12/2004 23:45# ....
> 2°/ comment la passer a mon RecordSet ? > > f_SQL = "DELETE * FROM Table" & fWHERE_SQL(aFilter)
f_sql="delete * from table where monchampdate=#" & format(variabledate,"mm/dd/yyyy hh:nn:ss") & " # " bd.execute f_sql
> > Mais n'est-il pas possible d'exécuter une instruction SQL " > DELETE....." voir au dessus...
Bonjour YannX,
Pour le 2°
Au risque de me tromper, sous Access, on ouvre (affiche) une requête
Sélection via OpenRecordset, (OpenQuery) mais pas une requête Action.
Celle-ci n'affichant rien doit être exécutée.
Ce qui donne pour une requête Sélection
Dim Rst as DAO.Recordset
Set RstÛ.OpenRecordset("Select * from MaTable where...;")
...
et pour une requête Action
Dim strSQL as String
strSQL = "Delete * from Matable where ...;"
CurrentDb.Execute strSQL
A+
Eric
PS: Pour le 1°, pour éviter la concaténation avec les #, il est possible
de faire :
Format(dMaj,"#mm/dd/aa hh:nn:ss#")
Et merci de cette réponse :
une precision sur le 1°/ le séparateur # est reconnu donc pour Access
donc a défaut de lire un TIMESTAMP, on fera un :
"#" & Format(dMaj,"dd/mm/aa hh:mm::ss") & "#"
savez-vs s'il l'est aussi, avec les heures bien sûr, pour un autre SQL
?
Quant au 2°/ n'ayant pas réussi avec OpenRecordSet("DELETE....
j'ai by-passé le pb. en faisant les Rst.Delete...... dans une vulgaire
boucle
Dommage ; pourquoi le SQL ne passerait pas ?
Que je ré-initialize Set Rst = db.OpenrecrdSet("SELECT...) de
nombreuses
fois ?
@+
Et merci encore
Bon WE
"jmn" <jmn@truc.com> a écrit dans le message de
news:umWX13MyEHA.3168@TK2MSFTNGP15.phx.gbl...
Puisque personne ne semble vouloir vous répondre ...
> 1°/ question n°1 : comment formater l'expression SQL !
> (je voudrais effectivement tester Date ET HEURE ! dans mon
> filtre
!)
le séparateur de Date/Heure dans Access est #. Donc on peut écrire
des expressions de comparaison ou d'affectation du style :
... madateheure=#01/12/2004 23:45# ....
> 2°/ comment la passer a mon RecordSet ?
>
> f_SQL = "DELETE * FROM Table" & fWHERE_SQL(aFilter)
f_sql="delete * from table where monchampdate=#" &
format(variabledate,"mm/dd/yyyy hh:nn:ss") & " # "
bd.execute f_sql
>
> Mais n'est-il pas possible d'exécuter une instruction SQL "
> DELETE....."
voir au dessus...
Pour le 2° Au risque de me tromper, sous Access, on ouvre (affiche) une requête Sélection via OpenRecordset, (OpenQuery) mais pas une requête Action. Celle-ci n'affichant rien doit être exécutée.
Ce qui donne pour une requête Sélection Dim Rst as DAO.Recordset Set RstÛ.OpenRecordset("Select * from MaTable where...;") ...
et pour une requête Action Dim strSQL as String strSQL = "Delete * from Matable where ...;" CurrentDb.Execute strSQL
A+ Eric
PS: Pour le 1°, pour éviter la concaténation avec les #, il est possible de faire : Format(dMaj,"#mm/dd/aa hh:nn:ss#")
A+ Eric
"YannX" écrivait news::
Bonsoir,
Et merci de cette réponse : une precision sur le 1°/ le séparateur # est reconnu donc pour Access donc a défaut de lire un TIMESTAMP, on fera un : "#" & Format(dMaj,"dd/mm/aa hh:mm::ss") & "#" savez-vs s'il l'est aussi, avec les heures bien sûr, pour un autre SQL ?
Quant au 2°/ n'ayant pas réussi avec OpenRecordSet("DELETE.... j'ai by-passé le pb. en faisant les Rst.Delete...... dans une vulgaire boucle Dommage ; pourquoi le SQL ne passerait pas ? Que je ré-initialize Set Rst = db.OpenrecrdSet("SELECT...) de nombreuses fois ?
@+ Et merci encore Bon WE
"jmn" a écrit dans le message de news:
Puisque personne ne semble vouloir vous répondre ... > 1°/ question n°1 : comment formater l'expression SQL ! > (je voudrais effectivement tester Date ET HEURE ! dans mon > filtre
!)
le séparateur de Date/Heure dans Access est #. Donc on peut écrire des expressions de comparaison ou d'affectation du style :
... madateheure=#01/12/2004 23:45# ....
> 2°/ comment la passer a mon RecordSet ? > > f_SQL = "DELETE * FROM Table" & fWHERE_SQL(aFilter)
f_sql="delete * from table where monchampdate=#" & format(variabledate,"mm/dd/yyyy hh:nn:ss") & " # " bd.execute f_sql
> > Mais n'est-il pas possible d'exécuter une instruction SQL " > DELETE....." voir au dessus...
Eric
.../...
Eric écrivait
PS: Pour le 1°, pour éviter la concaténation avec les #, il est possible de faire : Format(dMaj,"#mm/dd/aa hh:nn:ss#")
Lire :Format(dMaj,"#mm/dd/yy hh:nn:ss#")
Eric
.../...
Eric <f_framZZ@hotmail.com> écrivait
PS: Pour le 1°, pour éviter la concaténation avec les #, il est possible
de faire :
Format(dMaj,"#mm/dd/aa hh:nn:ss#")
PS: Pour le 1°, pour éviter la concaténation avec les #, il est possible de faire : Format(dMaj,"#mm/dd/aa hh:nn:ss#")
Lire :Format(dMaj,"#mm/dd/yy hh:nn:ss#")
Eric
YannX
Merci pour tes précisions ; cela parait évident "j'aurais dû y penser tout seul" en le lisant, mais...
"Eric" a écrit dans le message de news:
.../...
Eric écrivait > PS: Pour le 1°, pour éviter la concaténation avec les #, il est possible > de faire : > Format(dMaj,"#mm/dd/aa hh:nn:ss#") >
Lire :Format(dMaj,"#mm/dd/yy hh:nn:ss#")
Eric
Merci pour tes précisions ; cela parait évident "j'aurais dû y penser tout
seul" en le lisant, mais...
"Eric" <f_framZZ@hotmail.com> a écrit dans le message de
news:XnF959FB620FCBA7fframZZhotmailcom@207.46.248.16...
.../...
Eric <f_framZZ@hotmail.com> écrivait
> PS: Pour le 1°, pour éviter la concaténation avec les #, il est possible
> de faire :
> Format(dMaj,"#mm/dd/aa hh:nn:ss#")
>