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 :

Remplissage d'un contrôle en fonction du remplissage d'un autre [AC-2007]


Sujet :

IHM

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Avril 2009
    Messages : 115
    Points : 41
    Points
    41
    Par défaut Remplissage d'un contrôle en fonction du remplissage d'un autre
    Bonjour,

    Je voulais savoir comment faire pour remplir une textbox automatiquement en fonction de ce que l'on écrit dans une autre textbox. En fait, pour bien expliquer mon problème, j'ai fais un formulaire où j'ai plusieurs textbox.
    Une où l'on écrit le nom d'une commune (l'utilisateur n'est pas obligé de taper entièrement le nom de la commune), et deux autres correspondant au code postal et au code INSEE de la commune ne question.

    Alors ce que j'aimerais faire, c'est que si l'utilisateur écrit Paris par exemple, que la textbox Code Postal se mette immédiatement à 75000 et le code INSEE à 75056 par exemple (je ne le connais pas par cœur). Je tiens à rappeler que je dispose de toutes ces infos dans ma table.

    Ensuite, le truc, c'est que je voudrais le faire en sens inverse aussi, c'est-à-dire que l'utilisateur pourrait commencer par écrire le code postal et çà serait le nom de la ville qui s'actualiserait...

    Donc ma question, c'est est-ce possible et surtout est-ce que c'est pas trop compliqué pour un débutant comme moi ? (enfin, je veux bien qu'on m'explique quand même...).

    Et enfin, mais bon, çà se fera plus tard je pense, comment faire en sorte d'aider l'utilisateur à la saisie. Je veux dire, s'il commence à écrire le nom d'une ville, que le formulaire puisse lui proposer des choix. Par exemple, il commence à écrire Ma... et le formulaire lui propose Marseille, Macon...Vous voyez ce que je veux dire ?

    Bon, merci beaucoup pour votre aide. Bonne journée à tous

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 007
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 007
    Points : 24 579
    Points
    24 579
    Par défaut
    Bonjour,

    Pourquoi ne pas utiliser une zone de liste de type combo. Le comportement que tu décris pour la saisie est natif.

    Pour les remplissages INSEE, Code postal etc, il suffit de le stocker ces données dans la même combo.

    Exemple de la source :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Select Ville, CodeInsee, CodePostal From Communes Order By Ville;"
    Colonne lié = 1
    Largeurs colonnes = 4;0;0

    Ou seul Ville apparaitra dans la combo.

    Pour renseigner les textbox utilise l'événement Aprés Maj de la combo et fait les affectations comme ceci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    me.TxtboxInsee = me.macombo.column(1)
    ...
    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Avril 2009
    Messages : 115
    Points : 41
    Points
    41
    Par défaut
    Bonsoir,

    Je débute dans la création de formulaire donc j'ai essayé de faire ce que tu me conseillais mais je rencontre quelques problèmes.

    Alors, tout d'abord, quand tu parle de zone de liste combo, on parle bien de zone de liste simple (pas déroulante) ?

    Ensuite, pour la source, est-ce dans les propriétés de ce contrôle : dans l'onglet "Données", puis "source contrôle" ? Parce que j'ai essayé çà, mais comment faire pour y insérer une requête comme celle que tu me donnes ? Faut-il que je la crée avant et la mettre dans "Contenu" ?

    Après, pour le code, je pense avoir compris le truc.

    Merci pour tes explications. Bonne soirée

  4. #4
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 007
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 007
    Points : 24 579
    Points
    24 579
    Par défaut
    Combo = Déroulante.

    Tout est dans les propriétés du controle Zone de liste déroulante.

    Tu positionnes la propriété Origine source sur Table/Requête et pour la requete elle-même positionne-toi sur la propriété Contenu et clique sur le bouton ... à gauche de la zone. Il t'ouvrira le générateur de requete (QBE).

    Tu peux également la créer, toujours dans le QBE, avant et copier la chaine SQL dans la propriété.

    Access est assez flexible.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Avril 2009
    Messages : 115
    Points : 41
    Points
    41
    Par défaut
    Salut,

    Bon, c'est bien ce qu'il me semblait mais en fait, j'avais fait le choix d'une textbox car j'avais trop de choix pour faire une combobox (la liste déroulante aurait été très longue et donc pas pratique du tout pour l'utilisateur à mon goût). En effet, le nombre de ville est assez important.

    Mais la technique me plait bien donc est-ce qu'il est possible de faire ce genre de choses avec une textbox (ou une autre solution ?) ?

    Je te remercie. Bonne journée

  6. #6
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 007
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 007
    Points : 24 579
    Points
    24 579
    Par défaut
    Pas en natif.

    Le type de contenu d'une textbox ne permet pas d'y mettre un recordset (contenu d'une requete).

    Va falloir programmer tout ça.

    De bonne notions en VBA, manipulation de chaine et connaissance en propriété et événement, et en DAO en perspective.

    Pour traiter la saisie en temps réel dans un textbox c'est la propriété Text du controle.

    Les manipulations de chaine :
    Les événements:
    Si modification, sur appui d'une touche...

    Voilà quelques pistes.

    Commence par poser ton algo sur papier.

    Cordialement,
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

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

    Vu que la table des communes représente un peu plus de 36000 enregistrement, les fonctions de domaines feront très bien l'affaire.

    Exemple :

    Une table (tbl_Ville)
    Trois champs de type texte : str_Ville, str_CP, str_Insee

    Un formulaire avec trois zones de texte : txtVille, txtCP, txtInsee

    Deux codes à mettre sur l'évènement Change de zone ville et cp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub txtCP_Change()
        Me.txtVille.Value = Nz(DLookup("str_Ville", "tbl_Ville", "str_CP LIKE '" & Me.txtCP.Text & "*'"), "")
        Me.txtInsee.Value = Nz(DLookup("str_Insee", "tbl_Ville", "str_CP LIKE '" & Me.txtCP.Text & "*'"), "")
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Private Sub txtVille_Change()
        Me.txtCP.Value = Nz(DLookup("str_CP", "tbl_Ville", "str_Ville LIKE '" & Me.txtVille.Text & "*'"), "")
        Me.txtInsee.Value = Nz(DLookup("str_Insee", "tbl_Ville", "str_Ville LIKE '" & Me.txtVille.Text & "*'"), "")
    End Sub
    Par contre il n'y a pas l'autocomplétation (aide à l'utilisateur), mais l'autre chams se rempli au fur et à mesure.

    Philippe
    Dernière modification par Invité ; 19/05/2009 à 05h56.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Avril 2009
    Messages : 115
    Points : 41
    Points
    41
    Par défaut
    Bonjour,

    Merci beaucoup Philippe. Le code fonctionne parfaitement.
    C'est exactement ce que je voulais faire. Tant pis pour l'aide à l'utilisateur.

    Encore merci. Bonne journée

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

Discussions similaires

  1. Fonction de remplissage de contrôles
    Par Masamunai dans le forum VB.NET
    Réponses: 17
    Dernier message: 01/12/2010, 15h47
  2. Réponses: 17
    Dernier message: 13/01/2009, 19h05
  3. [Java2D]Fonction de remplissage
    Par Guybrush dans le forum 2D
    Réponses: 6
    Dernier message: 14/05/2007, 11h23
  4. Remplissage d'un champs en fonction d'un autre
    Par arno974 dans le forum Access
    Réponses: 14
    Dernier message: 18/12/2006, 21h15
  5. Réponses: 2
    Dernier message: 29/09/2006, 16h40

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