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

Modélisation Discussion :

Rafraichissement et mises à jour des enregistrements d'une table en access liée à SQL Server


Sujet :

Modélisation

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 38
    Points : 30
    Points
    30
    Par défaut Rafraichissement et mises à jour des enregistrements d'une table en access liée à SQL Server
    Bonjour,

    J'ai connecté ma base de données Access avec SQL Server via ODBC. Une fois les modifications sont faites, je désire que les enregistrements soient mis à jour automatiquement en Access. j'avais testé d'appuyer seulement sur le bouton F5, ça a marché quelques fois, mais je pense que ce n'est pas une solution efficace. Quelqu'un a déjà essayé de faire un rafraîchissement automatique dans une base de donnée Access??

  2. #2
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2009
    Messages : 55
    Points : 78
    Points
    78
    Par défaut
    Bonjour,

    Il y a des éléments 'obscurs' dans ta demande mais 2 points peuvent être précisés. Pour une application Access connectée à une BD SQL:

    1 - Toute modification/annulation de données dans Access est immédiatement passée à SQL (bien sur, on déplace le focus sur un autre enregistrement...).

    2 - Toute modification/annulation de données dans SQL n'est pas passée à Access automatiquement; on doit donc faire F5 périodiquement pour éviter les conflits de modifs.

    Faire attention avec l'usage de F5 car cela peut entraîner le transfert inutile de données.

    Il est possible de faire F5 automatiquement en utilisant l’évènement 'on timer' de ton formulaire dans lequel on place un Me.Requery

    Bonne programmation,
    JLCantara.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 38
    Points : 30
    Points
    30
    Par défaut
    Bonjour,

    En effet, ce que j'avais trouvé dans les forums et les tutos à propos des modifications, suppressions... dans SQL server et Access est exactement ce que vous m'aviez dit.

    Mais là quand je finalise mon application et la convertit en mode runtime (*.accdr), je ne sais pas pourquoi les enregistrements ne se rafraîchissent plus??!!

    Aussi j'aimerai bien que vous m'expliquiez davantage comment appliquer la mise à jour automatique en utilisant l’évènement 'on timer' du formulaire et Me.Requery . Merci beaucoup

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 38
    Points : 30
    Points
    30
    Par défaut
    En effet, j'ai trouvé une solution mais elle n'est pas très convaincante. Lors de la création d'une connexion ODBC entre une base de données Access et une autre externe (dans mon cas c'est SQL Server), l'assistant Access propose 2 modes de liaisons:

    1) Importer les données sources dans une nouvelle table de la base de données active;

    => Ce mode propose simplement de ramener une copie de la table à partir de la BD externe. Les modifications et mises à jour ne sont pas prises en compte dans la BD externe. Malgré l'utilisation de Me.Requery et Me.Refresh Car tout simplement cette liaison ODBC a permis de, seulement, copier la base externe dans la base locale.

    2) Lier à la source de données en créant une table attachée.

    => Ce mode permet une liaison entre les deux tables. Les données sont mises à jour automatiquement dans les 2 côtés (BD locale: Access et BD externe: SQL Server).

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2009
    Messages : 55
    Points : 78
    Points
    78
    Par défaut
    Citation Envoyé par mo9rissat Voir le message
    Mais là quand je finalise mon application et la convertit en mode runtime (*.accdr), je ne sais pas pourquoi les enregistrements ne se rafraîchissent plus??!!
    Ça, c'est pas clair: du côté SQL ou Access?

    Citation Envoyé par mo9rissat Voir le message
    Aussi j'aimerai bien que vous m'expliquiez davantage comment appliquer la mise à jour automatique en utilisant l’évènement 'on timer' du formulaire et Me.Requery
    Si tu regardes events du formulaire, tu vas voir que le délais est fixé à 1000 ms. Ainsi, chaque seconde, le sub xxx_Timer est exécuté. Il suffit alors d'exécuter Me.Requery pour forcer la mise à jour i.e. vider les caches temporaires de Access vers SQL puis exécuter de nouveau la requête du formulaire.

    JLCantara.

Discussions similaires

  1. Réponses: 6
    Dernier message: 03/02/2013, 23h23
  2. Mise à jour des champs d'une table
    Par soso78 dans le forum Access
    Réponses: 2
    Dernier message: 14/12/2006, 15h57
  3. Réponses: 2
    Dernier message: 07/06/2006, 14h13
  4. Module de mise à jour des champs d'une table
    Par kikaillo dans le forum Access
    Réponses: 14
    Dernier message: 18/04/2006, 09h42
  5. Réponses: 6
    Dernier message: 07/02/2006, 14h44

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