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 :

Requete SQL dans une cellule Excel mutliligne [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Par défaut Requete SQL dans une cellule Excel mutliligne
    Bonjour,
    Je fais une requête SQL sur une feuille Excel en ADO avec du VBA
    ca marche très bien sauf que je sais pas faire quand le champs
    sur lequel je fais la requête est mutliligne c'est à dire qu'il comporte
    un retour chariot, j'ai essayé VbcRLf et Chr(13) mais ca ne marche pas
    est ce que vous avez des idées ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "select Nom,[Mgr recruteur],[Trig." & char(13) & "Recruteur]   from [ENTREES (1)$]"
    Merci d'avance de vos réponses.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    Je n'ai pas testé au niveau d'une requête, mais le retour chariot au sein d'une cellule Excel (obtenu avec ALT+ENTREE) est CHR(10).
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Par défaut
    J'ai trouvé avec Chr(10) mais il a du mal car il comprend pas
    une requete Sql avec un retour chariot.
    Comme je peux pas modifier la cellule initial de la feuille Excel qui
    est en Lecture seule je sais pas quoi faire.
    Voila l'erreur qu'il me fait :
    "mise en crochet non valide du nom
    [Trig.
    Recruteur]'
    Peut on peut être anticiper le traitement de la cellule ?
    Si vous avez des idées...

  4. #4
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonsoir.

    As-tu essayé un puis de lire dans le jeu d'enregistrement le nom de champ obtenu?

    Cordialement,

    PGZ

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Je n'avais pas fait attention au fait que c'est dans le nom du champ que tu as un souci...

    Il semble qu'Excel remplace le chr(10) par un underscore.

    Dès lors, tu pourrais tester
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select Nom,[Mgr recruteur],[Trig._Recruteur]
    Ok?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  6. #6
    Membre éclairé
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Par défaut
    Je viens d'essayer, pas mieux.
    Est ce qu'il y a une alternative avant de basculer mes fichiers
    dans une base Access.
    A la limite dans un fichier .txt, je crois qu'il est possible de faire
    une chaine de connection sur du texte, mais bon ca complique.
    Peut être une autre idée ?...
    Bonne nuit

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Il faudrait préciser ce que tu souhaites réaliser, et le contexte exact dans lequel tu travailles.

    J'ai essayé avec une table Excel dans laquelle un intitulé de champ contient un retour à la ligne (ALT+ENTREE). Il est effectivement considéré comme un underscore.

    Es-tu sûr qu'il n'y a pas un espace après Trig. avant le retour chariot?


    Tu parles de basculer tes fichiers dans une base Access. Je ne peux que te conseiller d'étudier d'abord la structure des données Access puis de basculer les données Excel dans un second temps, après avoir notamment normalisé tes noms de champs... Basculer simplement les données dans une base Access est rarement une bonne méthode...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  8. #8
    Membre éclairé
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Par défaut
    Bonjour,

    Je viens de tester en copiant mon champs sur Notepadd++, c'est bien un seul CRLF qui sépare mon Trig. de mon Recruteur. (excel 2007)

    Sinon j'essaye d'envisager toutes les possibilités car le fichier en question n'est pas modifiable (il est en Lecture seule sur le réseeau et personne ne sait pourquoi, ce pourrait être un autre sujet, pour le moment les responsables bureautiques de la boite s'y sont cassés les dents)

    Mais j'espère que la pugnacité des membres du forum vont me permettre d'arriver au bout.

    Merci bien en tout cas des conseils.

  9. #9
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour.

    As-tu regardé ce que je te suggérais?
    Sinon, même si ton classeur est en lecture seule, tu peux bien l'"enregistrer sous" et obtenir un classeur dans lequel tu pourras modifier les titres.

    Ou encore faire un "SELECT *" et accéder au champs par leur index.

    Cordialement,

    PGZ

  10. #10
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Examine le nom du champ avec
    La collection des champs est d'index 0, le champ qui pose problème est donc le troisième (index 2). Tu pourras ainsi voir quel est le caractère utilisé.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  11. #11
    Membre éclairé
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Par défaut
    Merci,
    Super, je n'avais pas bien compris ton message PGZ, effectivement
    si on récupère le nom du champs, c'est top.
    Et voici comment le voit Excel :
    Trig#_Recruteur
    Ca marche super bien, je vais regarder les autres champs de mon rs.fields
    pour ne pas être sec la prochaine fois.
    Bon week end.
    Vous êtes une bonne équipe.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/08/2007, 10h49
  2. Réponses: 1
    Dernier message: 26/09/2006, 11h55
  3. Importer valeur requete SQL dans une Requete
    Par qbihlmaier dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 21/03/2006, 14h24
  4. Recuperer un enregistrement de requete SQL dans une variable
    Par kleenex dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 14/09/2005, 15h59
  5. Réponses: 4
    Dernier message: 15/04/2005, 15h25

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