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 :

Liaison de table en VBA [AC-2007]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 6
    Par défaut Liaison de table en VBA
    Bonjour a tous.

    voici mon problème, je me suis inspiré du code trouvé sur ce site :

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    Dim strMotPasse As String
                Dim strCheminBd As String
                Dim strConnect As String
                Dim strNomsTables() As String
                Dim strTemp As String
                Dim i As Integer
                Dim oDb As DAO.Database
                Dim oDbSource As DAO.Database
                Dim oTbl As DAO.TableDef
                Dim oTblSource As DAO.TableDef
                'Définit mot passe, nom table, chemin base de données
                strMotPasse = "admin"
     
                strCheminBd = FichierSelectionne
                'Définit la chaine de connexion permettant la liaison des tables
                strConnect = "MS Access;pwd=" & strMotPasse & ";DATABASE=C:\test.mdb"
                'Instancie l'objet Database de la base courante
                Set oDb = CurrentDb
                'Instancie l'objet Database de la base protégée
                Set oDbSource = DBEngine.OpenDatabase(strCheminBd, True, True, strConnect)
     
                'Parcours l'ensemble des tables de la base de données protégée
                'et stocke leur nom
                For Each oTblSource In oDbSource.TableDefs
                    'ignore les tables system
                    If (oTblSource.Attributes And dbSystemObject) = 0 Then
                        strTemp = strTemp & oTblSource.Name & "|"
                    End If
                Next
                'Ferme la base de données sources (impératif pour la liaison)
                oDbSource.Close: Set oDbSource = Nothing
                'parcours le tableau de noms de tables
                strNomsTables = Split(Left(strTemp, Len(strTemp) - 1), "|")
                For i = 0 To UBound(strNomsTables)
                  'Crée une nouvelle table dans la base de données courante
                  Set oTbl = oDb.CreateTableDef(strNomsTables(i))
                  'Lie les deux tables
                  oTbl.Connect = strConnect
                  oTbl.SourceTableName = strNomsTables(i)
                  'Ajoute la table à la base de données
                  oDb.TableDefs.Append oTbl
                Next i
     
                'Rafraichit la liste des tables
                oDb.TableDefs.Refresh
                'Message de confirmation
                MsgBox ("La base de contacts a bien été liée")
            End If
    Mon problème est que je voudrai au niveau du strConnect remplacer C:\test.mdb par la variable strCheminBd qui récupère le chemin du fichier récupéré au auparavant par une boite de dialogue. j'ai essayé de placer la variable mais il me dis que le nom du fichier est incorrect après au niveau de l'ouverture.

    voila j'espère que vous voyez mon soucis si vous avez des solutions je suis preneur merci d'avance !

  2. #2
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 134
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Je ne vois pas où est la difficulté...
    Il te suffit de l'écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strConnect = "MS Access;pwd=" & strMotPasse & ";DATABASE=" & FichierSelectionne
    Si tu as une erreur, c'est que ton FichierSelectionne est incorrect.
    Quel est son contenu ?

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0

  3. #3
    Nouveau membre du Club
    Inscrit en
    Janvier 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 6
    Par défaut
    Citation Envoyé par argyronet Voir le message
    Bonjour,

    Je ne vois pas où est la difficulté...
    Il te suffit de l'écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strConnect = "MS Access;pwd=" & strMotPasse & ";DATABASE=" & FichierSelectionne
    Si tu as une erreur, c'est que ton FichierSelectionne est incorrect.
    Quel est son contenu ?

    Argy
    oui j'ai déjà essayé ca et ca ne marche pas, si je met le chemin en dur sa marche. j'ai également afficher ce que je trouvé dans FichierSelectionne et j'ai le chemin que je veux. voila pourquoi je me suis permis de poster dans ce forum

  4. #4
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 134
    Billets dans le blog
    5
    Par défaut
    Et un post pour rien, un !!!
    Je répète donc :
    Quel est le contenu de FichierSelectionne ?

    Argy
    Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

    Ils comptent sur vous...
    Web Site@Mail
    Tutoriels : Déployez vos applications Access 2010 à 2019 */* Réalisez un Assistant de présaisie...
    MDB Viewer : Visionneuse Access v4.0

  5. #5
    Nouveau membre du Club
    Inscrit en
    Janvier 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 6
    Par défaut
    Citation Envoyé par argyronet Voir le message
    Et un post pour rien, un !!!
    Je répète donc :
    Quel est le contenu de FichierSelectionne ?

    Argy
    Oups autant pour moi j'avais mal lu, apparemment le contenu de FichierSelectionne était doublé donc le chemin n'était pas bon. ce qui m'étonne c'est qu'avec un msgbox (FichierSelectionne) je ne voyais qu'une seule fois le chemin.

    Merci pour ton aide.

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

Discussions similaires

  1. Liaisons tables en VBA
    Par jmde dans le forum VBA Access
    Réponses: 5
    Dernier message: 15/03/2011, 00h32
  2. [VBA]Liaison des tables
    Par TLImpala dans le forum VBA Access
    Réponses: 7
    Dernier message: 17/04/2007, 10h48
  3. Réponses: 2
    Dernier message: 06/10/2006, 10h16
  4. Créer une table en VBA ?
    Par nicburger dans le forum Access
    Réponses: 11
    Dernier message: 16/02/2005, 15h15
  5. liaison deux tables unilatéral
    Par atunam dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 15/04/2004, 22h01

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