Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/06/2011, 18h10   #1
Rédacteur/Modérateur
 
Avatar de David55
 
Homme David S.
Etudiant en alternance
Inscription : août 2010
Messages : 1 167
Détails du profil
Informations personnelles :
Nom : Homme David S.
Âge : 22
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Etudiant en alternance
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2010
Messages : 1 167
Points : 2 304
Points : 2 304
Par défaut Affichage champ en auto sur formulaire

Bonjour ,
j'ai developpé un formulaire.
Dans le premier champs j'accéde à une table qui comporte un numero et un libellé.
En selectionnant le numéro , je souhaite que le champ suivant s'alimente automatiquement du libellé.
j'ai utilisé l'option DLookup sur le premier champs, mais j'ai une erreur : "Erreur d execution 3464"
voilà mon code

"CodeArticleDevis1" est le champ numéro de mon formulaire
ListedesArticles est ma table contenant numéro et libellé
LibelleArticle est le champ de ma table contenant le libelle que je veux récupérer
Type est le code sur la table que je compare a celui entrer

Code :
1
2
3
4
5
Private Sub CodeArticleDevis1_Exit(Cancel As Integer)
    Dim varLibelle As Variant
    varLibelle = DLookup("[LibelleArticle]", "ListedesArticles", "[Type] =" & Forms![Saisie Incident]!CodeArticleDevis1)
    DescriptionArticleDevis1.Value = varLibelle
End Sub
Merci
__________________
Vous trouverez ma page perso avec des tutoriels sur Android et BIRT au lien suivant : http://dsilvera.developpez.com
N'oubliez pas de voter pour les messages dont la réponse est pertinente (en bas à droite du cadrant)
Vous voulez afficher du code :
Votre problème est résolu :
Pas de question technique par MP !
David55
David55 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/06/2011, 21h12   #2
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 470
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 470
Points : 7 552
Points : 7 552
La technique la plus simple pour faire cela est d'utiliser une liste déroulante multi-colonne pour la sélection qui présente :
  • col 0 le code,
  • col 1 le libellé

Puis sur l'événement OnChange de la liste :

Code :
Me.DescriptionArticleDevis1=Me.TaListe.column(1)
Va automatiquement recopier le contenu de la colonne libellé dans ta description.

Il y a une autre solution simple si tu es en mode d'affichage enr unique et que tu veux suelement afficher l'info pas la sauvegarder dans la source de données du formulaire.

Tu assignes comme source de ton champ d'affichage indépendant :

=TaListe.column(1)

Et Access va afficher le libellé chaque fois que tu vas choisir un élément.

Enfin une dernière astuce toujours si ti ne veux que de l'affichage : utiliser 2 listes déroulantes basées sur le même champ source.

La 1ère à 1 colonne affiche seulement le code.
La 2ième à 2 colonne sélectionne le code et le libellé mais la largeur de la 1ière colonne est mise à 0 ce qui fait qu'elle n'affiche plus que le libellé. Comme elles sont basées sur le même champ elles vont se synchroniser automatiquement.

Je me sert parfois de cette astuce pour offrir à mes utilisateurs un choix par code ou par libellé sans une seule ligne de programmation.

Sinon c'est quoi l'erreur 3464 ?

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 23/06/2011, 21h30   #3
Rédacteur/Modérateur
 
Avatar de David55
 
Homme David S.
Etudiant en alternance
Inscription : août 2010
Messages : 1 167
Détails du profil
Informations personnelles :
Nom : Homme David S.
Âge : 22
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Etudiant en alternance
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2010
Messages : 1 167
Points : 2 304
Points : 2 304
Merci, cela fonctionne, j'ai pris la dernière solution avec 2 zones déroulantes.
Par contre y a t il un moyen pour ne pas mettre la 2 eme en déroulante, car cela oblige de se mettre dessus pour le sélectionner? Car en champ texte la zone origine source et contenu disparaissent.
Donc peut on le remplacer par une zone texte et afficher directement le 2ème.
Si oui comment ?

Merci

EDIT:

AU fait j'ai applique une autre solution qui permet d'afficher ma zone dans une zone texte.
Je me mets sur mon numero et en évènement je mets 'sur sortie'. La s'affiche la procédure evenementielle suivante :
Code :
1
2
3
4
5
Private Sub NumeroClientDevis_Exit(Cancel As Integer)
        MsgBox NumeroClientDevis.Column(0)
        MsgBox NumeroClientDevis.Column(1)
       TitreClient.Value = [NumeroClientDevis].Column(1)
End Sub
Seul problème c'est qu'il ne veut pas afficher la suite de ma table qui comporte 4 colonnes. Lorsque je met xxxxxx.Column (2) il se plante.
__________________
Vous trouverez ma page perso avec des tutoriels sur Android et BIRT au lien suivant : http://dsilvera.developpez.com
N'oubliez pas de voter pour les messages dont la réponse est pertinente (en bas à droite du cadrant)
Vous voulez afficher du code :
Votre problème est résolu :
Pas de question technique par MP !
David55
David55 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h44.


 
 
 
 
Partenaires

Hébergement Web