Detection d'un changement des enregistrements (Access 2000)
2 réponses
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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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.
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" <no_spam@no_spam.org> a écrit dans le message de
news:407bce16$0$26454$626a14ce@news.free.fr...
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.
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.