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 :

rafraichissement des tables attachées


Sujet :

IHM

  1. #1
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 75
    Points : 50
    Points
    50
    Par défaut rafraichissement des tables attachées
    Bonjour,

    J'ai encore un problème... Je veux rafraichir les liens de mes tables attachées. J'ai récupéré ce code d'une autre appli mais j'obtiens un message d'erreur "l'objet est incorrect ou plus définié à l'instruction "If defs.SourceTableName ". J'ai beau retourner le problème dans tous les sens, je ne vois pas où cela peut bien buter. Pourtant ce code marche parfaitement sur l'autre application...

    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
    Dim repSource As String
    Dim rep As String
    Dim defs As TableDef
    Dim i As Integer
     
        rep= CurDir & "\data.mdb"
        For i = 0 To CurrentDb.TableDefs.Count - 1
            Set defs = CurrentDb.TableDefs(i)
                If defs.SourceTableName <> "" Then  
                    If Not (defs.Connect Like "*" & rep) Then
                    defs.Connect = ";DATABASE=" & rep
                    defs.RefreshLink
                    End If
                End If
        Next i
    Merci de l'aide que vous pourriez apporter.

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    Je ne sais pas pourquoi, mais avec un objet Database ça fonctionne.
    Code vb : 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
    Dim repSource As String
    Dim rep As String
    Dim defs As TableDef, db As DAO.Database
    Dim i As Integer
     
        rep = CurDir & "\data.mdb"
        Set db = CurrentDb
        For i = 0 To db.TableDefs.Count - 1
            Set defs = db.TableDefs(i)
                If defs.SourceTableName <> "" Then
                    If Not (defs.Connect Like "*" & rep) Then
                       defs.Connect = ";DATABASE=" & rep
                       defs.RefreshLink
                    End If
                End If
        Next i
    A+

    Ajout:
    J'ai trouvé dans l'aide. CurrentDb est une fonction qui retourne une référence à un nouvel objet Database. Ce n'est pas un objet.
    Tentative d'explication :
    Si on ne sauve cet objet à l'assignant à une variable objet il est détruit après utilisation (c.a.d à la ligne suivante).
    Donc l'élément de la collection TableDefs auquel fait référence defs n'existe plus, puisque l'objet contenant la collection n'existe plus.

  3. #3
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 359
    Points : 23 829
    Points
    23 829
    Par défaut
    Probablement tu as une incertitude sur l'objet Tabledef entre la librairie ADO et DAO.

    CurrentDb est un objet Database DAO et la propriété SourceTableName ne doit être définie que pour les objets DAO.Tabledef pas ADO.TableDef.

    A+

  4. #4
    Membre du Club
    Inscrit en
    Août 2005
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 75
    Points : 50
    Points
    50
    Par défaut
    Effectivement, l'erreur venait bien du fait que j'utilisais currentdb au lieu de l'affecter à une variable database. Merci beaucoup de votre aide.

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

Discussions similaires

  1. [AC-2010] Chemin des tables attachées
    Par curt dans le forum IHM
    Réponses: 1
    Dernier message: 05/09/2011, 18h09
  2. Réponses: 6
    Dernier message: 28/08/2008, 15h59
  3. Programmer la mise à jour des tables attachées
    Par _developpeur_ dans le forum Access
    Réponses: 3
    Dernier message: 02/12/2005, 20h29
  4. Chemin des tables attachées en VBA
    Par stigma dans le forum Access
    Réponses: 3
    Dernier message: 17/06/2005, 09h42
  5. [VBA] Attache automatique des tables
    Par bestall666 dans le forum Access
    Réponses: 4
    Dernier message: 14/05/2005, 12h42

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