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

VBA Access Discussion :

bug création de requête en vba


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Août 2007
    Messages : 57
    Par défaut bug création de requête en vba
    bonjour.
    j'ai le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        Do While Not rset2.EOF
            CurrentDb.CreateQueryDef "IntervApp", "SELECT * FROM InterventionsFiltrées WHERE Marquage=" & CStr(rset2!Marquage) & " ORDER BY DateIntervention;"
    ' ... nombreuses opérations sans rapport avec le problème ... 
            DoCmd.DeleteObject acQuery, "IntervApp"
            rset2.MoveNext
        Loop
    où rset2 parcours une table contenant bien le champ "Marquage"

    de plus, je suis absolument certain que tous les "Marquage" apparaissant dans rset2 existent dans "InterventionsFiltrées"

    Cependant je me suis retrouver une fois avec une requête IntervApp vide !
    En étudint le problème, voilà ce que j'ai remarqué:
    • au moment du bug rset2!Marquage a pour valeur "25-02-2259"
    • CStr(rset2!Marquage) vaut également "25-02-2259"
    • quand je vais voir la requête créée, voilà le SQL:
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      SELECT *
      FROM InterventionsFiltrées
      WHERE (((InterventionsFiltrées.Marquage)="25-2-2259"))
      ORDER BY InterventionsFiltrées.DateIntervention;

    Il semble donc que malgré le fait que VBA exporte une chaîne de caractère, elle soit considérée autrement (comme une date ?) dans la requête, qui du coup est modifiée et fausse, ce qui a pour résultat qu'elle est vide.

    Je me suis dit que cela venait peut-être du fait que quand je crée la requêt cela donne le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT *
    FROM InterventionsFiltrées
    WHERE Marquage=25-02-2259
    ORDER BY DateIntervention;
    sans les guillemets ! mais je ne sais pas mettre des guillemets dans une chaine de caractère...

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Par défaut
    salut,

    essaie plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CurrentDb.CreateQueryDef "IntervApp", "SELECT * FROM InterventionsFiltrées WHERE Marquage=""" & CStr(rset2!Marquage) & """ ORDER BY DateIntervention;"
    Pour comparer 2 chaines, il faut des "

    6ril25

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Août 2007
    Messages : 57
    Par défaut
    merci c'est effectivement cela. j'ignorais qu'il fallait en mettre 3 (j'avais essayé 2 ^^)

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    503
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 503
    Par défaut
    et bien tu peux en mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    "... WHERE monchampString = """ & tavar & """ ORDER BY ..."
    ou 
    "... WHERE monchampString = '" & tavar & "' ORDER BY ..."
    Tout dépend du contenu possible de tavar...

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

Discussions similaires

  1. [AC-2003] Problème création de requête avec VBA
    Par Sylas dans le forum VBA Access
    Réponses: 2
    Dernier message: 17/11/2012, 14h35
  2. problème de création de requète sous VBA
    Par Golork dans le forum Access
    Réponses: 4
    Dernier message: 02/06/2006, 14h35
  3. création de requète à partir de 2 tables
    Par cheucheu dans le forum Access
    Réponses: 4
    Dernier message: 14/12/2005, 16h49
  4. Réponses: 2
    Dernier message: 17/10/2005, 14h58
  5. Syntaxe PARAMETERS pour requête sous VBA
    Par GAGNON dans le forum VBA Access
    Réponses: 3
    Dernier message: 28/11/2003, 11h39

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