Je cherche à créer une incrémentation d'une date en fonction d'une condition.
Je dispose d'une date de traitement (D1) pour calculer la date de renouvellement (D2:D1 AjDate +4mois).
Ma difficulté réside dans le fait que je souhaite garder D1 comme référence pour le calcul du prochain renouvellement (D3:D1 AjDate +8mois) etc ....
------
voilà ma table T_1 contient notamment :
date_traitement (D1)
renouvellement (D2) puis (D3) puis (D4) etc...
la table T_2 comporte :
date_renouv
traité (O/N)
mon idée est :
si (traité.T_2) est vrai alors (renouvellement.T_1) est incrémenté de 4 mois.
au bout de 4 mois quand la prochaine échéance (T_2) est traitée alors (renouvellement.T_1) est incrémenté de 8 mois et ainsi de suite ... de 4 mois en 4 mois.
je ne peux calculer (renouvellement.T_1) sur la base de (date_renouv.T_2) car cette date est la date d'envoi du courrier. Je dois garder absolument (date_traitement.T_1) comme référence de base pour une éventuelle routine qui ajoute +4 mois !
Je dois avouer que j'éprouve quelque difficulté à interpréter cet te formule, et il ne m'a pas semblé que je puisse être d'une quelconque utilité sur le reste avant d'avoir compris ça ...
Le double point représente-t-il une division, ou s'interprète-t-il co mme sous Excel ?
AjDate représente-t-il un opérateur ?
Serait-ce quelque chose comme AddDate mais avec une syntaxe différente ?
D'ailleurs, pour ce qui est d'ajouter 4 mois, à ma connaissance c'est une notion à préciser par une fonction personnalisée. On peut faire une cote mal taillée en disant qu'on ajoute 4 * 30 jours, on peut faire une fonction qui va au même quantième dans le mois mais 4 mois plus tard ...
grandtroll a écrit, le 19/04/2013 10:56 :
(D2:D1 AjDate +4mois).
Bonjour,
Je dois avouer que j'éprouve quelque difficulté à interpréter cet te
formule, et il ne m'a pas semblé que je puisse être d'une quelconque
utilité sur le reste avant d'avoir compris ça ...
Le double point représente-t-il une division, ou s'interprète-t-il co mme
sous Excel ?
AjDate représente-t-il un opérateur ?
Serait-ce quelque chose comme AddDate mais avec une syntaxe différente ?
D'ailleurs, pour ce qui est d'ajouter 4 mois, à ma connaissance c'est
une notion à préciser par une fonction personnalisée. On peut faire une
cote mal taillée en disant qu'on ajoute 4 * 30 jours, on peut faire une
fonction qui va au même quantième dans le mois mais 4 mois plus tard ...
Je dois avouer que j'éprouve quelque difficulté à interpréter cet te formule, et il ne m'a pas semblé que je puisse être d'une quelconque utilité sur le reste avant d'avoir compris ça ...
Le double point représente-t-il une division, ou s'interprète-t-il co mme sous Excel ?
AjDate représente-t-il un opérateur ?
Serait-ce quelque chose comme AddDate mais avec une syntaxe différente ?
D'ailleurs, pour ce qui est d'ajouter 4 mois, à ma connaissance c'est une notion à préciser par une fonction personnalisée. On peut faire une cote mal taillée en disant qu'on ajoute 4 * 30 jours, on peut faire une fonction qui va au même quantième dans le mois mais 4 mois plus tard ...
grandtroll
Le vendredi 19 Avril 2013 Ã 10:56 par grandtroll :
Le double point est effectivement une division et AjDate correspond bie n à AddDate.
Je reformule : Je souhaite obtenir dans tous les cas, une date de renouvellement initi ale qui correspond à +4 mois d'une dateX. Dès que ce renouvellement a été traité, la date de renouvelleme nt est incrémentée de +4 mois et le traitement est mis à zéro. et ainsi de suite .....
j'avais opté pour 2 tables distinctes afin de connaître le nombre d e renouvellements par unité.
j'espère avoir été plus clair
Bon, alors si j'ai bien compris, il y a deux questions : - la syntaxe pour l'appel de la fonction - et le moyen de stocker le résultat ?
Ah oui alors on a dit que c'était par unité ... Qu'est-ce qui existe comme unités, exactement ?
grandtroll a écrit, le 19/04/2013 16:45 :
Le double point est effectivement une division et AjDate correspond bie n à
AddDate.
Je reformule :
Je souhaite obtenir dans tous les cas, une date de renouvellement initi ale qui
correspond à +4 mois d'une dateX.
Dès que ce renouvellement a été traité, la date de renouvelleme nt est
incrémentée de +4 mois et le traitement est mis à zéro.
et ainsi de suite .....
j'avais opté pour 2 tables distinctes afin de connaître le nombre d e
renouvellements par unité.
j'espère avoir été plus clair
Bon, alors si j'ai bien compris, il y a deux questions :
- la syntaxe pour l'appel de la fonction
- et le moyen de stocker le résultat ?
Ah oui alors on a dit que c'était par unité ...
Qu'est-ce qui existe comme unités, exactement ?
Le double point est effectivement une division et AjDate correspond bie n à AddDate.
Je reformule : Je souhaite obtenir dans tous les cas, une date de renouvellement initi ale qui correspond à +4 mois d'une dateX. Dès que ce renouvellement a été traité, la date de renouvelleme nt est incrémentée de +4 mois et le traitement est mis à zéro. et ainsi de suite .....
j'avais opté pour 2 tables distinctes afin de connaître le nombre d e renouvellements par unité.
j'espère avoir été plus clair
Bon, alors si j'ai bien compris, il y a deux questions : - la syntaxe pour l'appel de la fonction - et le moyen de stocker le résultat ?
Ah oui alors on a dit que c'était par unité ... Qu'est-ce qui existe comme unités, exactement ?
MULLER
Le 19/04/2013 10:56, grandtroll a écrit :
Bonjour à tous
Je cherche à créer une incrémentation d'une date en fonction d'une condition.
Je dispose d'une date de traitement (D1) pour calculer la date de renouvellement (D2:D1 AjDate +4mois). Ma difficulté réside dans le fait que je souhaite garder D1 comme référence pour le calcul du prochain renouvellement (D3:D1 AjDate +8mois) etc ....
------ voilà ma table T_1 contient notamment : date_traitement (D1) renouvellement (D2) puis (D3) puis (D4) etc...
la table T_2 comporte : date_renouv traité (O/N)
mon idée est : si (traité.T_2) est vrai alors (renouvellement.T_1) est incrémenté de 4 mois. au bout de 4 mois quand la prochaine échéance (T_2) est traitée alors (renouvellement.T_1) est incrémenté de 8 mois et ainsi de suite ... de 4 mois en 4 mois.
je ne peux calculer (renouvellement.T_1) sur la base de (date_renouv.T_2) car cette date est la date d'envoi du courrier. Je dois garder absolument (date_traitement.T_1) comme référence de base pour une éventuelle routine qui ajoute +4 mois !
merci
Attention avec les dates , si SQL il faut que les dates soient au format US
Dim SQL_Text As String
' MsgBox MyDate
us1date = Format(MyDate, "mm/dd/yyyy") us2date = Format(DateAdd("m", 1, MyDate), "mm/dd/yyyy")' ( dans un mois)
' MsgBox us1Date
'1 creer une action et mettre le résultat dans le fichier temporaire SQL_Text = "INSERT INTO [FICHIERTMP] " _ & "SELECT * " _ & "FROM [FICHIER SOCIAL] " _ & "WHERE AU BETWEEN " & "#" & us1date & "# AND #" & us2date & "# ;"
DoCmd.RunSQL SQL_Text, True
Le 19/04/2013 10:56, grandtroll a écrit :
Bonjour à tous
Je cherche à créer une incrémentation d'une date en fonction d'une condition.
Je dispose d'une date de traitement (D1) pour calculer la date de renouvellement
(D2:D1 AjDate +4mois).
Ma difficulté réside dans le fait que je souhaite garder D1 comme référence pour
le calcul du prochain renouvellement (D3:D1 AjDate +8mois) etc ....
------
voilà ma table T_1 contient notamment :
date_traitement (D1)
renouvellement (D2) puis (D3) puis (D4) etc...
la table T_2 comporte :
date_renouv
traité (O/N)
mon idée est :
si (traité.T_2) est vrai alors (renouvellement.T_1) est incrémenté de 4 mois.
au bout de 4 mois quand la prochaine échéance (T_2) est traitée alors
(renouvellement.T_1) est incrémenté de 8 mois et ainsi de suite ... de 4 mois en
4 mois.
je ne peux calculer (renouvellement.T_1) sur la base de (date_renouv.T_2) car
cette date est la date d'envoi du courrier. Je dois garder absolument
(date_traitement.T_1) comme référence de base pour une éventuelle routine qui
ajoute +4 mois !
merci
Attention avec les dates , si SQL il faut que les dates soient au format US
Dim SQL_Text As String
' MsgBox MyDate
us1date = Format(MyDate, "mm/dd/yyyy")
us2date = Format(DateAdd("m", 1, MyDate), "mm/dd/yyyy")' ( dans un
mois)
' MsgBox us1Date
'1 creer une action et mettre le résultat dans le fichier temporaire
SQL_Text = "INSERT INTO [FICHIERTMP] " _
& "SELECT * " _
& "FROM [FICHIER SOCIAL] " _
& "WHERE AU BETWEEN " & "#" & us1date & "# AND #" &
us2date & "# ;"
Je cherche à créer une incrémentation d'une date en fonction d'une condition.
Je dispose d'une date de traitement (D1) pour calculer la date de renouvellement (D2:D1 AjDate +4mois). Ma difficulté réside dans le fait que je souhaite garder D1 comme référence pour le calcul du prochain renouvellement (D3:D1 AjDate +8mois) etc ....
------ voilà ma table T_1 contient notamment : date_traitement (D1) renouvellement (D2) puis (D3) puis (D4) etc...
la table T_2 comporte : date_renouv traité (O/N)
mon idée est : si (traité.T_2) est vrai alors (renouvellement.T_1) est incrémenté de 4 mois. au bout de 4 mois quand la prochaine échéance (T_2) est traitée alors (renouvellement.T_1) est incrémenté de 8 mois et ainsi de suite ... de 4 mois en 4 mois.
je ne peux calculer (renouvellement.T_1) sur la base de (date_renouv.T_2) car cette date est la date d'envoi du courrier. Je dois garder absolument (date_traitement.T_1) comme référence de base pour une éventuelle routine qui ajoute +4 mois !
merci
Attention avec les dates , si SQL il faut que les dates soient au format US
Dim SQL_Text As String
' MsgBox MyDate
us1date = Format(MyDate, "mm/dd/yyyy") us2date = Format(DateAdd("m", 1, MyDate), "mm/dd/yyyy")' ( dans un mois)
' MsgBox us1Date
'1 creer une action et mettre le résultat dans le fichier temporaire SQL_Text = "INSERT INTO [FICHIERTMP] " _ & "SELECT * " _ & "FROM [FICHIER SOCIAL] " _ & "WHERE AU BETWEEN " & "#" & us1date & "# AND #" & us2date & "# ;"
DoCmd.RunSQL SQL_Text, True
grandtroll
Le vendredi 19 Avril 2013 Ã 10:56 par grandtroll :
@Gloops : que définissez vous sous "UNITE" ? les champs, les enregist rements ????
Ce n'est pas ma base de données : c'était une question, que je posais .
MULLER
Le 22/04/2013 09:51, grandtroll a écrit :
Le vendredi 19 Avril 2013 à 10:56 par grandtroll :
Bonjour à tous
Je cherche à créer une incrémentation d'une date en fonction d'une condition.
Je dispose d'une date de traitement (D1) pour calculer la date de renouvellement (D2:D1 AjDate +4mois). Ma difficulté réside dans le fait que je souhaite garder D1 comme référence pour le calcul du prochain renouvellement (D3:D1 AjDate +8mois) etc ....
------ voilà ma table T_1 contient notamment : date_traitement (D1) renouvellement (D2) puis (D3) puis (D4) etc...
la table T_2 comporte : date_renouv traité (O/N)
mon idée est : si (traité.T_2) est vrai alors (renouvellement.T_1) est incrémenté de 4 mois. au bout de 4 mois quand la prochaine échéance (T_2) est traitée alors (renouvellement.T_1) est incrémenté de 8 mois et ainsi de suite ... de 4 mois en 4 mois.
je ne peux calculer (renouvellement.T_1) sur la base de (date_renouv.T_2) car cette date est la date d'envoi du courrier. Je dois garder absolument (date_traitement.T_1) comme référence de base pour une éventuelle routine qui ajoute +4 mois !
merci
bonjour
@Muller : merci pour cette réponse qui je l'avoue reste abscons pour mon niveau débutant. Je pense avoir compris le principe des USDATE (ma date de référence puis un ajout de 1 mois). En revanche j'ai du mal avec le BETWEEN, en l’occurrence vous sélectionnez tout si le tempo remplit la condition "entre date1 et date2" ???
Oui , cette routine montre bien tous les problèmes que l'on peut rencontrer avec access. - SQL demande que les dates soient au format USA - ne pas oublier de mettre les dates entre ## ( oui car le 'Format' renvoi un string ) - choisir une date jour/mois +X ne pose pas de problème avec DateAdd - avec cette routine je crée une nouvelle base de donnée qui ne contient que les enregistrements qui ont une date 'AU' comprise entre mes choix.
@Gloops : que définissez vous sous "UNITE" ? les champs, les enregistrements ????
Le 22/04/2013 09:51, grandtroll a écrit :
Le vendredi 19 Avril 2013 à 10:56 par grandtroll :
Bonjour à tous
Je cherche à créer une incrémentation d'une date en
fonction d'une condition.
Je dispose d'une date de traitement (D1) pour calculer la date de
renouvellement (D2:D1 AjDate +4mois).
Ma difficulté réside dans le fait que je souhaite garder D1 comme
référence pour le calcul du prochain renouvellement (D3:D1 AjDate
+8mois) etc ....
------
voilà ma table T_1 contient notamment :
date_traitement (D1)
renouvellement (D2) puis (D3) puis (D4) etc...
la table T_2 comporte :
date_renouv
traité (O/N)
mon idée est :
si (traité.T_2) est vrai alors (renouvellement.T_1) est
incrémenté de 4 mois.
au bout de 4 mois quand la prochaine échéance (T_2) est
traitée alors (renouvellement.T_1) est incrémenté de 8
mois et ainsi de suite ... de 4 mois en 4 mois.
je ne peux calculer (renouvellement.T_1) sur la base de (date_renouv.T_2) car
cette date est la date d'envoi du courrier. Je dois garder absolument
(date_traitement.T_1) comme référence de base pour une
éventuelle routine qui ajoute +4 mois !
merci
bonjour
@Muller : merci pour cette réponse qui je l'avoue reste abscons pour mon niveau
débutant. Je pense avoir compris le principe des USDATE (ma date de référence
puis un ajout de 1 mois). En revanche j'ai du mal avec le BETWEEN, en
l’occurrence vous sélectionnez tout si le tempo remplit la condition "entre
date1 et date2" ???
Oui , cette routine montre bien tous les problèmes que l'on peut
rencontrer avec access.
- SQL demande que les dates soient au format USA
- ne pas oublier de mettre les dates entre ## ( oui car le 'Format'
renvoi un string )
- choisir une date jour/mois +X ne pose pas de problème avec DateAdd
- avec cette routine je crée une nouvelle base de donnée qui ne
contient que les enregistrements qui ont une date 'AU' comprise entre
mes choix.
@Gloops : que définissez vous sous "UNITE" ? les champs, les enregistrements
????
Le vendredi 19 Avril 2013 à 10:56 par grandtroll :
Bonjour à tous
Je cherche à créer une incrémentation d'une date en fonction d'une condition.
Je dispose d'une date de traitement (D1) pour calculer la date de renouvellement (D2:D1 AjDate +4mois). Ma difficulté réside dans le fait que je souhaite garder D1 comme référence pour le calcul du prochain renouvellement (D3:D1 AjDate +8mois) etc ....
------ voilà ma table T_1 contient notamment : date_traitement (D1) renouvellement (D2) puis (D3) puis (D4) etc...
la table T_2 comporte : date_renouv traité (O/N)
mon idée est : si (traité.T_2) est vrai alors (renouvellement.T_1) est incrémenté de 4 mois. au bout de 4 mois quand la prochaine échéance (T_2) est traitée alors (renouvellement.T_1) est incrémenté de 8 mois et ainsi de suite ... de 4 mois en 4 mois.
je ne peux calculer (renouvellement.T_1) sur la base de (date_renouv.T_2) car cette date est la date d'envoi du courrier. Je dois garder absolument (date_traitement.T_1) comme référence de base pour une éventuelle routine qui ajoute +4 mois !
merci
bonjour
@Muller : merci pour cette réponse qui je l'avoue reste abscons pour mon niveau débutant. Je pense avoir compris le principe des USDATE (ma date de référence puis un ajout de 1 mois). En revanche j'ai du mal avec le BETWEEN, en l’occurrence vous sélectionnez tout si le tempo remplit la condition "entre date1 et date2" ???
Oui , cette routine montre bien tous les problèmes que l'on peut rencontrer avec access. - SQL demande que les dates soient au format USA - ne pas oublier de mettre les dates entre ## ( oui car le 'Format' renvoi un string ) - choisir une date jour/mois +X ne pose pas de problème avec DateAdd - avec cette routine je crée une nouvelle base de donnée qui ne contient que les enregistrements qui ont une date 'AU' comprise entre mes choix.
@Gloops : que définissez vous sous "UNITE" ? les champs, les enregistrements ????