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

Macros et VBA Excel Discussion :

Problème connexion Excel csv via ADODB


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 12
    Par défaut Problème connexion Excel csv via ADODB
    Bonjour,

    J'ai un petit souci dans mon code de connexion, je remercie d'avance toute personne suceptible de m'avancer.

    Objectif: Je cherche à réccupérer des données enregistré dans un fichier csv avec mon fichier Excel

    Avancement: J'ai monté le code de connexion et réussi à récupérer la plupart des données



    Ce que je voudrais savoir c'est: es ce qu'il y a un moyen de demander au pilote ADODB de ne pas prendre en compte un caractère (une sorte de méthode d'échapement comme le "\").

    N'ayant pas la main pour modifier le nom du champ cible je n'ai pour l'instant aucune autre idée.

    PS: Je suis nouveau et je m'escuse donc d'avance si ma façon de présenter les choses n'est pas conventionnelle

  2. #2
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    que dirais tu de "*"

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 12
    Par défaut
    Tout d'abord merci de ta réponse rapide, c'est simpas .

    Malheureusement pour moi après test le caractère "*" ne semble pas évité le problèmes


  4. #4
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    [Num* ...]

  5. #5
    Membre Expert
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Par défaut
    Bonjour,

    Et si tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select * from ASCOM_commandes.csv .....
    Puis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    f.Cells(i, 1) = Record(0)
    f.Cells(i, 2) = Record(1)
    .....

  6. #6
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 12
    Par défaut
    J'ai réessayer le [Num* ...] comme précisé par EngueEngue et en effet cela ne semble pas fonctionner.

    J'ai également essayer comme proposer par rdurupt de précéder du nom du fichier entre crochet, et également de le faire avec un alias au nom de fichier:

    [ASCOM_commandes.csv].[Num. de commande]
    commandes.[Num. de commande]

    Aucun de ces deux tests n'ont fonctionnés

    La proposition de pc75 me parait très intéressante pour réccupérer les données néanmoins je ne peu pas la tester directement

    En effet ma situation se compose de plusieurs fischiers sources en csv qui contienne certaines données semblable mais pas sous les mêmes nom, je les réccupères et je fais une union par la suite.
    Si je réccupère tout les éléments d'un coup je vais d'abord devoir les traiters pour reprendre uniquement les champs qui m'intéresse, cela va rendre le code plus lourd néanmoins c'est une solution qui me parait jouable.

    Merci pour vos proposition je vais pour l'intant partir sur l'idée de pc75 mais je laisse encore la discution active si jamais il y a d'autres idée

  7. #7
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 344
    Par défaut
    (t'aurai pas du mettre une image c'est pas pratique pour le copier/coller )

    je vais peut-être dire une chose idiote, mais si tu met ton nom de colonne dans une variable texte, que tu utilises par la suite dans tarequête ça marche pas ? genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim libelle_colonne as string
    libelle_colonne = "Num. de commande"
    ...
    sel4 = "SELECT [libellé mode de depot] as mode, [" & libelle_colonne & "] as Numero, ......
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  8. #8
    Invité
    Invité(e)
    Par défaut
    tu n'as pas regardé avec Access?

  9. #9
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 12
    Par défaut
    Non malheureusement j'avais déja essayé le problème est le même.

    Et pour les images tu as raison, que veux tu les erreurs de débutant.

    Cado:

    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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    Sub test()
        Dim Connex As ADODB.Connection
        Dim Record As ADODB.Recordset
        Set Connex = New ADODB.Connection
        Set Record = New ADODB.Recordset
     
        Dim requete As String
        Dim Repertnom As String
     
        Repertnom = "E:\TacheAnnexe\outilASCOM\Prototype\base"
     
        Connex.ConnectionString = "ODBC;DBQ=" & Repertnom & ";DefaultDir=E:\; " & "Driver={Microsoft Text Driver (*.txt; *.csv)}; " & "DriverId=27;Extensions=txt,csv,tab,asc;FIL=text;MaxBufferS"
        Connex.Open
     
        sel1 = " SELECT [Lib mode de dépot SOLL] as mode, [Identifiant SOLL] as Numero, [Nom Acteur Traitant SOLL] &' '& [Prenom Acteur Traitant SOLL] as Nom, [Nom Resp Acteur Traitant SOLL] as RDV,[Date de création SOLL] as dateCrea, [Nom Resp Acteur Traitant SOLL] as marche, 'soll traitées' as requete"
        fro1 = " FROM SOLL_traites.csv as traite"
     
        sel2 = " SELECT [Lib mode de dépot SOLL] as mode, [Identifiant SOLL] as Numero, [Nom et prénom Act Créa SOLL] as Nom, [Nom Resp Act Créa SOLL] as RDV,[Date de création SOLL] as dateCrea, [Nom Resp Act Créa SOLL] as marche, 'soll créée' as requete"
        fro2 = " FROM SOLL_créées.csv as cree"
     
        sel3 = " SELECT [Lib mode de dépot RECLA] as mode, [Identifiant RECLA] as Numero, [Nom et prénom Act Créa RECLA] as Nom, [Nom Resp Act Créa RECLA] as RDV,[Date de création RECLA] as dateCrea, [Nom Resp Act Créa RECLA] as marche, 'ASCOM reclamation' as requete"
        fro3 = " FROM ASCOM_reclamations.csv as traite"
     
        'sel4 = " SELECT [Libellé mode de depot] as mode, [Num] as Numero, [Nom Act Creat] &' '& [Prenom Act Creat] as Nom, [Nom Resp Act Creat] as RDV,[Date de création] as dateCrea, [Nom Resp Act Creat] as marche, 'ASCOM commande' as requete"
        'fro4 = " FROM ASCOM_commandes.csv as traite"
     
        'sel4 = " SELECT [Libellé mode de depot] as mode, [Num. de commande] as Numero, [Nom Act Creat] &' '& [Prenom Act Creat] as Nom, [Nom Resp Act Creat] as RDV,[Date de création] as dateCrea, [Nom Resp Act Creat] as marche, 'ASCOM commande' as requete"
        'fro4 = " FROM ASCOM_commandes.csv as commandes"
     
     
        requete = sel1 & fro1 & " UNION " & sel2 & fro2 & " UNION " & sel3 & fro3
        Record.Open requete, Connex
     
        Set f = Sheets("Données")
        Record.MoveFirst
        i = 2
     
        Do While Not Record.EOF
            f.Cells(i, 1) = Record("mode")
            f.Cells(i, 2) = Record("Numero")
            f.Cells(i, 3) = Record("Nom")
            f.Cells(i, 4) = Record("RDV")
            f.Cells(i, 5) = Record("marche")
            f.Cells(i, 6) = Record("dateCrea")
            f.Cells(i, 7) = Record("requete")
            i = i + 1
            Record.MoveNext
        Loop
     
        Record.Close
     
        requete = "SELECT * FROM ASCOM_commandes.csv as commandes"
        Record.Open requete, Connex
     
        Do While Not Record.EOF
            f.Cells(i, 1) = Record(2).Value
            f.Cells(i, 2) = Record(0).Value
            f.Cells(i, 3) = Record(7).Value & " " & Record(8).Value
            f.Cells(i, 4) = Record(14).Value
            f.Cells(i, 5) = Record(14).Value
            f.Cells(i, 6) = Record(4).Value
            f.Cells(i, 7) = "ASCOM commande"
            i = i + 1
            Record.MoveNext
        Loop
     
        Connex.Close
     
    End Sub
    Et j'avou qu'en générale pour coder je préfere largement utiliser Access que Excel, mais en locurrence cela fait partie des exigences de bases.

  10. #10
    Invité
    Invité(e)
    Par défaut
    les aléas du directe!

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

Discussions similaires

  1. [2000] Problème connexion Excel 2010 --> SSAS 2000
    Par Bernardos dans le forum SSAS
    Réponses: 2
    Dernier message: 08/08/2012, 09h46
  2. [XL-2007] Problème connexion Excel-Access
    Par Sonilight dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 20/02/2012, 19h59
  3. Réponses: 8
    Dernier message: 20/07/2010, 12h25
  4. Probléme de connexion avec ATT via une freebox
    Par ybertrand dans le forum Hardware
    Réponses: 3
    Dernier message: 17/10/2005, 16h06
  5. Connexion base SQL via Excel
    Par dp_favresa dans le forum Langage SQL
    Réponses: 2
    Dernier message: 10/01/2005, 14h32

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