Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Detection d'un changement des enregistrements (Access 2000)

2 réponses
Avatar
tuxim
Titre : Detection d'un changement des enregistrements (Access 2000)

Je doit effectuer une modification sur une base de données Access 2000.
Nom du fichier : clients.mdb.
Cette BD à été crée par une personne tiers ....
La base de données contient plusieurs tables qui sont liée entres elles par
des "relations". Les formulaires clients contiennent des nombreux
champs...informations sur des crédits en cours ....

Je viens d'ajouter un champs du type Boolean "DOS_UPDATE" dans une des
tables nommé "DOSSIERS". Celui-ci doit être utilisée pour distinguer un
changement des données sur des differents formulaires (fiches) des clients.

Je ne pas d'habitude de travailler avec Accees (Visual Basic) mais plutôt
avec Delphi 6 (Pascal), mais pour ce projet je suis malgré tout oblige
d'apporter quelques modifications à cette base de données pour créer une
petite "interface" entre la BD et mon programme Delphi, qui accède aussi à
cette base de données.

Ma question concernant Access 2000 :

Existe t'il une manière simple pour détecter le changement d'un champs sur
un formulaire, c'est à dire le changement des données sur une fiche de
client? Il me semble un peux fastidieux de déclencher individuellement un
Évènement "Sur Changement" pour chaque Zone de texte, .... Il y à au moins
250 zones de textes sur les divers formulaires (au sein de la base de la
données)! Je souhaite en effet que le champs "DOS_UPDATE" soit initié à
"true" quand une modification quelconque est apporte à une des "fiches"
clients.

Mon programme Delphi "scanne" une fois par jour la base de données pour
traiter uniquement les "fiches clients" qui ont le champs "DOS_UPDATE"
initié à "true".

Merci d'avance pour vos suggestions et eventuellement me donner un coup de
main pour l'écriture des quelques lignes de code.

2 réponses

Avatar
Raymond [mvp]
Bonjour.

il faut traiter ton sujet dans l'événement Form_Afterupdate. Cet événement
se déclenche lorsque le formulaire a été modifé mais ne donne pas le nom du
contrôle modifié.
Private Sub Form_AfterUpdate()
Me.DOS_UPDATE = True
End Sub
pour info, lors de la 1ere modif, 1er caractère frappé dans un contrôle, la
propriété Dirty passe de False à True et avec elle tu peux savoir qu'une
modif est commencée. par ailleurs dans l'événement Dirty tu peux savoir le
nom du 1er contrôle modifié par la fonction Screen.ActiveControl.Name
Private Sub Form_Dirty(Cancel As Integer)
NomduControle = Screen.ActiveControl.Name
End Sub

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"tuxim" a écrit dans le message de
news:407bce16$0$26454$
Titre : Detection d'un changement des enregistrements (Access 2000)

Je doit effectuer une modification sur une base de données Access 2000.
Nom du fichier : clients.mdb.
Cette BD à été crée par une personne tiers ....
La base de données contient plusieurs tables qui sont liée entres elles
par

des "relations". Les formulaires clients contiennent des nombreux
champs...informations sur des crédits en cours ....

Je viens d'ajouter un champs du type Boolean "DOS_UPDATE" dans une des
tables nommé "DOSSIERS". Celui-ci doit être utilisée pour distinguer un
changement des données sur des differents formulaires (fiches) des
clients.


Je ne pas d'habitude de travailler avec Accees (Visual Basic) mais plutôt
avec Delphi 6 (Pascal), mais pour ce projet je suis malgré tout oblige
d'apporter quelques modifications à cette base de données pour créer une
petite "interface" entre la BD et mon programme Delphi, qui accède aussi à
cette base de données.

Ma question concernant Access 2000 :

Existe t'il une manière simple pour détecter le changement d'un champs sur
un formulaire, c'est à dire le changement des données sur une fiche de
client? Il me semble un peux fastidieux de déclencher individuellement un
Évènement "Sur Changement" pour chaque Zone de texte, .... Il y à au moins
250 zones de textes sur les divers formulaires (au sein de la base de la
données)! Je souhaite en effet que le champs "DOS_UPDATE" soit initié à
"true" quand une modification quelconque est apporte à une des "fiches"
clients.

Mon programme Delphi "scanne" une fois par jour la base de données pour
traiter uniquement les "fiches clients" qui ont le champs "DOS_UPDATE"
initié à "true".

Merci d'avance pour vos suggestions et eventuellement me donner un coup de
main pour l'écriture des quelques lignes de code.


Avatar
tuxim
MERCI beaucoup pour ton aide.