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 actif
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Points : 247
    Points
    247
    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
    Responsable
    Office & Excel


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

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    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).

  3. #3
    Membre actif
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Points : 247
    Points
    247
    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 éminent 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
    Points : 6 591
    Points
    6 591
    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
    Responsable
    Office & Excel


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

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    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?

  6. #6
    Membre actif
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Points : 247
    Points
    247
    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
    Responsable
    Office & Excel


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

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    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...

  8. #8
    Membre actif
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Points : 247
    Points
    247
    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 éminent 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
    Points : 6 591
    Points
    6 591
    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
    Responsable
    Office & Excel


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

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    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é.

  11. #11
    Membre actif
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Points : 247
    Points
    247
    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