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

Access Discussion :

[VBA] sélectionner un champ dans une requete choisis dans un formulaire


Sujet :

Access

  1. #1
    Candidat au Club
    Inscrit en
    Novembre 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut [VBA] sélectionner un champ dans une requete choisis dans un formulaire
    Bonjour,

    Je souhaite faire la requête suivante, mais lorsque je l'exécute, j'ai un message d'erreur :
    "dans l'instruction SELECT, un mot réservé ou un argument est mal orthographié ou absent, ou la ponctuation est incorrecte."
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Dim db As Database
    Dim rst As Recordset
    Dim requete, indic1 As String
     
    ...
     
    requete = "SELECT Etat," & indic1 & " FROM " & nTable & " WHERE (Date = (SELECT MAX(Date) FROM " & nTable & "))"
     
    Set db = CurrentDb
    Set rst = db.OpenRecordset(requete)

    la requête fonctionne lorsque je sélectionne seulement "Etat", j'ai vérifié que la valeur de "indic1" soit bonne et je l'ai testée avec de vraies valeurs, elle fonctionne correctement. Je pense que j'ai un problème dans la syntaxe, mais lequel?

    Merci d'avance.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 81
    Points : 60
    Points
    60
    Par défaut
    je n'ai pas d'idée précise quand à ton erreur. Toutefois, essaies déjà de déclarer "Dim requete, indic1 As String" séparement.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim requete as String
    Dim indic1 As String
    Je garanti rien, mais je crois que ça a un influence sur le type réel de chaque variable.

    De plus, sachant que le sql se compile/exécute à l'envers (en fait, par la dernière instruction, puis il remonte, si je me souviens bien), as-tu quand même vérifié les valeurs de nTable?

    Sinon, je laisse d'autres plus expérimentés te donner un avis peut être plus avisé.

  3. #3
    Candidat au Club
    Inscrit en
    Novembre 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Merci pour ta réponse.

    J'ai essayé de déclarer les variables séparément mais ça ne change rien.
    J'ai aussi affiché la valeur de chaque variable que j'utilise dans ma requête, et elle est correcte à chaque fois.

  4. #4
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Salut,

    Que sont indic1 et nTable ? Où prends tu ces valeurs ?

  5. #5
    Candidat au Club
    Inscrit en
    Novembre 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Je les récupère grâce à des requêtes.
    nTables est le nom d'une table, et indic1 est le nom d'un champ de cette table.
    J'utilise nTables dans d'autres requêtes, donc ce n'est pas lui qui pose problème.
    Pour indic1, je l'ai affiché pour voir quelle valeur il prenait, et c'est bien la bonne.

  6. #6
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Citation Envoyé par raphaella
    Je les récupère grâce à des requêtes.
    nTables est le nom d'une table, et indic1 est le nom d'un champ de cette table.
    J'utilise nTables dans d'autres requêtes, donc ce n'est pas lui qui pose problème.
    Pour indic1, je l'ai affiché pour voir quelle valeur il prenait, et c'est bien la bonne.
    J'ai fais un test sur une requête avec la même syntaxe que la tienne : il n'y a pas de soucis.
    D'où mes questions.

    Le nom de la table est comment ?? En seul mot ?? Idem pour la table.

  7. #7
    Candidat au Club
    Inscrit en
    Novembre 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Merci pour votre aide.
    Le problème doit être ailleurs dans mon code, je vais chercher (et trouver).

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 41
    Points : 51
    Points
    51
    Par défaut
    heuuuu c pas dit en fait
    j'ai deja eu le meme probleme avec des select imbriqués dans d'autres select
    divise ta requete en 2 parties ca passera ptet mieux
    tu recup dabort ta valeur date_max dans une variable puis tu le rebalance
    ca vient ptet de ca, ou pas mais y a des chances

  9. #9
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Citation Envoyé par bizu31
    heuuuu c pas dit en fait
    j'ai deja eu le meme probleme avec des select imbriqués dans d'autres select
    divise ta requete en 2 parties ca passera ptet mieux
    tu recup dabort ta valeur date_max dans une variable puis tu le rebalance
    ca vient ptet de ca, ou pas mais y a des chances
    Citation Envoyé par Kikof
    J'ai fais un test sur une requête avec la même syntaxe que la tienne : il n'y a pas de soucis.
    D'où mes questions.

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 41
    Points : 51
    Points
    51
    Par défaut
    sinon les objet DAO t'a essayé ?

  11. #11
    Candidat au Club
    Inscrit en
    Novembre 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    C'est bon, j'ai trouvé le problème, il ne venait pas de la requête mais d'une autre partie de mon code.
    Merci à tous.

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

Discussions similaires

  1. extraire le jour dans une requete sql dans une colone de type date
    Par levasseur62 dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 17/04/2011, 22h42
  2. Réponses: 1
    Dernier message: 27/05/2009, 17h06
  3. Requete : Champ d'une table contenu dans une autre table
    Par Bridou dans le forum Requêtes et SQL.
    Réponses: 0
    Dernier message: 19/02/2008, 11h34
  4. [VBA-Access] un champs d'une requete en un string
    Par vdbadr dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 01/07/2006, 20h27
  5. Réponses: 3
    Dernier message: 28/02/2006, 18h52

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