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

Discussion: Avertissement modification données [AC-2010]

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    février 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : février 2009
    Messages : 8
    Points : 5
    Points
    5

    Par défaut Avertissement modification données

    Bonjour,

    Pour mon travail, j'avais créé un fichier Excel sur lequel j'importais les données de paiement de mon programme de comptabilité afin que mes collègues puissent faire le suivi de leurs dossiers.
    Si le client oublie de mettre le numéro de facture, mes collègues l'indiquent sur le fichier et, via l'onglet révision => Suivi des modifications, je savais ce qui était modifié.
    J'allais commencer à tenter de bidouiller des macros trouvées sur le net pour essayer de recevoir les modifications par mail, mais mon fichier Excel devient de plus en plus lourd et bug régulièrement.
    Afin de résoudre ce problème, j'ai décidé de créer une base de données très simple : 1 table et 6 requêtes.

    Parmi les requêtes, j'en ai fait une qui reprend les paiements sans références ce qui permet à mes collègues d'ajouter le numéro de facture.
    La modification s'enregistre sans problème sur la table, mais je n'arrive plus à voir les modifications apportées.

    J'ai fait plusieurs tests sur Access, des recherches sur l'aide, sur le net et je n'arrive pas à trouver une solution pour afficher les modifications et/ou recevoir un mail avec les modifications.

    Existe-t-il un requête spéciale, une macro ou autre chose ?

    Pour info, je ne m'y connais pas en programmation Virtual Basic.

    D'avance, je vous remercie pour votre aide.
    Snerk69

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    octobre 2005
    Messages
    12 566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : octobre 2005
    Messages : 12 566
    Points : 19 144
    Points
    19 144

    Par défaut

    Bonjour.

    Un point de vocabulaire : le langage de programmation de Access (et toutes la suite Office) est VBA (Visual Basic for Application) et non VB (Visual Basic).
    C'est important car si ils ont beaucoup de similitudes ils ont aussi beaucoup de differences et ce qui marche dans l'un pourrait ne pas marche dans l'autre et vice-versa.

    Sinon, dans Access, il n'y a pas en standard de suivi de modification. Pour Access les donnees sont et ont toujours etees dans l'etat ou il les trouve.

    Tu as plusieurs solutions :
    1. Passer par un formulaire et noter au passage les modifs dans un journal des modifications.
    2. Garder une copie originelle et faire une comparaison entre tes donnees initiales et tes donnees actuelles.
    3. Si tu as Access 2010 ou plus, tu peux utiliser les macros de donnees pour faire suivi des modifications.
      Personnellement je ne recommande pas car je trouve cela penible et limite mais tu peux.


    Combien de champs sont-ils modifies par tes collegues ? Seulement 1 ?

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    février 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : février 2009
    Messages : 8
    Points : 5
    Points
    5

    Par défaut

    Salut Marot_r,

    Merci pour cette précision de vocabulaire, ça me permettra d’affiner mes futures recherches.

    Quelle est la façon la plus rapide?

    Avec le point 1, quand tu dis "noter", manuellement ou automatiquement via Access;
    Avec le point 2, je dois faire un export en Excel puis mettre une formule pour comparer les données.

    J'ai Access 2010 et il y a 2 champs qui peuvent être modifiés.

    Merci
    Snerk69

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    octobre 2005
    Messages
    12 566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : octobre 2005
    Messages : 12 566
    Points : 19 144
    Points
    19 144

    Par défaut

    Bonjour.

    Vu que tu n'as que 2 champs et que tu debutes, je pense que les requetes seront la solution la plus simple.

    Donc dans la BD que tu vas fournir a tes collegues tu vas avoir 2 tables :
    1. tblAModifier (celle qui va servir a la saisie)
    2. tblReference (celle qui va servir a detecter les modifs)


    Au depart tes tables contiennent exactement les memes donnees.

    Tu peux mettre les noms qui te conviennent, la c'est pour illustrer le propos.

    Apres tu crees un formulaire (frmAModifier) base sur tblAModifier qui va permettre a tes utilisateurs de faire la saisie.
    Il est recommande de passer par un formulaire car cela te donnes plus de controle sur ce que peuvent faire tes utilisateurs.
    Tu peux par exemple empecher qu'ils suppriment ou ajoutent des lignes, modifient certain champs, reagir a ce qu'ils ont saisi ...

    De ton cote tu vas creer une requete (reqModifie) qui prend tes 2 tables et qui les mets en correspondance (on parle de jointure) sur ta clef unique.
    Une clef unique est SUPER important dans une table. Elle te permet de savoir avec certitude sur quel enregistrement tu es car Access n'a pas la notion de "ligne".
    Une table c'est un gros tas de donnees avec des etiquettes individuelles.
    Une clef unique peut etre contenue dans un seul champ ou une combinaison de plusieurs champs.
    Quand tu l'as (les as) identifie, tu le (les) selectionnes et tu appuis sur le bouton [Clef] dans la table.

    Une fois les clefs crees, utilise l'assistant de creation de requete pour mettre en correspondance tes 2 tables.

    Une fois que tu as reqModifie qui devrait contenir au minimum :
    ClefUnique (dans ce cas clef primaire)
    Champ1_Reference : [TblReference].[Champ1]
    Champ1_AModifier : [TblAModifier].[Champ1]
    Champ2_Reference : [TblReference].[Champ2]
    Champ2_AModifier : [TblAModifier].[Champ2]

    Tu vas ajouter 2 champs de calcul qui von te servir a detecter les modifs.

    TestChamp1: [TblReference].[Champ1] & "" <> [TblAModifier].[Champ1] & "".
    TestChamp2: [TblReference].[Champ2] & "" <> [TblAModifier].[Champ2] & ""
    .
    Le & "" te permets de facilement gerer les nulls qui sont toujours un peu delicat a traiter.

    Ensuite sur la 1ere ligne critere, dans la colonne TestCamp1, tu vas mettre =True (Access va traduire en francais pour toi)
    Ensuite sur la 2ieme ligne critere, dans la colonne TestCamp2, tu vas mettre =True (Access va traduire en francais pour toi)

    Cela va te donner tous les enregistrements ou les donnees on ete modifiees dans l'une des 2 colonnes ou les deux.

    Apres tu peux soit reporter tes modifs a la main, soit utiliser une requete de mise a jour pour que Access le fasse pour toi.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    février 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : février 2009
    Messages : 8
    Points : 5
    Points
    5

    Par défaut

    Bonjour,

    Désolé de répondre seulement maintenant mais avant de poster ma réponse, je préférai tenter toutes les solutions possibles pour ne pas te déranger pour rien.

    Malheureusement, toutes mes tentatives se soldent par un échec. J'ai même refait une nouvelle base de données en suivant toutes tes instructions pas à pas.
    La requête s'ouvre mais rien ne s'affiche.

    Ma clé est est celle choisie par Access.
    La table de modification est un copié-collé de la table de référence.

    J'ai mis la base de donnée en annexe au cas où ça t'aiderait.

    Encore une fois, merci pour ton aide

    Snerk69
    Fichiers attachés Fichiers attachés

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    octobre 2005
    Messages
    12 566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : octobre 2005
    Messages : 12 566
    Points : 19 144
    Points
    19 144

    Par défaut

    bonjour.

    Je te fais un maquette ce soir.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  7. #7
    Modérateur

    Homme Profil pro
    Inscrit en
    octobre 2005
    Messages
    12 566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : octobre 2005
    Messages : 12 566
    Points : 19 144
    Points
    19 144

    Par défaut

    Bonjour.

    Ci-joint une mini-maquette.

    Modif.zip

    j'ai créé des données de tests dans tblDonnees et tblDonnees_Ref.

    La requête req03_AfficherModif te montre les enregistrements qui ont été modifiés, soit dans le 1er champ, soit dans le 2ième, soit dans les 2.
    Les 2 autres requêtes sont des requêtes "de service" qui te permettent de simuler un fonctionnement "normal".
    1) tu vides ta table de saisie.
    2) tu y copies les données de référence.
    3) avec le formulaire frmDonnees tu fais les modifs. J'ai paramétré le formulaire pour qu'on ne puisse pas supprimer des lignes ou en ajouter et vérouillé les champs pour que seuls V1 et V2 soient modifiables.
    4) tu ouvres req03 et tu peux voir le résulat. Si aucun enregistrement n'est modifié l'écran est "vide".

    En passant, pour la mise à jour, si j'étais toi, je ne m'embetterai pas dés qu'un des 2 champs est modifié, je reporterai les systématiquement les valeurs dans les 2 champs. Ça évite de devoir faire 2 traitements : 1 pour V1 et un pour V2.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    février 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : février 2009
    Messages : 8
    Points : 5
    Points
    5

    Par défaut

    Hello,

    J'ai réussi à adapter ta mini-maquette en fonction de mes données et ça fonctionne parfaitement. Génial

    Un tout grand merci pour tes conseils et ton aide.

    Encore
    @+
    Snerk69

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

Discussions similaires

  1. [Access 2003]Erreur modification données dans base distante
    Par Julio_del_pueblo dans le forum Access
    Réponses: 2
    Dernier message: 22/06/2006, 15h22
  2. Réponses: 20
    Dernier message: 02/06/2006, 13h13
  3. [ADO.Net][C# 2.0]Comment répercuter modifications données?
    Par fagos dans le forum Accès aux données
    Réponses: 6
    Dernier message: 14/04/2006, 16h18
  4. Réponses: 5
    Dernier message: 27/02/2006, 12h31
  5. [Modification données] Comment revenir en arrière?
    Par claralavraie dans le forum Oracle
    Réponses: 7
    Dernier message: 01/02/2006, 18h56

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