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 :

Changer le lien d'une table liée


Sujet :

VBA Access

  1. #1
    Membre habitué
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    420
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2004
    Messages : 420
    Points : 174
    Points
    174
    Par défaut Changer le lien d'une table liée
    Bonjour,

    Je travaille avec ACCESS 2003 et EXCEL 2003.
    Mon application utilise une table liée à un document xls.
    Des traitements sont exécutés.

    Je voudrais par programmation changer le lien de cette table pour permettre de répéter plusieurs fois les traitements avec des fichiers excel différents.

    Pourriez vous m'aider svp ? Merci d'avance.

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 324
    Points : 470
    Points
    470
    Par défaut
    Bon ben voici un élément de réponse avec les références Office et Dao activés évidemment.

    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
     
    Public Sub changerLienTable()
     
    Dim fs As FileDialog, laTable As DAO.TableDef
     
    'Pour la boite de dialogue afin de sélectionner le fichier Excel
    Set fs = Application.FileDialog(msoFileDialogFilePicker)
     
    fs.Filters.Clear
    'Filtre sur des fichiers Excel
    fs.Filters.Add "Microsoft Excel", "*.xls"
     
    'Si un fichier a été choisi alors on change le lien
    If (fs.Show = -1) Then
        'On supprime la table (le lien) de la base
        For Each laTable In CurrentDb.TableDefs
            If (laTable.Name = "tableExcel") Then DoCmd.DeleteObject acTable, laTable.Name
        Next
        'Puis on importe la table avec le fichier sélectionné
        DoCmd.TransferSpreadsheet acLink, acSpreadsheetTypeExcel9, "tableExcel", fs.SelectedItems(1), True
    End If
     
     
    Set fs = Nothing
     
     
    End Sub
    Evidemment il faut adapter le code selon tes besoins.

  3. #3
    Membre habitué
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    420
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2004
    Messages : 420
    Points : 174
    Points
    174
    Par défaut
    merci pour ce code très clair !, ca fonctionne parfaitement, j'ignorais qu'on pouvait faire cela.

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

Discussions similaires

  1. Changer le nom d'une table sur SQL server avec une requete
    Par Oluha dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 01/02/2014, 23h35
  2. [AC-2002] Changer le lien d'une table liée vers un fichier .txt
    Par FooL dans le forum VBA Access
    Réponses: 2
    Dernier message: 24/06/2010, 04h42
  3. [AC-2003] Structure d'une table liée avec lien inactif?
    Par marot_r dans le forum VBA Access
    Réponses: 0
    Dernier message: 09/02/2010, 14h59
  4. fichier de sécurité dans le lien d'une table liée
    Par alassanediakite dans le forum Sécurité
    Réponses: 2
    Dernier message: 05/10/2008, 17h22
  5. [select dans case] reconnaitre un champ d une table liée
    Par the_edge dans le forum MS SQL Server
    Réponses: 14
    Dernier message: 22/10/2004, 16h47

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