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

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

    Informations forums :
    Inscription : août 2005
    Messages : 578
    Points : 149
    Points
    149

    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
    Membre expert
    Avatar de tee_grandbois
    Homme Profil pro
    retraité mais encore activé
    Inscrit en
    novembre 2004
    Messages
    2 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité mais encore activé

    Informations forums :
    Inscription : novembre 2004
    Messages : 2 223
    Points : 3 782
    Points
    3 782

    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

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

    Informations forums :
    Inscription : août 2005
    Messages : 578
    Points : 149
    Points
    149

    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. Réponses: 11
    Dernier message: 30/11/2010, 10h44
  2. Problème de filtre sur une table
    Par bilal_ini dans le forum Bases de données
    Réponses: 7
    Dernier message: 12/06/2008, 09h29
  3. Probléme de Filtre sur une Table
    Par souminet dans le forum Débutant
    Réponses: 1
    Dernier message: 28/04/2008, 12h34
  4. Probléme de concurrence sur une table
    Par D_light dans le forum Administration
    Réponses: 2
    Dernier message: 03/03/2008, 14h14
  5. Problème de pointeur sur une table de hashage
    Par nicdesf dans le forum Langage
    Réponses: 3
    Dernier message: 07/09/2006, 20h23

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