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 :

Problème table lié dans Access


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 7
    Par défaut Problème table lié dans Access
    Bonjour,

    J’essaie de crée un code permettant de restaurer le lien d’une table lié au lancement de la base de données mais le problème c’est que j’ai trois champs dans mon fichier et quand le lien est restauré par le code je me retrouve avec les trois champs concaténés dans un seul.

    Ma source est un fichier TXT avec trois champs séparés par des tabulations.

    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
    Function test()
     
    Dim Db As DAO.Database
    Dim strConnect 
     
    strConnect = "C:\Documents and Settings\callintz\Bureau\bases\txt\"
    Set Db = CurrentDb
     
     
    Db.TableDefs("Base_nb_proc").Connect = "Text;HDR=YES;FMT=Delimited;DATABASE=" & strConnect
     
    Db.TableDefs("Base_nb_proc").RefreshLink
     
    End Function

    Quelqu’un à une idée de ce que je pourrais changer dans le code afin que je puisse avoir les données de ma table dans trios colonnes séparées.

    Merci par avance.

    Bonne journée à tous

  2. #2
    Membre chevronné Avatar de Tonioyo
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2008
    Messages : 343
    Par défaut
    Bonjour,

    Pour obtenir ce résultat il faudrait utiliser le format csv. Ce format sépare les colonnes par le caractère ";".

    Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DonneeColonne1;DonneeColonne2;DonneeColonne3
    et pour le code je ne pense pas que celui-ci fonctionne car la liaison de la table ne "pointe" vers aucun fichier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Public sub test()
        With CurrentDb.TableDefs("Base_nb_proc")
            .Connect = "Text;HDR=YES;FMT=Delimited;DATABASE=C:\Documents and Settings\callintz\Bureau\bases\txt\MonFichier.txt" 
            .RefreshLink
        End with
    End Sub

  3. #3
    Expert éminent

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Par défaut
    Bonjour

    Le plus simple c'est dans un premier temps de lier à la main la table au champ texte via l'assistant d'importation. Regardez ensuite la propriété Connect de la table et vous vous apercevrez que vous en avez oublié un morceau notamment celui définissant le nom du format de spécification d'importation

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 7
    Par défaut
    Merci Tonioyo,

    J’ai testé ton code ça à fonctionné avec les fichiers CSV, juste pour info il faut enlever le nom du fichier à la fin du .connect sinon ca fonctionne

    Mon souci c’est que j’essaie d’automatiser une base suite à une extraction BO et depuis Access je ne peux pas exporter mon rapport BO en CSV.

    J’ai besoin que ça fonctionne avec un fichier TXT.

    Tofalu, je procède comme tu dis, au départ j’attache ma table à partir de l’assistant Access en délimitant les colonnes par tabulation, mais dés que j’exécute mon code le lien change bien mais je me retrouve avec les trois champs en un seul.
    Si t’a une idée elle est le bien venu.

    Merci à tous.

  5. #5
    Membre chevronné Avatar de Tonioyo
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2008
    Messages : 343
    Par défaut
    Pour faire un export vers un fichier csv il serrait (à mon avis) beaucoup mieux de passer par la fonction docmd.TransfertText.
    Cette fonction admet des paramètres pour importer / Exporter un fichier texte sous format csv.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 7
    Par défaut
    Merci pour l'info mais l'export que je fait n'est pas un export depuis access d'une table ou requête, mais c'est l'export du resultat d'une requête BusinessObjects.
    Grace à un code VBA on peux lancer BO et executer des requêtes BO, ensuite enregistrer le resultat en txt, rtf, pdf... mais pas csv et cela ce fait de la sorte en utilisant ".ExportAsText".

    Et mon fichier de sortie txt est lié avec ma base.
    J'esseye de créer un code pour restaurer les liens des tables liées cela pour rendre l'appli autonome si jamais on viens à déplacer le repertoire, qu'il puisse toujours retrouver le chemin des tables liées sans que l'on ai à intervenir manuellement en passant par l'assistant et redonner à le nouveau chemin.

Discussions similaires

  1. Problème de requête dans Access 2003
    Par charleshbo dans le forum Access
    Réponses: 2
    Dernier message: 14/02/2006, 19h47
  2. Réponses: 2
    Dernier message: 09/02/2006, 14h03
  3. Pb import table dbf dans Access
    Par besly dans le forum Access
    Réponses: 10
    Dernier message: 28/12/2005, 20h51
  4. problème requête between dans access
    Par Vodkha dans le forum Bases de données
    Réponses: 2
    Dernier message: 15/09/2005, 07h50

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