IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros Access Discussion :

Formulaire de modification d' enregistrement [AC-2016]


Sujet :

Macros Access

  1. #1
    Membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Septembre 2014
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2014
    Messages : 70
    Points : 46
    Points
    46
    Par défaut Formulaire de modification d' enregistrement
    Bonjour,


    Débutant avec Access, j' explore les possibilités des macros avant de m' attaquer au VBA.
    Je voudrais mettre à jour un enregistrement précis d' une table à l' aide d' un formulaire, et imposer pour cela un click sur un bouton "mise à jour". Avant la mise à jour, je voudrais modifier le champs contenant une zone date et représentant la dernière date de modification.

    J' ai créé un formulaire en ajoutant une liste déroulante reprenant la clé primaire de la table et dès la sélection de cette clé, le formulaire affiche le bon enregistrement (parfait)
    Il faudrait bloquer la mise à jour lorsque je change d' enregistrement afin d' imposer le click sur le bouton "mise à jour" Je ne sais pas comment faire.
    J' ai créé une macro qui s' enclenche au click du bouton. Dans cette macro, je repère si l' enregistrement a été modifié avec la propriété "dirty" (parfait)
    Je dois alors modifié le champs "date de modification et c' est là que j' ai mon deuxième problème. Avec l 'action macro "définir propriété", je choisi la propriété "valeur" et le box contenant la date. Si j' entre manuellement dans la macro une date, c' est OK, mais si j' emploie la fonction "maintenant", j' ai un message à l' exécution (valeur non valide pour ce champs) pourtant bien défini en date; On dirait qu' il comprend cela comme étant du texte. Voir pièces jointes.
    Et puis sauvegarder l' enregistrement (OK)

    Deux questions donc:
    1) Comment bloquer la mise à jour d' un enregistrement au passage à un autre enregistrement et ainsi ne le permettre qu' avec le bouton mise à jour et sa macro associée?
    2) Comment modifier ce champs date avec la fonction "maintenant"?

    Merci de votre aide.
    Daniel Paulus
    Images attachées Images attachées     

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    Bonsoir,
    pas évident les macros ...
    Personnellement, j'évite leur utilisation qui frise le non-sens ...
    Essaie en mettant : =Now() car =Maintenant(), Access ne connait pas et pourtant c'est ce qu'il propose dans les fonctions intégrées.

    Finalement après un autre essai, cela fonctionne avec Maintenant, il semble que c'est le = devant qui te manque.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  3. #3
    Membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Septembre 2014
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2014
    Messages : 70
    Points : 46
    Points
    46
    Par défaut
    Cela s' appelle la loi de la vexation; J' avais à peu près tout essayé sauf ça.
    Un grand merci

    Reste le blocage de mise à jour lors d' un changement de record. Une idée?

    Merci
    Daniel

  4. #4
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    Plutôt qu'un bouton, il est plus simple de créer une Macro de données dans la table comme çà, la date sera mise à jour automatiquement si une création ou une mise à jour se produit et cela même sans passer par un formulaire.
    En mode Création de ta table, sélectionne l'icône "Créer des macros de données" dans le ruban.
    Il faut créer un évènement Avant Modification et choisir Définir Champ.
    Mettre ensuite le nom du champ et sa valeur.
    Et ici, Maintenant() fonctionne avec ou sans le =
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  5. #5
    Membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Septembre 2014
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2014
    Messages : 70
    Points : 46
    Points
    46
    Par défaut
    Merci pour votre aide,

    Pour diverses raisons personnelles un peu longues à expliquer et aussi comme exercices de style, je préfère garder le formulaire et les boutons. La seule chose qui me reste à solutionner est ce fameux blocage de mise à jour automatique.

    Daniel

  6. #6
    Membre éprouvé
    Inscrit en
    Août 2008
    Messages
    740
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 740
    Points : 1 045
    Points
    1 045
    Par défaut
    Bonjour,

    exercice de style mis a part, je suis d'accord avec tee_grandbois, tes problemes peuvent etre resolu avec 1 champ oui/non [MiseAjour] et une macro de donnees assez simple, voir exemple ci dessous

    testMiseAJour.zip

  7. #7
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    bonjour,
    merci accessisgood pour le coup de main .
    Du coup, j'ai implémenté ta base exemple d'un formulaire avec la macro pour le bouton.
    Cela devrait satisfaire le besoin de multimedia999 :
    testMiseAJour.rar
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  8. #8
    Membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Septembre 2014
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2014
    Messages : 70
    Points : 46
    Points
    46
    Par défaut
    Bonjour,

    Merci pour votre aide à tous deux, mais je n' ai pas besoin de ce champs mis à jour, je repère la mise à jour avec la propriété "dirty".
    Je voudrais juste déactiver la mise à jour lors d' un changement ds' enregistrement.

    Cordialement
    Daniel

  9. #9
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    mais je n' ai pas besoin de ce champs mis à jour
    C'est juste un booléen et c'est uniquement pour faire fonctionner la macro du bouton, où est le problème ? ...
    Ton cahier des charges t'impose de ne pas utiliser des champs inutiles ou "c'est diverses raisons personnelles un peu longues à expliquer" ?
    C'est déjà pas évident de coder avec les macros...

    Sympa de donner un coup demain ...
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  10. #10
    Membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Septembre 2014
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2014
    Messages : 70
    Points : 46
    Points
    46
    Par défaut
    Bonjour,

    Merci de vos réponses.
    C' est juste que la macro fonctionne très bien sans ce champs, avec la propriété "dirty".
    Je veux juste éviter qu' une mise à jour se fasse sans l' appui sur ce bouton (par exemple: lors d' un changement d' enregistrement, par mise à jour automatique).

    Merci
    Daniel

  11. #11
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    ce sera ma dernière contribution à ce post :
    Je veux juste éviter qu' une mise à jour se fasse sans l' appui sur ce bouton (par exemple: lors d' un changement d' enregistrement, par mise à jour automatique).
    c'est justement pour cela que ce champ MiseAJour a été ajouté. Dirty ne t'empêchera pas d'aller sur un autre enregistrement, ce simple booléen, oui.
    Fin de la discussion.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  12. #12
    Membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Septembre 2014
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2014
    Messages : 70
    Points : 46
    Points
    46
    Par défaut
    Bonjour,


    Désolé, mais je ne comprends pas. Peux-tu m' expliquer comment ce champs peut m' empêcher d' aller sur un autre enregistrement?

    Merci
    Daniel

  13. #13
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    Le champ fait fonction de contrôleur pour obliger l'utilisateur à effectuer une action grâce à une macro de données intégrée à la table, s'il ne le fait pas, un message apparait car le champ MiseAjour n'est pas égal à Vrai.
    Tu n'as qu'a tester la base exemple mise à ta disposition et teste le Formulaire1 pour voir le résultat.
    Regarde aussi la Table1 en mode création : clique sur "Créer des macros de données", puis sur "Avant modification" pour comprendre le principe.
    En fait cela fonctionne comme Dirty mais pour la table.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  14. #14
    Membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Septembre 2014
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2014
    Messages : 70
    Points : 46
    Points
    46
    Par défaut
    Re,

    Je comprends le principe, mais je n' ai pas accès aux macro de données (Access 2016), je vois que tu as mis une macro sur la table, mais je ne peux la voir, ni ne peux en créer une.
    Les options "créer une macro nommée" et "modifier une macro nommée" sont grisées.
    Comment les rendre accessibles?

    Merci
    Daniel

  15. #15
    Membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Septembre 2014
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2014
    Messages : 70
    Points : 46
    Points
    46
    Par défaut
    Re,

    J' ai trouvé, un grand merci

    Cordialement
    Daniel

  16. #16
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    Est-ce que la solution proposée a résolu ton besoin ?
    Dans ce cas, n'oublie pas d'appuyer sur le bouton en bas de la discussion.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  17. #17
    Membre du Club
    Homme Profil pro
    Retraité
    Inscrit en
    Septembre 2014
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2014
    Messages : 70
    Points : 46
    Points
    46
    Par défaut
    Oui, un tout grand merci
    J' appuie

    Daniel

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Enregistrement d'un formulaire en modification
    Par anodaim dans le forum InfoPath
    Réponses: 3
    Dernier message: 27/04/2011, 16h01
  2. [AC-2003] Modification d'enregistrement dans un sous formulaire
    Par Kaptain84 dans le forum IHM
    Réponses: 6
    Dernier message: 21/12/2009, 07h59
  3. Réponses: 7
    Dernier message: 06/04/2007, 14h26
  4. [MySQL] Modification des enregistrements d'une table à partir d'un formulaire
    Par Maria1505 dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 18/12/2006, 17h32
  5. Réponses: 4
    Dernier message: 23/03/2006, 15h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo