OVH Cloud OVH Cloud

Conception Query

5 réponses
Avatar
Bruno Frisque
Bonjour,

J'ai un formulaire qui enregistre des noms et les types de documents
délivrés.
Ce formulaire est basé sur une table tblBulletin.

Chaque fois que l'on délivre un nouveau document à cette personne, les
champs 'documents délivrés' sont remplacés.

On me demande de tenir un historique des tous les documents délivrés par
individu.

Quelle serait la meilleure approche ? Update query ou AppendQuery ?
Il s'agirait en fait de compléter une nouvelle table "Historique" à chaque
modification de documents délivré par individu.

D'avance tout grand merci

5 réponses

Avatar
3stone
Salut,

Bruno Frisque
J'ai un formulaire qui enregistre des noms et les types de documents
délivrés.
Ce formulaire est basé sur une table tblBulletin.

Chaque fois que l'on délivre un nouveau document à cette personne, les
champs 'documents délivrés' sont remplacés.

On me demande de tenir un historique des tous les documents délivrés par
individu.

Quelle serait la meilleure approche ? Update query ou AppendQuery ?
Il s'agirait en fait de compléter une nouvelle table "Historique" à chaque
modification de documents délivré par individu.



S'il y a vraiment beaucoup d'enregistrements... une table historique...

Sinon, pourquoi ne pas simplement ajouter la date et heure
de création - émission ( avec "Now" ) et simplement rechercher
le dernier avec un Max ou DMax, un "Select TOP 1 ... order LaDate Desc"
selon le cas.

Cela permet aussi d'afficher la personne dans un formulaire
principal et dans le sous formulaire, tous ses documents recus
triés par la date d'emission du plus récent au plus ancien.


--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------

Avatar
Bruno Frisque
Merci !
Mais un subForm impliquerait une refonte complète du form Bulletin, qui
contient déjà +/- 250 champs, plusieurs subforms et de nombreux calculs ...

Quel serait donc le meilleur moyen (via docmd.openquery) pour "expédier"
les champs
ID, Individu, DocDélivré, DateEmis, DateEcheance vers une nouvelle table
"Historique"
SI ces champs ont été modifiés.

(Ce moyen permettrait de ne pas toucher à ce qui existe ... et qui
fonctionne ..)

D'avance grand merci




"3stone" wrote in message
news:
Salut,

Bruno Frisque
J'ai un formulaire qui enregistre des noms et les types de documents
délivrés.
Ce formulaire est basé sur une table tblBulletin.

Chaque fois que l'on délivre un nouveau document à cette personne, les
champs 'documents délivrés' sont remplacés.

On me demande de tenir un historique des tous les documents délivrés par
individu.

Quelle serait la meilleure approche ? Update query ou AppendQuery ?
Il s'agirait en fait de compléter une nouvelle table "Historique" à
chaque


modification de documents délivré par individu.



S'il y a vraiment beaucoup d'enregistrements... une table historique...

Sinon, pourquoi ne pas simplement ajouter la date et heure
de création - émission ( avec "Now" ) et simplement rechercher
le dernier avec un Max ou DMax, un "Select TOP 1 ... order LaDate Desc"
selon le cas.

Cela permet aussi d'afficher la personne dans un formulaire
principal et dans le sous formulaire, tous ses documents recus
triés par la date d'emission du plus récent au plus ancien.


--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------






Avatar
3stone
Salut,

Bruno Frisque
Quel serait donc le meilleur moyen (via docmd.openquery) pour "expédier"
les champs
ID, Individu, DocDélivré, DateEmis, DateEcheance vers une nouvelle table
"Historique"
SI ces champs ont été modifiés.



Quelque chose comme...

CurrentDb.Execute "INSERT INTO T_Histo ( ID, Individu, DocDelivre,DateEmis,DateEcheance ) " _
& "SELECT ID, Individu, DocDelivre, DateEmis, DateEcheance " _
& "FROM T_Actuelle Where ID = " & Me.ID;

que tu peux faire exécuter sur "Après mise à jour" du formulaire
et en admettant que le ID de l'enregistrement actuel se trouve dans le formulaire.


--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------

Avatar
Bruno Frisque
Merci
J'essaie ! .....


"3stone" wrote in message
news:%
Salut,

Bruno Frisque
Quel serait donc le meilleur moyen (via docmd.openquery) pour
"expédier"


les champs
ID, Individu, DocDélivré, DateEmis, DateEcheance vers une nouvelle table
"Historique"
SI ces champs ont été modifiés.



Quelque chose comme...

CurrentDb.Execute "INSERT INTO T_Histo ( ID, Individu,
DocDelivre,DateEmis,DateEcheance ) " _

& "SELECT ID, Individu, DocDelivre, DateEmis, DateEcheance "
_

& "FROM T_Actuelle Where ID = " & Me.ID;

que tu peux faire exécuter sur "Après mise à jour" du formulaire
et en admettant que le ID de l'enregistrement actuel se trouve dans le
formulaire.



--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------






Avatar
Bruno Frisque
Formidable !!
Après bien des Syntax errors, TOUT fonctionne à merveille.

Tout grand merci !
à+


"3stone" wrote in message
news:%
Salut,

Bruno Frisque
Quel serait donc le meilleur moyen (via docmd.openquery) pour
"expédier"


les champs
ID, Individu, DocDélivré, DateEmis, DateEcheance vers une nouvelle table
"Historique"
SI ces champs ont été modifiés.



Quelque chose comme...

CurrentDb.Execute "INSERT INTO T_Histo ( ID, Individu,
DocDelivre,DateEmis,DateEcheance ) " _

& "SELECT ID, Individu, DocDelivre, DateEmis, DateEcheance "
_

& "FROM T_Actuelle Where ID = " & Me.ID;

que tu peux faire exécuter sur "Après mise à jour" du formulaire
et en admettant que le ID de l'enregistrement actuel se trouve dans le
formulaire.



--
A+
Pierre (3stone) Access MVP
--------------------------------------
Une pour tous, tous pour une ;-)
http://users.skynet.be/mpfa/
--------------------------------------