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 :

Formulaire + Valeur Zone Liste + Enregistrement dans Table + code Vba [AC-2010]


Sujet :

VBA Access

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 17
    Points : 15
    Points
    15
    Par défaut Formulaire + Valeur Zone Liste + Enregistrement dans Table + code Vba
    Bonjour ,

    J'ai un formulaire , avec une ZoneList , renseignée par une requête , et 3 TextBoxs renseignées par l'utilisateur . En vba , pas de problème pour mettre à jour une table à partir des valeurs des 3 TextBoxs ,
    par contre , je ne trouve pas le code vba pour copier le contenu de la ZoneList dans la même table .
    J'ai essayé dans le même formulaire de renseigner une TextBox avec la valeur de la ZoneList , j'obtiens un message d'erreur du type # Nom ? .

    Merci si vous avez une idée

    JL

  2. #2
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    Bonsoir,
    Si tu veux renseigner une zone de texte à partir du zone de liste, voici comment faire en VBA:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.MaZoneTexte = Me.MaZoneLliste.Column(0)
    0 est l'index de la première colonne de la zone de liste.

    J'ai essayé dans le même formulaire de renseigner une TextBox avec la valeur de la ZoneList , j'obtiens un message d'erreur du type # Nom ?
    Par contre ce message tu ne peux pas l'avoir dans VBA mais dans le formulaire en mode affichage. Cela veut dire que la source du contrôle est incorrecte.
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 17
    Points : 15
    Points
    15
    Par défaut [AC-2010] Formulaire + Valeur Zone Liste + Enregistrement dans Table + code Vba
    Merci pour les infos .

    J'ai essayé la syntaxe indiquée , il n y a pas de valeur affichée dans la TextBox . Toujours en vba , j'ai assigné à une variable , déclarée en variant , la syntaxe Variable = Me.MaZoneLliste.Column(0) , avec différente valeur , 0 ,1 ,2 puis avec un msgbox pour lire la valeur retournée , pas de valeur mais pas de message d'erreur . Pourtant dans la listBox du formulaire , il y a une valeur !! .
    En effet , le message d'erreur ne concerne par le vba , mais directement le formulaire ou dans le TextBox , j'ai indiqué comme Source Control =[lstNrS] qui est l'identification de la ZoneListe .

    Encore Merci

    JL

  4. #4
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    j'ai indiqué comme Source Control =[lstNrS]
    ce n'est pas la bonne méthode, tu es obligé de passer par VBA comme je te l'ai montré. Ta zone de Texte ne peut être mise à jour qu'après sélection d'un enregistrement de ta zone de liste. Pour çà, tu dois créer une procédure évènementielle "Sur clic"
    Pièce jointe 230183
    VBA Access va te créer 3 lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub lstNrS_Click()
     
    End Sub
    et à la place de la ligne blanche tu dois mettre le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.TaTextBox = Me.lstNrS.Column(0)
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 17
    Points : 15
    Points
    15
    Par défaut [AC-2010] Formulaire + Valeur Zone Liste + Enregistrement dans Table + code Vba
    Bonjour ,

    La syntaxe indiquée ,avec l'événement click ,ne donne pas de résultat affiché dans txtNrClient . Après avoir cliqué la ListBox .

    Je pense que la syntaxe est correcte , mais qu'il y a un paramétre de la listBox lstNrS qui ne permet pas de récupérer la valeur .

    Comme je dois absolument récupérer cette valeur , j'ai essayé de la récupérer du formulaire précédent ( Formulaire_A dont est issu le formulaire _B ou est lstNrS),
    ce formulaire est un formulaire avec un SousFormulaire , dans lequel est aussi cette information .

    Dans txtNrClient ,Formulaire_B , à Source Contrôle , saisie de : =[Formulaires]![frmFichesClient]![AlaDemandeEnCours].[Formulaire]![NrClient]
    et c'est OK .


    Bien sur , il serait interessant de comprendre pourquoi cela ne fonctionne pas dans cette configuration . Si la raison est trouvée , je l'indiquerais dans la discussion .

    Merci

  6. #6
    Expert éminent sénior
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 648
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 648
    Points : 14 626
    Points
    14 626
    Par défaut
    Bonjour,
    le plus simple est que tu postes ta base car je ne comprend pas tout (tu n'avais pas mentionné auparavant l'existence d'un autre formulaire et d'un sous-formulaire)
    Quand on est derrière l'écran on n'a aucun clavier sous les mains ...
    ah non ? donc devant l'écran c'est la connectique ?

  7. #7
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 17
    Points : 15
    Points
    15
    Par défaut [AC-2010] Formulaire + Valeur Zone Liste + Enregistrement dans Table + code Vba
    Suite à recherches dans internet , la solution trouvée en vba est :
    - Définition d'une variable control (dim ctlxyz as control)
    - Assignation de la variable control à la valeur de la listBox (set ctlxyz = Me.lstxyz )
    - Assignation de la txtBox à la variable control (Me.txtxyz = ctlxyz.Column(0,Element)
    - Mise à jour de la txtBox (Me.txtxyz.requery)

    Ceci pour un même formulaire ,
    Pour un formulaire différent :
    [Forms]![frmAutreForm]![txtxyz] = ctlxyz.Column(0,Element)

    Merci pour la piste à suivre

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

Discussions similaires

  1. Utilisation des choix d'une liste déroulante dans un code VBA
    Par mrshoother dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/02/2013, 22h20
  2. Réponses: 8
    Dernier message: 22/12/2012, 15h52
  3. Réponses: 1
    Dernier message: 22/05/2008, 20h37
  4. Réponses: 5
    Dernier message: 11/04/2007, 09h20
  5. Réponses: 7
    Dernier message: 23/06/2006, 14h52

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