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 :

recuperer la valeur saisie dans une requete


Sujet :

VBA Access

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 262
    Points : 121
    Points
    121
    Par défaut recuperer la valeur saisie dans une requete
    Bonjour ,


    je souhaite editer un etat qui s'appuie sur une requete.
    Dans cette requete, il manque certains champs (date) qui sont demandés automatiquement par la machine à l'execution a travers une inputbox.
    Comment récupérer les infos saisies a ce moment la dans une variable ?
    ou alors , comment appeler l'etat pour que la requete s'execute avec une variable saisie ?

    merci de votre aide .

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : Luxembourg

    Informations forums :
    Inscription : Juillet 2006
    Messages : 235
    Points : 176
    Points
    176
    Par défaut
    Bonjour,

    Tu peux exécuter ta requete en VBA et donc utiliser une variable pour l'input.

    Par exemple, sur le clique d'un bouton tu executes ta requete.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim Variable as String
     
    Variable = InputBox("Question?")

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 262
    Points : 121
    Points
    121
    Par défaut
    Citation Envoyé par le_niak Voir le message
    Bonjour,

    Tu peux exécuter ta requete en VBA et donc utiliser une variable pour l'input.

    Par exemple, sur le clique d'un bouton tu executes ta requete.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dim Variable as String
     
    Variable = InputBox("Question?")
    ca c'est OK. c'est la suite qui me pose probleme :
    appeller l'etat avec une requete qui reprend la variable .
    a la base, mon etat est lié a la requete en question.
    est ce une condition dans le code ou alors faut il que je modifie mon état pour que les champs reprennent la valeur de la variable ?

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 262
    Points : 121
    Points
    121
    Par défaut
    précision du cas :

    code pour appeller l'etat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub btn_edition_Click()
     
    Dim dateenvoi As Date
     
     
    'update date d'envoi des docs a editer
     
    dateenvoi = InputBox("Entrez la date d'envoi des documents", "SAISIE", Date)
    DoCmd.RunSQL ("UPDATE contrat,annexe set dateenvoicontrat = " & dateenvoi & " ," & _
                    " dateenvoiannexe = " & dateenvoi & " where dateenvoicontrat is  null and dateenvoiannexe is  null")
     
    DoCmd.OpenReport "contrat DN", , ???
    en fait, mon but est d'ouvrir l'etat en question avec uniquement les résultats de la requete pour laquelle dateenvoiannexe et dateenvoicontrat = dateenvoi (saisie)


    la requete de l'état :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT client.CDCLIENT, contrat.cdcontrat, annexe.cdannexe, annexe.typeannexe, services_annexe.cdservice, service.typeservice, RIB.IDRIB, acteur.CDACTEUR, acteur.NOM, acteur.ADRESSE, acteur.CP, client.RS, client.NOM, client.ADR1, client.ADR2, client.ADR3, client.CP, client.VILLE, contrat.dateintegrationcontrat, annexe.dateintegrationannexe, RIB.BQNOM, RIB.ETAB, RIB.GUICHET, RIB.NUMCPT, RIB.CLE, service.natureservice, service.descrservice, service.pdtservice, service.PUservice, services_annexe.qteservice, services_annexe.date_debut, services_annexe.date_fin, acteur.VILLE, contrat.typecontrat, service.modaliteremuservice, [client.nom] & [contrat.cdcontrat] & [annexe.cdannexe] & [caractereindex] AS [index]
    FROM [index], service INNER JOIN (((((acteur INNER JOIN client ON acteur.CDACTEUR = client.[CODE ACTEUR]) INNER JOIN contrat ON client.CDCLIENT = contrat.cdclient) INNER JOIN annexe ON contrat.cdcontrat = annexe.cdcontrat) INNER JOIN RIB ON client.CDCLIENT = RIB.CDCLIENT) INNER JOIN services_annexe ON annexe.cdannexe = services_annexe.cdannexe) ON service.typeservice = services_annexe.typeservice
    WHERE (((services_annexe.qteservice)<>0) AND ((contrat.typecontrat)="C-DN") AND ((contrat.dateenvoicontrat) Is Null) AND ((annexe.dateenvoiannexe) Is Null))
    ORDER BY acteur.CDACTEUR, [client.nom] & [contrat.cdcontrat] & [annexe.cdannexe] & [caractereindex], contrat.cdcontrat, annexe.cdannexe, service.typeservice;
    en rouge , la partie de la requete qui auparavant ne prenait que les champs vides mais que je viens de remplir par la commande update.

    en gros , c'est soit j'update les champs avant la requete , soit j'execute la requete et je récupere les valeur saisies pour les champs vide !!!

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Tu peux enlever la partie rouge de ta requête. Et en ouvrant ton état après la saisie de la date voulue tu ouvre ton état sur les enregistrements souhaité avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    DoCmd.OpenReport "contrat DN", , ,"[dateenvoicontrat] =  " & format(TaVariable;"mm.dd.yyyy")

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 262
    Points : 121
    Points
    121
    Par défaut
    Citation Envoyé par DMboup Voir le message
    Tu peux enlever la partie rouge de ta requête. Et en ouvrant ton état après la saisie de la date voulue tu ouvre ton état sur les enregistrements souhaité avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    DoCmd.OpenReport "contrat DN", , ,"[dateenvoicontrat] =  " & format(TaVariable;"mm.dd.yyyy")
    merci pour ta réponse, c'est exactement ce que je cherchais , la syntaxe du openreport !

    malheureusement , je me suis rendu compte entre temps que le besoin fonctionnel est d'éditer l'etat tel quel avec la requete existante.
    a l'edition , il va me demander mes date d'envoi pour renseigner les champs de l'état. et en fait , ce sont ces données que je veux récupérer pour ensuite faire la commande update pour mettre a jour les enregistrements.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    oCmd.OpenReport ("contrat DN")
     
    ' a l'ouverture, l'interface access me demande les champs dateenvoiannexe et dateenvoicontrat qui sont a null pour editer l'etat
    ' je souhaite récupérer les valeurs entrées ici pour les utiliser dans la ligne suivante
     
    DoCmd.RunSQL ("UPDATE contrat,annexe set dateenvoicontrat = " & dateenvoi & " ," & _
                    " dateenvoiannexe = " & dateenvoi & " where dateenvoicontrat is  null and dateenvoiannexe is  null")

  7. #7
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Il ya aucun problème. Tu ouvre ton état après ta mise à jour.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 262
    Points : 121
    Points
    121
    Par défaut
    Citation Envoyé par DMboup Voir le message
    Il ya aucun problème. Tu ouvre ton état après ta mise à jour.
    oui mais ca m'oblige a saisir deux fois la valeur .
    une fois pour renseigner les champs dans l'etat.
    une fois pour faire la requete update.

    la question de base c'est comment récupérer la valeur saisie a l'execution de l'etat ?

  9. #9
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    C'est parce que certainement tu as laissé le critère de la date dans la requête source de ton état.

    Alors que pour moi, il faut enlever ce critère dans la source de l'état et le mettre dans la commande d'ouverture.

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 262
    Points : 121
    Points
    121
    Par défaut
    Citation Envoyé par DMboup Voir le message
    C'est parce que certainement tu as laissé le critère de la date dans la requête source de ton état.

    Alors que pour moi, il faut enlever ce critère dans la source de l'état et le mettre dans la commande d'ouverture.
    en fait, pour etre plus clair, par mon état j'edite des contrats. dans ma requete, je sélectionne uniquement les contrats qui ont une dateenvoi = null pour les editer.

    Dans mon état, j'ai un champs dateenvoi qui m'est demandé a l'ouverture de l'etat. (normal parcequ'il est vide!)
    je renseigne le champ et ensuite je veux faire ma requete update avec le champ entré.

  11. #11
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Localisation : Sénégal

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 229
    Points : 1 579
    Points
    1 579
    Par défaut
    Citation Envoyé par gui-llaume Voir le message
    en fait, pour etre plus clair,
    J'ai bien compris et je veux être clair moi aussi.

    Pour utiliser le même état dans plusieurs opérations avec des paramêtres différents, il est indispensable que la source de l'état ne comporte pas de critère explicite au du moins pour les champs variables.

    Ce que je te demande de faire c'est d'enlever le critère sur la date de la requête source de ton état.
    Ta source ne doit comportée
    Ni dateenvoi = null
    ni dateenvoi = quelque chose
    Maintenant si tu veux ton état avec les dateenvoi = null tu le dis en ouvrant ton état. (Je suppose que c'est un bouton qui le fait)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DoCmd.OpenReport "Contrat",,"dateenvoi = null"
    Si tu veux l'ouvrir avec des dates précises alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DoCmd.OpenReport "Contrat",,"dateenvoi between Date1 And Date2"
    Voila.

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 262
    Points : 121
    Points
    121
    Par défaut
    Citation Envoyé par DMboup Voir le message
    J'ai bien compris et je veux être clair moi aussi.

    Pour utiliser le même état dans plusieurs opérations avec des paramêtres différents, il est indispensable que la source de l'état ne comporte pas de critère explicite au du moins pour les champs variables.
    merci DMBOUP , je regarde cela !

Discussions similaires

  1. Réponses: 3
    Dernier message: 25/09/2008, 10h26
  2. récupérer la valeur saisie dans une combo box
    Par whitebird001 dans le forum MFC
    Réponses: 2
    Dernier message: 18/09/2008, 00h42
  3. comment recuperer les valeurs modifiees dans une collection
    Par anaisensitive dans le forum Struts 1
    Réponses: 11
    Dernier message: 09/09/2008, 10h56
  4. Comment recuperer un valeur envoyé dans une URL
    Par pierrot10 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 29/12/2005, 11h28
  5. Affcecter une valeur NULL dans une requete paramétrée
    Par thiouwz2 dans le forum Bases de données
    Réponses: 7
    Dernier message: 05/11/2004, 15h02

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