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 :

table lié changer le lien tbl.connect


Sujet :

VBA Access

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 200
    Points : 157
    Points
    157
    Par défaut table lié changer le lien tbl.connect
    Bonjour, j'essaye de suivre des tutos de ce forums pour changer le lien d'une table liée mais je galere un peu

    L'idée, c'est que ma table t_externe est pour le moment lié a un fichier CSV nommé classeur1.csv
    Je voudrai que mon code VBA modifie le lien de la table t_externe vers classeur2.csv.
    je suis embété dans l'utilisation de tbl.connect
    .voici mon code.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Set tbl = db.TableDefs("t_externe")
    Debug.Print tbl.Connect
    'me retourne: Text;DSN=CLASSEUR1 SpÈcification d'attache;FMT=Delimited;HDR=NO;IMEX=2;CharacterSet=850;DATABASE=C:\Documents and Settings\DAVID_JEZEQUEL\Bureau
    tbl.Connect = "Text;DSN=CLASSEUR2 SpÈcification d'attache;FMT=Delimited;HDR=NO;IMEX=2;CharacterSet=850;DATABASE=C:\Documents and Settings\DAVID_JEZEQUEL\Bureau"
    tbl.RefreshLink
    Auriez vous une idée svp car mon code ne fonctionne pas?

  2. #2
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 239
    Points : 19 364
    Points
    19 364
    Billets dans le blog
    61
    Par défaut
    Bonjour,

    Peut-être essayer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Set tbl = db.TableDefs("t_externe")
    tbl.SourceTableName ="Classeur2.csv"
     
    Debug.Print tbl.Connect
    'me retourne: Text;DSN=CLASSEUR1 SpÈcification d'attache;FMT=Delimited;HDR=NO;IMEX=2;CharacterSet=850;DATABASE=C:\Documents and Settings\DAVID_JEZEQUEL\Bureau
     
    tbl.Connect = "Text;DSN=CLASSEUR2 SpÈcification d'attache;FMT=Delimited;HDR=NO;IMEX=2;CharacterSet=850;DATABASE=C:\Documents and Settings\DAVID_JEZEQUEL\Bureau"
     
    tbl.RefreshLink
    Cdlt,
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 200
    Points : 157
    Points
    157
    Par défaut
    Bonjour,
    Avec ton code j'ai une erreur d'execution 3268
    Impossible de definir cette propriété une fois que l'objet fait partie d'une colection
    Citation Envoyé par User Voir le message
    Bonjour,

    Peut-être essayer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Set tbl = db.TableDefs("t_externe")
    tbl.SourceTableName ="Classeur2.csv"
     
    Debug.Print tbl.Connect
    'me retourne: Text;DSN=CLASSEUR1 SpÈcification d'attache;FMT=Delimited;HDR=NO;IMEX=2;CharacterSet=850;DATABASE=C:\Documents and Settings\DAVID_JEZEQUEL\Bureau
     
    tbl.Connect = "Text;DSN=CLASSEUR2 SpÈcification d'attache;FMT=Delimited;HDR=NO;IMEX=2;CharacterSet=850;DATABASE=C:\Documents and Settings\DAVID_JEZEQUEL\Bureau"
     
    tbl.RefreshLink
    Cdlt,

  4. #4
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 239
    Points : 19 364
    Points
    19 364
    Billets dans le blog
    61
    Par défaut
    essaie. avec createtabledef...
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 200
    Points : 157
    Points
    157
    Par défaut
    aurais tu un exemple STP ?
    Merci
    Citation Envoyé par User Voir le message
    essaie. avec createtabledef...

  6. #6
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 239
    Points : 19 364
    Points
    19 364
    Billets dans le blog
    61
    Par défaut
    regarde sur le net, avec une recherche comme :
    "refreshlink createtable vba" car avec le smartphone c'est plus compliqué ...
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 200
    Points : 157
    Points
    157
    Par défaut
    alors en faite j'ai reussi a créer une table liée mais y'a plusieurs soucis:
    Déja quand j'ai lier manuellement ma table Classeur1.csv, j'ai inclus la premiere ligne comme nom de colonne.
    Ensuite j'ai changé certain type de champ (j'ai passé des nombre en texte)
    du coup je perds tout ca quand je lie avec VBA .
    Il faudrai donc que j'arrive a garder ma configuration de table lié mais lui changer la source classeur1.csv vers classeur2.csv

  8. #8
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 239
    Points : 19 364
    Points
    19 364
    Billets dans le blog
    61
    Par défaut
    c'est pas si simple : dans le paramètre dsn de la chaîne de connexion il faut que tu définisse les spécifications du classeur 2, ensuite pour changer le type d'un champ de ta table en vba, fais une recherche du genre :
    "how to change field type using dao".

    à+
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 200
    Points : 157
    Points
    157
    Par défaut
    je les trouves comment les specifications du classeur 2 ?
    Citation Envoyé par User Voir le message
    c'est pas si simple : dans le paramètre dsn de la chaîne de connexion il faut que tu définisse les spécifications du classeur 2, ensuite pour changer le type d'un champ de ta table en vba, fais une recherche du genre :
    "how to change field type using dao".

    à+

  10. #10
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 239
    Points : 19 364
    Points
    19 364
    Billets dans le blog
    61
    Par défaut
    Il faut les définir et les enregistrer au moment où tu importes manuellement ton fichier CSV...
    enregistrer détails import/export

    Une fois enregistrées tu peux les réutiliser dans ton code VBA...

    a+
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 200
    Points : 157
    Points
    157
    Par défaut
    par contre je suis sur access 2003 du coup je ne crois pas pouvoir enregistrer ces infos la sur 2003

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 200
    Points : 157
    Points
    157
    Par défaut
    Merci beaucoup pour ton aide j'y suis parvenu. Finalement c’était pas si compliqué

    Pour ceux que ca pourrait aider:
    J'ai d'abord lié manuellement mon fichier et j'ai enregistrer lors de l'importation les spécifications d'attaches sous le nom "specification".
    Ceci pour être reutiliser lors du changement de lien avec DSN

    voici mon code.
    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
    private sub btn_click()
    dim db as dao.database
    set db = currentDb
    dim tbl as dao.tabledef
    
    'suppression de la table t_externe issu du fichier classeur1.csv
    docmd.deleteobject actable, "t_externe"
    
    'création de la nouvelle table t_externe issu du fichier classeur2.csv
    set tbl = db.createTableDef("t_externe")
    tbl.sourceTableName = "classeur2.csv"
    tbl.connect = "Text;DSN=specification;FMT=Delimited;HDR=NO;IMEX=2;CharacterSet=850;DATABASE=C:\Documents and Settings\user\Bureau"
    db.tabledefs.Append tbl
    db.tabledefs.refresh
    end sub

  13. #13
    Rédacteur/Modérateur

    Avatar de User
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    8 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 8 239
    Points : 19 364
    Points
    19 364
    Billets dans le blog
    61
    Par défaut
    Content pour toi
    Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération

    Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
    Gestion sur un planning des présences et des absences des employés
    Gestion des rendez-vous sur un calendrier mensuel


    Importer un fichier JSON dans une base de données Access :
    Import Fichier JSON

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

Discussions similaires

  1. [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, 05h42
  2. Changer le lien d'une table liée
    Par devdev dans le forum VBA Access
    Réponses: 2
    Dernier message: 22/04/2010, 12h17
  3. [AC-2007] Changer le lien d'un objet OLE dans une table
    Par r.louis dans le forum IHM
    Réponses: 2
    Dernier message: 02/02/2010, 11h26
  4. changer le lien de la barre d'état sous firefox
    Par lipao17 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 15/12/2005, 15h39
  5. [DEBUTANT] Changer le "lien" classique
    Par iceman2001 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/09/2005, 11h41

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