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 :

Effacer les valeurs d'une zone de texte en fonction d'une valeur de liste déroulante


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Avril 2007
    Messages : 70
    Points : 24
    Points
    24
    Par défaut Effacer les valeurs d'une zone de texte en fonction d'une valeur de liste déroulante
    Bonjour,

    Je vous explique mon petit soucis :

    J'ai une liste déroulante et je voudrai que en fonction d'une certaine valeur de cette liste, ça efface des valeurs se trouvant dans des zones de texte et dans une liste déroulante de mon formulaire.

    Merci de votre aide.
    Cordialement Bubut

  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
    Sur l'événement Change de ta zone de liste, tu mets par exemple :
    En espérant t'aider.
    J'aime les gâteaux.

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Avril 2007
    Messages : 70
    Points : 24
    Points
    24
    Par défaut
    Bonjour Demco,

    c'est quoi ton "zdt"?

    Sinon malheureusement ça ne fonctionne pas. Merci tout de même de ton aide.

    Bubut

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour

    "Zdt" c'est zone de texte.

    J'aurais une idée

    Lorsque tu sélectionnes un élément de ta liste déroulante, tu mets un code avec un Select Case, qui effectuera les orpérations d'effacement en fonction de la valeur rencontrée. Voici un petit exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Select Case LaValeurRecupere
        Case ValeurQuiVideLesChamps
            me.txtText1.value = ""
            me.txtText2.value = ""
            ...
        Case Else
    End Select
    Ce n'est qu'un exemple tapé à la main et une piste de réfelexion.


    Starec

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Avril 2007
    Messages : 70
    Points : 24
    Points
    24
    Par défaut
    Bonjour Starec,

    donc avec ta méthode je n'y arrive pas (je suis nul en programmation donc ça arrange pas).

    Moi ce que je veux effacer ce trouve dans un sous formulaire donc au lieu de mettre le chemin du nom de la liste à modifier, je mes le chemin du formulaire et du nom de la liste à modifier (normalement c'est ça).

    Merci de m'avoir aidé

  6. #6
    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 Bubut
    donc avec ta méthode je n'y arrive pas (je suis nul en programmation donc ça arrange pas).

    Moi ce que je veux effacer ce trouve dans un sous formulaire donc au lieu de mettre le chemin du nom de la liste à modifier, je mes le chemin du formulaire et du nom de la liste à modifier (normalement c'est ça).
    Montre nous le code que tu as essayé mais qui ne marche pas.
    J'aime les gâteaux.

  7. #7
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Avril 2007
    Messages : 70
    Points : 24
    Points
    24
    Par défaut
    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 Sous_Ensemble_Change()
        If Sous_Ensemble.Text = "430-1" Then
            Me.R_SF_Module.Visible = True
        Else
            Me.R_SF_Module.Visible = False
            Select Case LaValeurRecupere
                    Case "430-1"
                    Me.F_Module.Nom_Module.Value = ""
                    Me.F_Module.Descriptif_Module.Value = ""
                    Me.F_Module.Commentaire_Module.Value = ""
                    Me.F_Module.Prix_Unitaire_Module.Value = ""
                Case Else
            End Select
        End If
    End Sub
    J'arrive pas à trouver le bon chemin pour aller sur le sous formulaire, j'aiessayé aussi comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Me.Form_F_Module.Descriptif_Module.Value = ""
    ...
    J'ai essayé aussi avec "Me!" à la place de "Me." vu que je sais pas trop la différence.

    Mais bon ça me donne rien et je suis pas très sur pour :
    Je pense que ça ne va pas ça non plus.

  8. #8
    Invité
    Invité(e)
    Par défaut
    Re

    Ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select Case LaValeurRecupere
    devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select Case Sous_Ensemble
    De plus va jeter un coup d'oeil à ce tuto pour la syntaxe d'appel.

    Et met plutôt sur l'évenement After_Update que Change (à testé).

    Starec

  9. #9
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Avril 2007
    Messages : 70
    Points : 24
    Points
    24
    Par défaut
    Avec AfterUpdate :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Sous_Ensemble_AfterUpdate()
        If Me.R_SF_Module.Visible = False Then
            Select Case Sous_Ensemble
                    Case "430-1"
                    Me.R_SF_Module.Form.Non_Module.Value = ""
                    Me.R_SF_Module.Form.Descriptif_Module.Value = ""
                    Me.R_SF_Module.Form.Commentaire_Module.Value = ""
                    Me.R_SF_Module.Form.Prix_Unitaire_Module.Value = ""
                Case Else
            End Select
        End If
    End Sub
    Ca ne fonctionne pas il me trouve une erreur à la 5ème ligne.

    Avec Change :
    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 Sous_Ensemble_Change()
        If Sous_Ensemble.Text = "430-1" Then
            Me.R_SF_Module.Visible = True
        Else
            Me.R_SF_Module.Visible = False
            Select Case Sous_Ensemble
                    Case "430-1"
                    Me.R_SF_Module.Form.Non_Module.Value = ""
                    Me.R_SF_Module.Form.Descriptif_Module.Value = ""
                    Me.R_SF_Module.Form.Commentaire_Module.Value = ""
                    Me.R_SF_Module.Form.Prix_Unitaire_Module.Value = ""
                Case Else
            End Select
        End If
    End Sub
    Il ne me trouve pas d'erreur mais ça ne fait pas ce que je souhaitai.

    Donc maintenant je sais pas du tout comment faire.

    Je pense que le chemin pour aller à mes zones de texte doit être bon (je trouve bizard pour le nom de mon sous formulaire il me propose que le nom de sa requete "R_SF_Module" et non pas "F_Module").

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 74
    Points : 88
    Points
    88
    Par défaut
    C'est normal, Me est le raccourci de l'objet actif, c'est à dire de ton sous-formulaire. Or F_Module est le formulaire principal.

    Donc plutôt que d'utiliser me.F_Module. ....
    tu dois utiliser le nom réel de l'objet , c'est à dire
    Forms("F_Module").Non_Module.Value = ""

  11. #11
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Avril 2007
    Messages : 70
    Points : 24
    Points
    24
    Par défaut
    c'est bon j'ai trouvé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Sous_Ensemble_Change()
        If Sous_Ensemble.Text = "430-1" Then
            Me.F_Module.Visible = True
            Me.SousTotal.Visible = True
        Else
            Me.F_Module.Visible = False
            Me.SousTotal.Visible = Fale
            Forms.F_Devis.F_Module.Form.Nom_Module.Value = ""
            Forms.F_Devis.F_Module.Form.Descriptif_Module.Value = ""
            Forms.F_Devis.F_Module.Form.Commentaire_Module.Value = ""
            Forms.F_Devis.F_Module.Form.Prix_Unitaire_Module.Value = ""
        End If
    End Sub
    Merci à tout le monde de m'avoir aidé

    a+

    Cordialement,
    Bubut

  12. #12
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Avril 2007
    Messages : 70
    Points : 24
    Points
    24
    Par défaut
    Bonjour,

    Je pensai en avoir fini avec cette question là, mais en faite non.

    Donc mon problème est que, ce que je souhaite supprimé sont : une zone de liste déroulante et des zones de textes se trouvant dans un sous formulaire en mode Feuille de donnée (tableau).

    Et donc ce programme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Sous_Ensemble_Change()
        If Sous_Ensemble.Text = "430-1" Then
            Me.F_Module.Visible = True
            Me.SousTotal.Visible = True
        Else
            Me.F_Module.Visible = False
            Me.SousTotal.Visible = Fale
            Forms.F_Devis.F_Module.Form.Nom_Module.Value = ""
            Forms.F_Devis.F_Module.Form.Descriptif_Module.Value = ""
            Forms.F_Devis.F_Module.Form.Commentaire_Module.Value = ""
            Forms.F_Devis.F_Module.Form.Prix_Unitaire_Module.Value = ""
        End If
    End Sub
    Il me permet que d'effacer sur la dernière ligne qui a été écrite alors que moi se serai tout le tableau du sous formulaire que je souhaiterai effacer (et non que la dernière ligne).

    Merci de votre aide

    Cordialement,
    Bubut

Discussions similaires

  1. Réponses: 2
    Dernier message: 12/05/2011, 10h04
  2. [AC-2003] renommer une colonne de requête en fonction d'une zone de texte d'un formulaire
    Par tibofo dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 04/03/2010, 16h16
  3. Réponses: 12
    Dernier message: 17/08/2009, 06h27
  4. <DEBUTANT> Remplir une zone de texte en fonction d'une liste
    Par Superbretzel dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 26/05/2008, 20h40
  5. Réponses: 1
    Dernier message: 19/04/2006, 14h29

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