begin process at 2012 02 13 06:56:36
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP / ASP3

 > 

Base de données

 > 

Access

 > 

Comment sélectionner automatiquement les enrgts dans une zone de liste indépendante


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Comment sélectionner automatiquement les enrgts dans une zone de liste indépendante

lundi 8 septembre 2008 à 15:35:34 | Comment sélectionner automatiquement les enrgts dans une zone de liste indépendante

BBOURDIER

Bonjour,

J'ai créé une table et un formulaire dans Access 2000, pour le suivi de chantiers.

 

Ces 2 objets (table et formulaire) contiennent de nombreux champs, dont [RéfChantier] et [Responsables]

Le champ Mémo [Responsables], comme son nom l'indique, contient la liste des responsables du chantier : 1 à 4 personnes, suivant la taille du chantier.

Le champ [Responsables] est alimenté à partir d'une zone de liste à sélection multiple :

è    l'origine source de la zone de liste est une table qui donne le nom des responsables

è    la propriété « sélection multiple » de la zone de liste = étendu

è    j'ai créé un bouton dans le formulaire, pour rendre visible la zone le la zone de liste uniquement lorsque j'en ai besoin, cad pour  la sélection/Désélection des responsables, et l' alimentation du champ [Responsables]  (ceci afin de ne pas encombrer le formulaire d'une grande zone de liste)

 

Voici le code qui permet d'alimenter le champ [Responsables] à partir de la zone de liste :

Private Sub zdlResponsables_AfterUpdate()

   Me!Domaine = Null 'RAZ du champ avant alim

   Dim i As Integer       'Compteur de ligne pour la zone de liste

   For i = 0 To Me![zdlResponsables].ListCount - 1  'Nombre de lignes dans zone de liste

      If Me![zdlResponsables].Selected(i) Then     'Si la ligne est sélectionnée

          ' On ajoute le Responsable sélectionné à [Responsables], en les séparant par un VbCrLf

          Me!Responsables = Me!Responsables & Me![zdlResponsables].Column(0, i) & vbCrLf

      End If

   Next i

End Sub

 

Ce code me donne entière satisfaction.

Par contre ma méthode présente un inconvénient majeur : lorsque je veux ajouter ou supprimer un responsable à un chantier, je dois à nouveau re-sélectionner tous les responsables de ce chantier, car la zone de liste est indépendante (et il y a un risque d'erreur de sélection).

 

Je suis à la recherche d'une méthode qui sélectionne automatiquement les enrgts de la zone de liste, en fonction du contenu du champ [Responsables], dès l'instant où je rends visible cette zone de liste indépendante.

 

J'ai tenté ce code « sur clic » du bouton : il permet l'affichage ou non de la ZDL (zone de liste), puis sélectionne les enrgts de la ZDL suivant le contenu du champ [Responsables]. mais ça ne marche pas :

Private Sub btnAfficheZDL_Responsables_Click()

   If Me!zdlResponsables.Visible = True Then 'si la ZDL est visible, alors elle devient invisible        

      Me!zdlResponsables.Visible = False

   Else 'si la ZDL est invisible, elle devient visible

      Me!zdlResponsables.Visible = True

      Dim strResp As String 'contiendra le nom du Responsables entre 2 "VbCrLf"

      Dim strTMP as String ''contiendra le caractère lu dans "me!Responsables", à l'aide de la fonction "mid"

      Dim intTMP as Integer 'variable temporaire

      Dim i as Integer

      Dim j as Integer

     

      If Not IsNull(Me!Responsables) Then  'Théoriquement peu probable

 

            i = 1 'pr lire à partir du 1er caractère du me!Responsables

            j = Len(Me!Responsables) 'pr lire tous les caractères jusqu'à la fin du me!Responsables

            Do While i <= j

               '4) on lit LE caractère (car = "1") qui est débute en position "i"

               strTMP = Mid(Me!Responsables, i, 1)

                                

               '5) Si on est sur le début d'un saut de ligne (Chr(13), puis Chr(10)), alors le [Responsables] a été entièrement reconstitué, et on peut le tester avec le [Responsables] de "tblResponsabless"

               If strTMP = Chr(13) Then 'Théo chaque [Responsables] de "tblMémo" doit se terminer par un saut de ligne                           

                 

                  '6) Test si strResp existe bien dans un (et un seul) enrgt de "tblResponsabless"

                  intTMP = DCount("[Responsables]", "tblResponsabless", "[Responsables] = " & Chr(34) & strResp & Chr(34))

                 

                  '7) Si strResp (qui est un Responsables reconstitué ds tblMémo) exite pas dans [Responsables] de "tblResponsabless" => on le sélectionne dans la zdlResponsables

                  If intTMP = 1 Then

                     'Sélection automatique du Responsables dans la zdl => NE MARCHE PAS !!!

                     pintMsg = 0

                     For pintMsg = 0 To Forms!frmMG![zdlResponsables].ListCount - 1  ' Nombre de lignes dans zone de liste

                        If Forms!frmMG![zdlResponsables].Column(0, pintMsg) = strResp Then     ' Si la ligne est sélectionnée

                           Forms!frmMG![zdlResponsables].Selected(pintMsg) = True

                        End If

                     Next pintMsg

                     DoCmd.RepaintObject acForm, "frmMémo"

                  End If

                              

                  strTMP = "" 'pr effectuer de nouvelles recherches de caractères ds "me!Responsables"

                  strResp = "" 'car nouveau Responsables à venir

                 

                  i = i + 1 'pr lire le caractère suivant

                 

               Else

                  strResp = strResp & strTMP 'ajout de la lettre (ou de l'espace) qui vient d'être lu

               End If

              

               i = i + 1 'pr lire le caractère suivant

            Loop

         End If

     

   End If

   DoCmd.RepaintObject acForm, "frmMémo"

End Sub

 

Je vous remercie par avane pour tous les conseils que vous pourrez me communiquer.

Bien cdlt,

BBOURDIER


Cette discussion est classée dans : liste, zone, if, responsables, zdlresponsables


Répondre à ce message

Sujets en rapport avec ce message

un calendrier dans une zone de liste [ par pikaspike ] Comme le titre l'indique je recherche un moyen de mettre un calendrier dans une zone de listeEn fait j'ai, sur une page, une recherche a faire suivant Ajout d'éléments dans une liste [ par FPatrick ] J'ai une zone de texte , un bouton et une zone de liste.Je voudrais ajouter le texte saisi dans ma zone de liste via le bouton sans recharger ma feuil Faire une liste de Friends [ par Kevinklen ] Bonjour,Je voudrais reproduire sur mon site la friends liste qui se trouve sur MSN GAMING ZONE, (les joueurs sur zone se reconnaîtrons) cette friends Zone de liste Erreur élément sélectionner??? [ par suzukMan ] Bonjour,Je ne comprend pas commment on fait pour garder un élément que j'ai selectionner sur une zone de liste de type .j'ai essayer cela :      <opti Zone texte, zone liste [ par SElKettani ] Bonjour, les amis.  J'ai une zone liste (MaListe) provenant d'une table, je sélectionne un champ puis je clique sur un bouton (MaZoneDe procédure sur zone de liste ACCESS??? [ par dabigben ] salut!!j'aimerais savoir s'il est possible de créer une procédure qui s'executerait au moment de la selection d'un element dans une liste modifiable. Ordre alphabétique sur zone de liste modifiable [ par CptDuff ] Bonjour !Je vous explique mon problème. Sur un de mes formulaires j'ai créé une zone de liste modifiable qui reprend la liste de mes machines. Mais le Access - Ouvrir objet ole depuis une zone de liste [ par gio23 ] Bonjour tout le monde! Je suis en train de creer un programme sur access, et j'ai un problème. Dans mes tables j'ai un champ de type OLE. J'ai un form Zone de liste (Important !!!) [ par suzukMan ] Bonjour j'ai un petit problème je travail actuellement sur un formulaire et j'aimérais que dés que je selectionne une valeur dans une zone de liste de


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,296 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales