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 et SQL. Discussion :

Executer une requete avec parametre passe variables


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Mai 2006
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Executer une requete avec parametre passe variables
    Bonjour,

    Je souhaite ouvrir un requete dont un parametre est passe en variables.
    J'ai utiliser la syntaxte presente dans la faq http://access.developpez.com/faq/?page=SQL#ReqParamVar

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Set qdf= CurrentDb.QueryDefs("TAREQUETE")
          With qdf
             .Parameters("TON_PARAM") = TaVariable
             .Execute
          End With
    Lorsque j'execute ce code, j'ai un message d'erreur qui apparait :
    "Cannot execute a select query"

    Quelle modification doit on faire pour avoir un fonctionnement corret ?

  2. #2
    Membre chevronné
    Avatar de Demco
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 396
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 396
    Points : 2 228
    Points
    2 228
    Par défaut
    Citation Envoyé par vincent.
    Lorsque j'execute ce code, j'ai un message d'erreur qui apparait :
    "Cannot execute a select query"
    Bonjour et bienvenue,

    Tout d'abord merci d'avoir cherché dans la FAQ avant de poster, surtout dès ton premier message, c'est assez rare pour etre aprecié.
    Ensuite, tu ne peux pas executer une requete de selection. Si tu veux recuperer les valeurs retournées par la requete, je te conseille de rechercher dans la FAQ et le forum concernant les RecordSet.
    C'est un fait un objet qui va recueillir les donnees renvoyees par ta requete, puis divers methodes te permettent de parcourir cet l'instance de cet objet pour en extraire les informations.

    En esperant t'aider.
    J'aime les gâteaux.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Points : 62
    Points
    62
    Par défaut
    vous pouvez nous en dire plus svp?

    j'ai le meme soucis.
    je veux recuperer un mail suivant un parametre passé en parametre

    j'ai mis le code suivnat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
                'mise en relation variable/requete'
                Set reqdestinataire = CurrentDb.QueryDefs("mail_commercial")
                'definition d ela clé pour le test...'
                reqdestinataire.Parameters("Clé") = OAORNO
                reqdestinataire.Execute
    ma requete est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    SELECT Attachée_commerciale.mail
    FROM Attachée_commerciale INNER JOIN Réclamation ON Attachée_commerciale.Code_attaché_com = Réclamation.Attachée_commerciale
    WHERE (Réclamation.Numéro_reclamation=[Cle]);
    et ca ma mis le meme message d'erreru

    du coup jai mis ce code


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
        Dim recordset As DAO.recordset
    
    With recordset
                'mise en relation variable/requete'
                Set reqdestinataire = CurrentDb.QueryDefs("mail_commercial")
                'definition d ela clé pour le test...'
                reqdestinataire.Parameters("Clé") = OAORNO
                reqdestinataire.Execute
                       
    End With

    et ca me marque comme erreur: item not found on this collection.

    pourtant OAORNO a bien la bonne valeur en mode debogage et la requete marche bien si je la leance a la main.

    qqun peut m' (nous? ) aider?

    de plus comment recuperer la variable mail dasn un champs texte dans le vba?

  4. #4
    Membre chevronné
    Avatar de Demco
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 396
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 396
    Points : 2 228
    Points
    2 228
    Par défaut
    Qu'est OAORNO exactement ?
    Merci egalement de preciser la ligne ou l'erreur se produit.
    J'aime les gâteaux.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Points : 62
    Points
    62
    Par défaut
    un champs dune table. c'est une suite de chiffre defini comme string car je pouvais pas le mettre en int.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    402
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 402
    Points : 346
    Points
    346
    Par défaut
    sans aller en profondeur,
    si c'est le champ d'une table, tu ne peux pas l'exploiter comme ca.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Points : 62
    Points
    62
    Par défaut
    pourtant lors du mode debogage, il me met bien la valeur du champ...

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    402
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 402
    Points : 346
    Points
    346
    Par défaut
    j'imagine qu'il fait parti de la source de donné du formulaire.

    Perso, je passerai par des variables.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    402
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 402
    Points : 346
    Points
    346
    Par défaut
    Dim recordset As DAO.recordset

    With recordset
    'mise en relation variable/requete'
    Set reqdestinataire = CurrentDb.QueryDefs("mail_commercial")
    'definition d ela clé pour le test...'
    reqdestinataire.Parameters("Clé") = OAORNO
    reqdestinataire.Execute

    End With
    déjà c'est pas malin de nommer un recordset : recordset
    NE jamais utiliser des mots réservés !!!!

    Ensuite
    Le bloc With Monrecordset
    permet d'éviter d'écrire Monrecordset.

    donc de jouer sur les méthodes et propriétés de Monrecordset sans écrire à chaque fois Monrecordset.LaMethode ou Monrecordset!LaPropriete
    et ce à l'intérieur de ton bloc

    With
    ..
    End With

    Donc dans ton cas, il ne sert strictement à rien.

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    402
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 402
    Points : 346
    Points
    346
    Par défaut
    qqun peut m' (nous? ) aider?
    Tu es schizophrene, ca n'arrange rien alors !

    de plus comment recuperer la variable mail dasn un champs texte dans le vba?
    de quelle variable tu parles ?
    du résultat de ta requete?

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Points : 62
    Points
    62
    Par défaut
    Citation Envoyé par LostIN
    Tu es schizophrene, ca n'arrange rien alors !
    je (nous ) ne crois pas... mais je suis pas le createur du sujet donc suis pas le seul dans ce cas



    Citation Envoyé par LostIN
    de quelle variable tu parles ?
    du résultat de ta requete
    oui

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Points : 62
    Points
    62
    Par défaut
    Citation Envoyé par LostIN
    déjà c'est pas malin de nommer un recordset : recordset
    NE jamais utiliser des mots réservés !!!!

    Ensuite
    Le bloc With Monrecordset
    permet d'éviter d'écrire Monrecordset.

    donc de jouer sur les méthodes et propriétés de Monrecordset sans écrire à chaque fois Monrecordset.LaMethode ou Monrecordset!LaPropriete
    et ce à l'intérieur de ton bloc

    With
    ..
    End With

    Donc dans ton cas, il ne sert strictement à rien.
    mais il faut bien le declarer avant comme un record set non?

    donc

    dim test as recordset

    whit test
    ...
    end with

    non?

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    402
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 402
    Points : 346
    Points
    346
    Par défaut
    dans le code que tu nous montres, tu ne t'ensers pas.
    Voila pourquoi je dis qu'ilk ne sert à rien.

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Points : 62
    Points
    62
    Par défaut
    la requete va sortir une valeur.
    cette valeur appelé mail (voir requete plus hayt) je veux l'ajouter a la variable destinataire...

    mon code complet est la :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
     
    Private Sub Commande2_Click()
    On Error GoTo Err_Commande2_Click
     
        Dim stDocName As String
     
        'Procedure denvoie de mail'
        Dim LObjet As String
        Dim LeMessage As String
        Dim Réponse As Integer
        Dim Destinataire As String
        Dim reqdestinataire As DAO.QueryDef
        Dim recordset As DAO.recordset
     
       'ces deux personnes auront toujour les mails'
        Destinataire = "X@Y.com ;y@c.com"
     
     
    With recordset
                'mise en relation variable/requete'
                Set reqdestinataire = CurrentDb.QueryDefs("mail_commercial")
                'definition de la clé pour le test...'
                reqdestinataire.Parameters("Clé") = OAORNO
                reqdestinataire.Execute
    End With
     
        Réponse = MsgBox("Confirmer l'envoi d'un message pour la réclamation " & OAORNO & " à " & Destinataire, vbYesNo + vbQuestion, "CONFIRMATION SVP")
     
        If Réponse = vbYes Then
            LeMessage = "Voici en piece jointe la réclamation numéro " & OAORNO & " concernant le client " & OAALCU & " (numéro de client: " & OACUNO & "). Bonne reception"
            LObjet = "Réclamation numéro " & OAORNO & ""
            EnvoieMail Destinataire, LObjet, LeMessage
        End If
     
     
     
    Exit_Commande2_Click:
        Exit Sub
     
    Err_Commande2_Click:
        MsgBox Err.Description
        Resume Exit_Commande2_Click
     
    End Sub

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 147
    Points : 62
    Points
    62
    Par défaut
    d'apres ce que je vient de comprendre, l'erreur que j'ai est qu'il ne peut executer de requete select sur la base.
    d'ou le message : cannot execute a select query ..
    comment passer par un recordset dans ce cas la?
    sinon est ce que quelqu'un a une idée pour contourner cela?
    car j'ai modifier le code est l'erreur maintenant est celle la..

Discussions similaires

  1. Débutant, executer une requete avec jquery?
    Par scalp58 dans le forum jQuery
    Réponses: 5
    Dernier message: 22/12/2009, 14h42
  2. [A-03] Executer une requete avec paramètres
    Par mattvin dans le forum IHM
    Réponses: 2
    Dernier message: 09/02/2009, 11h44
  3. comment executer une requete avec une boucle?
    Par medsine dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 30/05/2008, 14h45
  4. Executer une requete avec opérateur logique
    Par lg022 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 13/05/2008, 16h16
  5. executer une requete avec le contenu d'une variable
    Par giloo(94) dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 03/02/2007, 01h58

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