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

Requêtes MySQL Discussion :

Problème d'incompatibilité de type


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2010
    Messages : 9
    Par défaut Problème d'incompatibilité de type
    Bonjour à tous,

    Mon message parait long mais c'est en fait très simple

    Je suis face à un problème plutôt étrange. Je dois exploiter une base MySQL pour en tirer des stats sous Excel, j'utilise donc le langage VBA.
    La base de données est celle d'un outil de gestion de parc (GLPI), pour lequel je dois obtenir le nombre d'interventions par catégorie (dépannage, installation,...), par technicien, par logiciel, etc sur une période donnée. J'ai donc 2 champs de texte sur ma feuille excel qui permettent de saisir les dates de début et de fin de la période.

    Le problème c'est que lorsque je fais référence à mes champs dans ma requête concernant les techniciens, ça plante. Alors que toutes mes autres requêtes fonctionnent avec exactement la même méthode (du moins je ne vois aucune différence):

    Voici la requête concernant les catégories:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT c.name, AVG(g.realtime)/24, Count(g.ID)   
    FROM {oj glpi.glpi_dropdown_tracking_category c 
    LEFT OUTER JOIN glpi.glpi_tracking g ON c.ID = g.category  AND (g.date>={ts '" & Format$(ActiveSheet.date1.Value, "YYYY-MM-DD \0\0\:\0\0\:\0\0") & "'} And g.date<{ts '" & Format$(ActiveSheet.date2.Value, "YYYY-MM-DD \0\0\:\0\0\:\0\0") & "'})}  
    GROUP BY c.name
    Cette requête fonctionne très bien, par contre celle concernant les techniciens plante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT u.realname, AVG(g.realtime)/24, COUNT(g.ID)  
    FROM {oj glpi.glpi_users u  
    INNER JOIN glpi.glpi_users_profiles p ON p.FK_users = u.ID AND p.FK_profiles = 5  
    LEFT OUTER JOIN glpi.glpi_tracking g ON u.ID = g.assign  AND (g.date>={ts '" & Format$(ActiveSheet.date1.Value, "YYYY-MM-DD \0\0\:\0\0\:\0\0") & "'} And g.date<{ts '" & Format$(ActiveSheet.date2.Value, "YYYY-MM-DD \0\0\:\0\0\:\0\0") & "'})} 
    GROUP BY u.name
    Erreur d'exécution '13':
    Incompatibilité de type

    Pourtant la référence à mes champs de texte est exactement la même

    Lorsque l'on saisit en dur une date au lieu de faire référence aux champs, ça fonctionne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LEFT OUTER JOIN glpi.glpi_tracking g ON u.ID = g.assign  AND (g.date>={ts'2010-08-01 00:00:00'} And g.date<{ts '2010-09-01 00:00:00'})}
    Là vraiment je ne vois pas, quelqu'un a une idée ? Il faut vraiment que je règle le problème rapidement donc si qqun a ne serait-ce qu'une piste n'hésitez pas!

    Merci d'avance!

  2. #2
    Membre Expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Par défaut
    Saluton,
    Ce qu'il faudrait voir c'est le texte réel de la requête SQL soumise par VBA.
    Nous rencontrons souvent ce problème en PHP et un echo du texte transmis au serveur MyQSL met la plupart du temps en évidence un problème de syntaxe lors de la génération de la requête.
    Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof
    articles : Comment émuler un tableau croisé [quasi] dynamique
    et : Une énigme mathématique résolue avec MySQL
    recommande l'utilisation de PDO (PHP5 Data Objects)

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2010
    Messages : 9
    Par défaut
    Alors je ne sais pas si ça répondra à la question, mais Excel utilise l'outil Microsoft Query pour la création de requête. La requête dans Microsoft Query est la suivante (et elle fonctionne):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT u.realname, g.realtime/24, COUNT(g.ID)  
    FROM {oj glpi.glpi_users u  
    INNER JOIN glpi.glpi_users_profiles p ON p.FK_users = u.ID AND p.FK_profiles = 5  
    LEFT OUTER JOIN glpi.glpi_tracking g ON u.ID = g.assign  AND (g.date>={ts '2010-08-01 00:00:00'} And g.date<{ts '2010-09-01 00:00:00'})}   
    GROUP BY u.name
    Le truc c'est que je l'ai ensuite modifiée dans le code de ma macro.
    Sinon je ne sais pas comment obtenir le texte réel envoyé par VBA?

    Mais n'est-ce pas étrange que cela fonctionne très bien dans mes autres requêtes avec la même façon de faire?

Discussions similaires

  1. [XL-2010] Problème de "Incompatibilité de type"
    Par noob73 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/09/2014, 18h12
  2. [XL-2010] Problème d'incompatibilité de type ?!
    Par Jey14 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/11/2013, 16h40
  3. [XL-2010] Problème d'incompatibilité de type (erreur d’exécution 13)
    Par Dubbleu dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 03/07/2013, 16h54
  4. Ouverture d'un .doc - Problème d' "Incompatibilité de type"
    Par Amitom dans le forum Windows Forms
    Réponses: 1
    Dernier message: 03/03/2009, 15h11
  5. Problème d'Incompatibilité de type
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 05/01/2009, 15h18

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