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 :

Utilisation d'une fonction trouvée - Lier table [AC-2013]


Sujet :

VBA Access

  1. #1
    Membre régulier
    Femme Profil pro
    Technicienne
    Inscrit en
    Mai 2013
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicienne
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 96
    Points : 89
    Points
    89
    Par défaut Utilisation d'une fonction trouvée - Lier table
    Bonjour j'ai trouvé une fonction pour liée une table
    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
    49
    50
    51
    52
    53
    54
    55
    56
    ' ---
    ' LIAISON D'UNE TABLE DORSALE
    ' ---
    '
    Function LierTable( _
      ByVal strTable As String, _
      ByVal strBase As String) _
      As String
     
      Dim db As DAO.Database
      Dim tdf As DAO.TableDef
      Dim intI As Integer
      Dim strNomLocal As String
     
      ' Vérifier que la base de données pointée existe bien
      If Dir(strBase) = "" Then
        MsgBox "Base introuvable !", vbExclamation
        LierTable = ""
        Exit Function
      End If
     
      ' Trouver un nom pour la table liée
      ' (dans la base actuelle)
      Set db = CurrentDb
      strNomLocal = strTable
      intI = 1
      While TableExiste(db, strNomLocal)
        strNomLocal = strTable & intI
        intI = intI + 1
      Wend
     
      ' Créer une table liée
      On Error GoTo LierTableErr
      Set tdf = New DAO.TableDef
      With tdf
        .Name = strNomLocal
        .SourceTableName = strTable
        .Connect = ";DATABASE=" & strBase
      End With
     
      ' Ajouter la liaison à la base actuelle
      db.TableDefs.Append tdf
      db.TableDefs.Refresh
      Application.RefreshDatabaseWindow
     
      ' Libérer les objets utilisés
      Set tdf = Nothing
      Set db = Nothing
      LierTable = strNomLocal
      Exit Function
     
    LierTableErr:
      MsgBox "Erreur : " & err.description
      Exit Function
    Exit Function
    Lorsque je teste la fonction dans la fenêtre d'exécution avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    ? LierTable ("projet98", "C:\Mes documents\Transport\Transporteur.accdb")
    ça fonctionne, la table est liée. Cependant, je ne sais pas comment faire pour que la table se lie en cliquant sur un bouton. J'ai fait différents tests, comme d'essayer de transformer la fonction en SUB ou d'essayer d'écrire une ligne de code en SQL mais, mes connaissances en VBA et SQL ne sont pas très bonnes, je n'y arrive pas. J'apprécierai grandement votre aide pour avancer dans mon projet.

    Merci à l'avance de votre aide.

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Bonjour.

    C'est assez direct si tu ne veux pas récupérer le résultat, code à mettre dans la procédure événementielle associée à l'événement sur click du bouton.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    call LierTable("projet98", "C:\Mes documents\Transport\Transporteur.accdb")
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LierTable "projet98", "C:\Mes documents\Transport\Transporteur.accdb"
    Et si tu veux récupérer le résultat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    dim nomLocal as string
    nomLocal=LierTable("projet98", "C:\Mes documents\Transport\Transporteur.accdb")
    'ici du code pour exploiter nomLocal
    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre régulier
    Femme Profil pro
    Technicienne
    Inscrit en
    Mai 2013
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicienne
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 96
    Points : 89
    Points
    89
    Par défaut
    Merci pour votre aide, j'avais déjà testé les codes que vous me donnez mais ça n'avait pas marché, peut-être une erreur d'écrire. Alors, j'ai refait le test ce matin et ça fonctionne très. Encore merci

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 28/03/2015, 18h49
  2. [MySQL] Ne conserver qu'une occurrence d'une chaine trouvée dans une table
    Par ykseb dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 14/10/2009, 09h31
  3. Inserer une image.jpg dans table
    Par loumanga dans le forum PostgreSQL
    Réponses: 7
    Dernier message: 30/01/2006, 14h14
  4. Renommer une colonne avec ALTER TABLE...
    Par David.V dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 01/07/2004, 10h33
  5. Effacer une ligne dans la table nat
    Par vbcasimir dans le forum Sécurité
    Réponses: 2
    Dernier message: 11/01/2004, 00h15

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