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

IHM Discussion :

Affectation variable après clic sur un bouton.


Sujet :

IHM

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 103
    Points : 60
    Points
    60
    Par défaut Affectation variable après clic sur un bouton.
    Bonsoir,

    Je souhaite filtrer l'affichage d'un formulaire en fonction de 2 clics sur bouton.
    L'utilisateur, s'il souhaite chercher une offre, dans un premier temps doit sélectionner le lieu et dans un second temps le statut de l'offre.

    1er clic : 4 choix / 4 boutons : Tous, Rennes, Lorient ou Brest.

    S'il clique sur Rennes, je souhaite que cette valeur soit enregistrée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Commande236_Click()
     
    Dim site As String
     
    site = "rennes"
     
    End Sub
    De cette manière, il ne sauvegarde pas ma valeur "rennes" :/

    Sur le second clic, c'est le même principe, 4 choix / 4 boutons :

    En cours, gagnée, perdue ou sans suite.

    Au final, en fonction du site et du statut, le formulaire devra afficher le résultat souhaité.

    (ex: offres gagnées sur Rennes)

    Merci de votre aide,
    et bonne nuit à ceux qui vont se coucher !

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour
    A confirmer , mais je pense que tu as un problème de déclaration de ta variable

    Telle qu'elle est là, elles est déclarée dans ta procédure "Click" et se termine donc aussitôt.
    IL serait peut être judicieux de la déclarer à l'extérieur de tes procédures.

    Voit le sujet "portée des variables".

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 103
    Points : 60
    Points
    60
    Par défaut
    Bonsoir Gayot,

    J'ai cherché le sujet "porté des variables" mais je n'ai pas trouvé.

    Ma variable se déclare bien.
    J'ai fait un petit test avec une zone de texte qui prend la valeur de ma variable.
    Il prend bien la valeur en fonction de mon clique.

    Dans ce cas le problème viendrais plus dans ma requête qui ouvre mon formulaire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim sql As String
    sql = "statut = 'en cours'"
    DoCmd.OpenForm "suividesoffres", , , sql
    Forms!suividesoffres![siteprincipal] = site
    site étant ma variable.

    Cdmlt

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour
    Oui mais tu seras obligé de déclarer ta variable "site" sur chaque bouton.
    et si tu veux garder le résultat...
    D'autre part tu ne peux ramener dans une requête que le contenu d'une variable issue d'une fonction.

    Sinon en utilisant les fonctions filtres tu peux t'inspirer de ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim sql As String
    sql = "statut = 'en cours'"
    DoCmd.OpenForm "suividesoffres"
    
    With Form_Suividesoffres 
    .Filter = ""
    .Filter = "TonchampVille Like " & site
    .filter = Filter "And TonchampStatut Like " & sql
    .FilterOn = True
    End with
    A adapter bien sûr

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 103
    Points : 60
    Points
    60
    Par défaut
    Bonjour,

    J'avais laissé un peu de côté ce problème afin d'avancer sur d'autres points de ce projet.

    J'ai suivi les conseils de GAYOT et me retrouver avec l'erreur d'exécution 2248: impossible d'attribuer une valeur à cet objet.

    Dans un 1er temps j'ai fait une variable public:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Option Compare Database
     
    Public site As String
    Dans un second temps, j'attribue une valeur à cette variable:

    Enfin, sur le clique de mon dernier bouton j'utilise le filtre que m'a proposé GAYOT:

    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
    Private Sub Commande240_Click()
     
    Dim sql As String
    Dim site As String
     
    sql = "statut = 'gagnée'"
    DoCmd.OpenForm "suividesoffres"
     
    With Form_suividesoffres
    .Filter = ""
    .Filter = "siteprincipal Like" & site
    .Filter = Filter And statut Like " & sql"
    .FilterOn = True
     
    End With
    End Sub
    L'erreur arrive au niveau de l'attribution de la variable site.

    Merci de votre aide,

    Maxime

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour
    La variable site est donc déclarée 2 fois?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 103
    Points : 60
    Points
    60
    Par défaut
    Bonjour,

    Effectivement je l'avais déclaré 2 fois.
    Voici mon code modifié (en enlevant ma déclaration inutile)

    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
    Private Sub Commande240_Click()
     
    Dim sql As String
     
    sql = "statut = 'gagnée'"
    DoCmd.OpenForm "suividesoffres"
     
    With Form_suividesoffres
    .Filter = ""
    .Filter = "siteprincipal Like" & site
    .Filter = Filter And statut Like " & sql"
    .FilterOn = True
     
    End With
    End Sub
    Cependant j'ai la même erreur 2248: impossible d'attribuer une valeur à cet objet.

    Si je ne me trompe pas, il n'arrive pas à définir la variable site dans mon formulaire.

    Je ne vois pas trop comment faire là !

  8. #8
    Invité
    Invité(e)
    Par défaut
    Pour trouver l'erreur
    Re-intégrer la variable "site" dans la procédure.
    Lui attribuer une valeur.
    Ensuite avant la ligne .FilterOn = True
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox Form_SuiviDesOffres.Filter
    Cela va permettre de voir si la ligne de filtre est cohérente.
    Vous verrez surement ainsi que vous avez deux fois Statut.

Discussions similaires

  1. Réponses: 4
    Dernier message: 29/04/2010, 06h30
  2. Formulaire, action "submit" directe après clic sur un bouton radio
    Par eLynx dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/10/2009, 19h29
  3. [HTML] affichage d'une page après clic sur le bouton 'précédent' du navigateur
    Par val_lala dans le forum Balisage (X)HTML et validation W3C
    Réponses: 11
    Dernier message: 06/04/2008, 23h21
  4. Réponses: 3
    Dernier message: 06/03/2008, 15h15

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