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 :

ActiveSheet.QueryTables feuille Excel [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Par défaut ActiveSheet.QueryTables feuille Excel
    Bonjour,
    J'ai une requete SQL qui me renvoie "Erreur générale ODBC 1004"
    lorsque j'ajoute le
    where [ANC]=..."
    (cf code ci dessous) sinon cela marche très bien.

    La ligne 4 de la feuille Excel correspond bien à ma ligne de titre où se trouve la colonne "ANC"
    J'ai essayé avec et sans les crochets pour "ANC".
    Merci de vos idées.
    (ValeurCourante est une string)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    sqlstring = "select * from [Global CIS$" & "A4:AM1800" & "] where [ANC]=" & "'" & ValeurCourante & "';"
    connstring = _
        "ODBC;FILEDSN=D:\RH\masource.dsn;Database=repertoire"
    With ActiveSheet.QueryTables.Add(Connection:=connstring, _
            Destination:=Range("AZ1"), Sql:=sqlstring)
        .Refresh
    End With

  2. #2
    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 : 72
    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 vérifié si la colonne ANC était bien renseignée dans tout le tableau des données sources et contient bien des chaînes de car?
    Peux-tu faire un essai en mettant du texte dans toutes ces cellules, sans vide?

    Cordialement,

    PGZ

  3. #3
    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 faire le test avec des valeurs dans toute la colonne.
    (il manquait une bien une valeur, j'ai complété)
    J'ai bien des variables de type Texte (type Excel du format sur toute la colonne)
    et je suis toujours en "Erreur Générale ODBC numéro 1004"

    Voici une copie de la chaine SQL issue de "l'espion"
    "select * from [Global CIS$A4:AM1800] where [ANC]='2,00';"
    Peut être des idées ?

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

    Pas mieux.
    Je viens d'essayer avec une colonne qui contient les noms et ca marche très bien. Par contre dés que c'est avec des chiffres : "erreur 1004."
    J'ai essayé de modifier tous les parametres de format pour du texte dans Excel 2007.
    Et j'ai aussi copié ma colonne en valeur, car elle était le resultat d'une formule.
    Je glisse mon ficher DSN peut être que j'ai écrit une bétise :
    [ODBC]
    DRIVER=Driver do Microsoft Excel(*.xls)
    UID=admin
    UserCommitSync=Yes
    Threads=3
    SafeTransactions=0
    ReadOnly=0
    PageTimeout=5
    MaxScanRows=8
    MaxBufferSize=2048
    FIL=excel 12.0
    DriverId=790
    DefaultDir=D:\RH
    DBQ=D:\RH\REM2010 - 24-11-2010.xls
    Merci de votre retour

  5. #5
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    bonjour,

    quitte à dire une bétise

    ce ne serait pas parce que la clause 'WHERE' est de type TEXTE?

  6. #6
    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 : 72
    Localisation : France

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

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

    Tout cela confirme bien qu'il s'agit d'une erreur de type. Ce que je ne comprends pas, c'est que si tu as des valeurs numériques dans la colonne ANC, pourquoi faire un test avec une string?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sqlstring = "select * from [Global CIS$" & "A4:AM1800" & "] where [ANC] = "  & ValeurCourante & ";"
    Avec ValeurCourante de type numérique, devrait bien fonctionner.

    Cordialement,

    PGZ

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

Discussions similaires

  1. VBS, Excel, ActiveSheet.QueryTables.Add
    Par weedlili dans le forum VBScript
    Réponses: 1
    Dernier message: 10/05/2011, 15h00
  2. imprimer feuille excel depuis access
    Par Jean Bonnisme dans le forum Access
    Réponses: 3
    Dernier message: 18/11/2004, 08h46
  3. [VBA-E]Type d'une feuille excel
    Par LitteulKevin dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 18/05/2004, 14h43
  4. [VB6]PB d'importation d'un feuille Excel dans une MSFlexGrid
    Par mystere l dans le forum VB 6 et antérieur
    Réponses: 18
    Dernier message: 20/04/2004, 15h59
  5. remplir feuille excel
    Par thibaud60 dans le forum Access
    Réponses: 2
    Dernier message: 24/11/2003, 10h21

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