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

IHM Discussion :

Savoir si la base à été modifiée


Sujet :

IHM

  1. #1
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2012
    Messages : 284
    Points : 284
    Points
    284
    Par défaut Savoir si la base à été modifiée
    Bonjour,

    Je me demande s'il est possible de connaître la date et l'heure de la dernière modification intervenue dans la base de donnée, d'une part au niveau des données et d'autre part au niveau du reste (code, formulaire, rapport ...) ou bien de l'ensemble des deux.

    Je ne peux pas me fier à la date qui est sur le disque car il suffit d'ouvrir et de fermer la base pour que la date change.

    C'est pour savoir si une sauvegarde de la base est nécessaire à sa sortie, et du coup éviter d'avoir des sauvegardes en double sur le disque ou ailleurs.

    Merci d'avance.

  2. #2
    Membre éprouvé

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Novembre 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 904
    Points : 1 229
    Points
    1 229
    Par défaut
    Bonjour

    Tu peux récupérer les dates de modification des objets avec une requête sur la table MSysObjects
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT MSysObjects.DateUpdate, MSysObjects.Name
    FROM MSysObjects;
    Quant aux modifications des données des tables, j'utilise une table à 1 enregistrement qui sert à stocker toutes les infos de la base (version, date MAJ, ...) dans laquelle j'ai un champ Date DernièreModif pour chaque table concernée (quelques unes ! ),
    et dans l'événement 'Avant MAJ' du formulaire concerné j'exécute une requête mise à jour de table qui met Now() dans le champ DernièreModif.
    (il y a peut-être plus simple ? )

  3. #3
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2012
    Messages : 284
    Points : 284
    Points
    284
    Par défaut
    merci titi95,

    Mais la table MSysObjects.DateUpdate met à jour automatiquement certains Objects au simple fait d'ouvrir et fermer la base sans aucune modif, dans ces Objects il y a des tables.

    Ca aurait été trop facile.

    pour ta deuxième solution ok, mais faut rien oublier de noter, j'avais commencer, sur mes tables pour voir qui modifiait quoi, mais parfois des bugs aussi j'ai passé le code en remarque pour le moment et rendre ma base plus fiable.

    Après avoir posté cette discussion, je me suis dit que je pourrais employer bêtement un programme qui trouve les doublons,
    de cette manière :
    Si ma base est identique avant et après ouverture c'est que aucun changement n'est intervenu, pas besoin de sauvegarder.

    Et bien le fait d'ouvrir une base et de la fermer de suite change plein de lignes dans le fichier.accdb, on le voit avec le logiciel WinMerge.

    Ce que le logiciel de recherche de doublons confirme, dans un dossier, la base plus la sauvegarde de la base sont des doublons,
    j'ouvre et ferme la base, ce ne sont plus des doublons.

    Pour une solution simple, je crois que c'est rappé.

    Bien cordialement

  4. #4
    Membre éclairé
    Homme Profil pro
    Regisseur
    Inscrit en
    Octobre 2006
    Messages
    475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Regisseur
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Octobre 2006
    Messages : 475
    Points : 850
    Points
    850

  5. #5
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2012
    Messages : 284
    Points : 284
    Points
    284
    Par défaut
    Merci Thierry pour les infos.

  6. #6
    Membre éprouvé

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Novembre 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Novembre 2007
    Messages : 904
    Points : 1 229
    Points
    1 229
    Par défaut
    Bonjour
    Mais la table MSysObjects.DateUpdate met à jour automatiquement certains Objects au simple fait d'ouvrir et fermer la base sans aucune modif, dans ces Objects il y a des tables
    ??? pas chez moi ; vérifié sur plusieurs bases. Et toi, tu as vraiment vérifié ?

    Par ailleurs, DateModified et LastUpdated prennent leurs infos dans une table qui s'appelle... MSysObjects !

    L'avantage de requêter sur cette table c'est que tu peux extraire ce que tu veux et trier (sur la date par exemple).
    Par contre, il est préférable d'avoir des noms d'objets "standardisés" pour faciliter la requête.
    C'est le cas dans toutes mes bases où les noms des tables commencent pat 't_', ceux des formulaires par 'f_'...

  7. #7
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2012
    Messages
    284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Bâtiment

    Informations forums :
    Inscription : Février 2012
    Messages : 284
    Points : 284
    Points
    284
    Par défaut
    Bonjour Titi95,
    ??? pas chez moi ; vérifié sur plusieurs bases. Et toi, tu as vraiment vérifié ?
    Bien sûr j'ai vérifié, et même plusieurs fois, mais que sur ma base qui à un formulaire d'accueil qui s'ouvre à l'ouverture de la base.
    Donc c'est toi qui a raison.
    Je vais garder mon formulaire d'accueil en ouverture automatique dont je dois trouver une autre solution sans la table MSysObjects.

    Je pensais comme je suis l'unique utilisateur de la base sur un seul ordi, à une autre solution pour les tables :

    Comparer les tables à l'ouverture et à la fermeture pour détecter un changement de donnée, et si oui, avertir qu'une sauvegarde serait utile avant fermeture.

    Pour les autres objets de la base je n'ai pas d'idée.

    Bien cordialement.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 12/07/2012, 13h02
  2. Réponses: 2
    Dernier message: 27/06/2006, 10h15
  3. Savoir si un enregistrement à été modifié ou créé
    Par hexawar dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 19/06/2006, 10h24
  4. Comment savoir qu'un fichier est modifie
    Par moniphal dans le forum Langage
    Réponses: 2
    Dernier message: 02/10/2005, 11h26
  5. comment savoir si la base a été modifiée?
    Par debdev dans le forum Administration
    Réponses: 2
    Dernier message: 05/08/2005, 18h51

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