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 :

Problème de liaison sur une table [AC-2007]


Sujet :

VBA Access

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 660
    Points : 165
    Points
    165
    Par défaut Problème de liaison sur une table
    Bonjour,

    Ce code doit supprimer la « tbl Adhérents N1 » puis la recréer à partir de la « tbl Adhérents »
    avec sa liaison.

    La suppression et le création de la « tbl Adhérents N1 » se fait correctement sur la Dorsale.

    La liaison ne se fait pas avec la base Frontale, par contre sur la Dorsale je retrouve une table liée
    tbl Adhérents N11.

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    '---Ouverture de la base
        Set db = CurrentDb
     
    '--- On détermine le Chemin + le nom de la base
         Path = CurrentProject.Path
         Path = Left$(Path, InStr(Path, "Base 1 Partie Applicative (Frontale)") - 1) & "Base 2 Partie Donnée (Dorsale)" & "\" & "Aaa_princip.mdb"
         strdb = Path
     
    '--- On vérifie si un fichier du même nom que la base existe en ldb
    '--- Si elle est ouverte la méthode Quit ne s’exécute pas
         strDBldb = Replace(strdb, ".mdb", ".ldb")
         If Dir(strDBldb) = "" Then blnAccQuit = True Else blnAccQuit = False
     
    '--- On active la base dorsale (base cible)
         Set appACC = CreateObject("Access.Application")
         appACC.OpenCurrentDatabase strdb
     
    '1er Sauvegarde tbl Adhérents N-1 '
             blnCibleVide = False
             If DCount("*", "tbl Adhérents") = 0 Then blnCibleVide = True
     
                '1-Supprime la relation de la table "tbl Adhérents N-1" dans base cible
                    Call DeleteRelation("tbl Adhérents N-1")
     
                2-Supprime la table "tbl Adhérents N-1" dans base cible
                   appACC.DoCmd.DeleteObject acTable, "tbl Adhérents N-1"
     
                '3-Duplique la table "tbl Adhérents" dans "tbl Adhérents N-1", dans base cible (Avec les données)
                   appACC.DoCmd.TransferDatabase acImport, "Microsoft Access", strdb, acTable, _
                                                  "tbl Adhérents", "tbl Adhérents N-1", False
     
                '4-Crée la liaison de la table Adhérents N-1 dans la base en cours
                   appACC.DoCmd.TransferDatabase acLink, "Microsoft Access", strdb, acTable, _
                                       "tbl Adhérents N-1", "tbl Adhérents N-1"
     
    '--- Fermeture de l’instance d’access
          If blnAccQuit Then appACC.Quit acQuitSaveAll
          Set appACC = Nothing
    Avez-vous une idée de la raison de ce résultat ?

    Merci pour votre aide.

    Salutations

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    Bonjour,
    à la lecture de ce tutoriel, je vois qu'il faut supprimer la table dans la collection TableDefs.
    Du coup, je ne suis pas sûr que DeleteObject soit suffisant pour mettre à jour la collection, ou alors essayer Application.RefreshDatabaseWindow après DeleteObject
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 660
    Points : 165
    Points
    165
    Par défaut
    Bonjour,

    Mon erreur se situe sur l'écriture de cette ligne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    '4-Crée la liaison de la table Adhérents N-1 dans la base en cours
                   appACC.DoCmd.TransferDatabase acLink, "Microsoft Access", strdb, acTable, _
                                       "tbl Adhérents N-1", "tbl Adhérents N-1"
    A la place de celle-ci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    '4-Crée la liaison de la table Adhérents N-1 dans la base en cours
                   DoCmd.TransferDatabase acLink, "Microsoft Access", strdb, acTable, _
                                       "tbl Adhérents N-1", "tbl Adhérents N-1"
    Salutations

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

Discussions similaires

  1. Problème de filtre sur une table
    Par bilal_ini dans le forum Bases de données
    Réponses: 9
    Dernier message: 18/07/2019, 07h35
  2. Réponses: 11
    Dernier message: 30/11/2010, 09h44
  3. Probléme de Filtre sur une Table
    Par souminet dans le forum Débuter
    Réponses: 1
    Dernier message: 28/04/2008, 11h34
  4. Probléme de concurrence sur une table
    Par D_light dans le forum Administration
    Réponses: 2
    Dernier message: 03/03/2008, 13h14
  5. Problème de pointeur sur une table de hashage
    Par nicdesf dans le forum Langage
    Réponses: 3
    Dernier message: 07/09/2006, 19h23

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