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

VBA Access Discussion :

Mettre à jour le back-end (linked table) // VBA


Sujet :

VBA Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 69
    Points : 46
    Points
    46
    Par défaut Mettre à jour le back-end (linked table) // VBA
    Bonjour!
    Pour permettre à des utilisateurs d'accéder et d'ajouter/supprimer des entrées sur une feuille de donnée, j'ai créé une mini base de donnée access, séparée en front-end (sur chaque poste) et back-end (sur le reseau). Ca fonctionne très bien, mais je cherche comment refresh le backend, et je n'arrive pas à trouver quelle fonctionne utiliser (l'idée est de fournir un simple bouton "refresh" et/ou de faire des refresh toutes les cinq minutes).

  2. #2
    Membre du Club

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2007
    Messages : 40
    Points : 47
    Points
    47
    Par défaut
    Bonjour Serendipity,
    Il y a peut-être d'autres solutions alternatives mais ce que tu peux utiliser le code suivant pour rafraîchir toutes les tables :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    Public Sub refreshLinkedTables()
        Dim db As Database
        Dim tbl As TableDef
     
     
        Set db = CurrentDb
        For Each tbl In db.TableDefs
            'Si pas une table temporaire système "~" et une table liée
            If (InStr(1, tbl.name, "~") = 0) And (tbl.Connect <> "") Then
                tbl.RefreshLink
            End If
        Next tbl
     
        Set tbl = Nothing
        Set db = Nothing
     
    End Sub
    Je pense que ça devrait faire l'affaire.

    J'espère que ça t'aura aidé.
    Bonne journée

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 69
    Points : 46
    Points
    46
    Par défaut
    Bonjour,

    merci pour ta réponse. J'ai ajouter ton code à un bouton pour tester, j'ignore si ça fonctionne : les informations de mon formulaire ne se mettent pas à jour. J'ai essayé d'ajouter aussi un "Me.form.refresh", je n'ai pas l'impression que ça fonctionne non plus (je vais regarder si ça cible bien mon formulaire).

  4. #4
    Membre expérimenté Avatar de RobiPMS
    Homme Profil pro
    Conseiller psycho-pédagogique
    Inscrit en
    Octobre 2007
    Messages
    827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Conseiller psycho-pédagogique
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2007
    Messages : 827
    Points : 1 506
    Points
    1 506
    Par défaut
    Bonjour.
    Si ce que tu veux faire est actualiser les données affichées par ton formulaire, c'est plutôt la méthode Requery que tu dois utiliser.
    En simplifiant, on peut dire que Refresh met à jour la source de données des modifications saisies dans le formulaire, alors que Requery remet à jour le formulaire en réinterrogeant la source de données. Donc, si le contenu des tables a changé, c'est par la méthode Requery que tu pourras le voir dans ton formulaire.
    Selon l'aide d'Access :
    Dans une base de données Microsoft Access (base de données Microsoft Access : collection de données et d’objets (tels que des tables, des requêtes ou des formulaires) qui est associée à une rubrique ou un objectif donné.), la méthode Refresh affiche uniquement les modifications apportées aux enregistrements du jeu courant. Dans la mesure où la méthode Refresh n'interroge pas à nouveau la base de données, le jeu courant n'inclut pas les enregistrements ajoutés, supprimés ou qui ne satisfont plus les critères de la requête ou du filtre. Pour interroger à nouveau la base de données, utilisez la méthode Requery. Lorsque la méthode d'interrogation est appliquée à la source d'enregistrements d'un formulaire, le jeu d'enregistrement courant reflète toutes les données de cette dernière.
    Donc, mets plutôt Par contre, si tu veux que la source de données soit mise à jour après avoir encodé des données dans un formulaire, fais un "Me.Refresh".
    Autre possibilité, pour que la table sous-jascente au formulaire soit le plus rapidement mise à jour quand quelqu'un encode des données, tu peux aussi penser à enregister après mise à jour d'un champ
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub TonChamp_AfterUpdate()
    DoCmd.RunCommand acCmdSaveRecord
    End Sub
    Cordialement.
    N'oubliez pas de tagguer la discussion comme résolue si vous avez été aidé!
    Plus haut monte le singe, plus il montre son cul (Montaigne)
    Je ne réponds pas aux messages personnels concernant des questions discutées dans le forum.

Discussions similaires

  1. Mettre à jour plusieurs lignes d'une table
    Par beegees dans le forum Langage
    Réponses: 5
    Dernier message: 15/10/2008, 18h09
  2. Réponses: 4
    Dernier message: 03/07/2008, 15h53
  3. Réponses: 3
    Dernier message: 24/10/2007, 10h01
  4. Réponses: 7
    Dernier message: 12/07/2006, 17h34
  5. Comment mettre à jour 1 champ d'une table via une autre tabl
    Par cpasmoibiensur dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 05/02/2006, 13h33

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