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 :

[VBA DAO Access 2003] utiliser "AND" dans la définition d'un recordset


Sujet :

VBA Access

  1. #1
    Candidat au Club
    Inscrit en
    Avril 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut [VBA DAO Access 2003] utiliser "AND" dans la définition d'un recordset
    Bonjour,

    Je suis nouvelle sur ce forum et débutante en Access, en programmation et en VBA... donc je vais essayer de m'exprimer le plus clairement possible mais je risque d'avoir des problèmes de vocabulaire parfois (en plus des problèmes techniques évidement).

    Voilà, je voudrais définir une variable "recordset" en utilisant une requête SQL dans le texte. J'en ai une qui marche (ça a été laborieux pour trouver la bonne syntaxe mais elle marche...) et une qui ne marche pas mais j'aimerais bien qu'elle marche...

    Celle qui marche :
    Code vba : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Rst_tr = Db.OpenRecordset("SELECT * FROM troncons WHERE DEPCYC = " & Chr(34) & v_DEPCYC & Chr(34))
    Ici, "troncons" est une table et "v_DEPCYC" est une variable de type String (c'est pour ça qu'il fallait rajouter les Chr(34)...)

    Celle qui ne marche pas :
    Code vba : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Rst_tr_ax = Db.OpenRecordset("SELECT * FROM troncons WHERE DEPCYC = " & Chr(34) & v_DEPCYC & Chr(34) "AND NAXE = " & naxe)
    Ici, j'ai les mêmes qu'au dessus plus un autre critère : "naxe" qui est une variable de type Long

    Sur la deuxième, VBA m'envoie valser au niveau du "AND NAXE" et me dit qu'il attend un séparateur de liste ou un ). En fait, il n'accepte pas les doubles côtes au milieu...
    J'avais déjà eu ce problème avec le premier recordset que j'avais présenté mais là, je sèche...

    Est-ce qu'une âme charitable saurait me dépanner pour cette malheureuse ligne de code ?

    Ou alors, peut-on utiliser le premier recordset puis y ajouter un critère, du genre : sort-moi de ce recordset les enregistrements où le champ NAXE = variable naxe ?
    Je ne sais pas quelle fonction ou syntaxe ou code ou quoi utiliser pour faire ça.

    Merci d'avance pour toute aide que vous pourriez m'apporter.
    Cordialement,
    CLK

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 368
    Points
    34 368
    Par défaut
    Bonjour ClaireLK,
    bienvenue sur DVP

    Pour le vocabulaire et les idées, on comprend très bien ne t'inquiète pas

    Pour ta requête récalcitrante, il y manque en fait un espace avant le AND, ainsi qu'un esperluette de concaténation. Donc modifie ton code comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Rst_tr_ax = Db.OpenRecordset("SELECT * FROM troncons WHERE DEPCYC = " & Chr(34) & v_DEPCYC & Chr(34) & " AND NAXE = " & naxe)

  3. #3
    Candidat au Club
    Inscrit en
    Avril 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Merci beaucoup ! je savais bien que c'était un truc tout bête...
    VBA ne me jette plus de fenêtre d'erreur à la figure !

    Bon, je ne peux pas dire encore si ça marche, je n'ai pas encore testé le début du code...
    Quand j'aurai vérifié que la ligne marche, je mettrai "résolu" au sujet...

    Merci encore pour ce dépannage rapide (je reviendrai... ) !
    CLK

    Edit : Je confirme, ça marche.

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

Discussions similaires

  1. Menu dynamique en VBA pour Access 2003
    Par petitbison dans le forum VBA Access
    Réponses: 4
    Dernier message: 25/04/2008, 14h22
  2. Problème de VBA sur access 2003
    Par sweetty dans le forum VBA Access
    Réponses: 2
    Dernier message: 11/11/2007, 22h16
  3. Réponses: 2
    Dernier message: 14/09/2007, 08h44

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