OVH Cloud OVH Cloud

Compteur sur deux zones de liste

18 réponses
Avatar
Jacques
Bonjour,

Dans mon formulaire j=92ai deux zones de liste qui me permettent de
s=E9lectionner des enregistrements, et je voudrais avoir deux zones de
texte
qui m=92indiquent le nombre d=92enregistrements s=E9lectionn=E9s sur l=92un=
e et
le nombre restant sur l=92autre.


With lstSource

'--- d=E9placer que les =E9lements s=E9lectionn=E9s,
If LimiteSelection Then
For I =3D 0 To .ListCount - 1

'--- inverse le champ selection
If .Selected(I) Then
Db.Execute "UPDATE [tbl Adh=E9rents] SET Selection=3DNOT
Selection WHERE r=E9fAdh=E9rent=3D" & .Column(0, I)
End If
Next I

'--- permutte la globalit=E9
Else
Db.Execute "UPDATE [tbl Adh=E9rents] SET Selection=3D" & CInt
(bolSelection)
End If '22

Nom des deux zones de texte :
txtCompteurGauche
txtCompteurDroite

Nom des deux zones de liste :
lstChampsGauche
lstChampsDroite

Sur la source du ctrl txtCompteurDroite j=92ai ce code qui n=92indique
rien :
=3D[lstChampsGauche].[itemsSelected].Compte

Sur l=92autre zone de texte txtCompteurGauche je ne sais pas quoi faire.

Merci de votre aide.

Salutations

8 réponses

1 2
Avatar
Eric
Bonsoir,

Le but du jeu est de mettre à jour les compteurs txtCompteurCd et
txtCompteurCs en fonction des boutons, je suppose ? Tu confirmes ?

Un pb : Quand on clique sur un élément de la liste CS, ça inscrit
automatiquement le 1er élément de la liste Cd disponible

jacques a écrit :

Re bonjoir Eric,

Erreur de a part la base n'est pas si grosse que ça

http://cjoint.com/?dsubov3gML

Salutations



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Avatar
jacques
On 16 mar, 21:04, Eric wrote:
Bonsoir,

Le but du jeu est de mettre à jour les compteurs txtCompteurCd et
txtCompteurCs en fonction des boutons, je suppose ? Tu confirmes ?

Un pb : Quand on clique sur un élément de la liste CS, ça inscrit
automatiquement le 1er élément de la liste Cd disponible

jacques a écrit :



> Re bonjoir Eric,

> Erreur de a part la base n'est pas si grosse que ça

>http://cjoint.com/?dsubov3gML

> Salutations

--
A+
Erichttp://www.mpfa.info/
Archives :http://groups.google.fr/group/microsoft.public.fr.access?hl=f r



Re,

Oui je confirme.

Lorsque je passe un enregistrement dans la liste Champs Selectionnés
le compteur doit marquer 1 et celui de la liste Champs Disponibles
14.

Quand on clique sur un élément de la liste CS, ça inscrit
automatiquement le 1er élément de la liste Cd disponible



C'est Normal c'est à partir de cette liste que je fais tous mes
traitements.

Pour selectionner tous les enregistrements j'utilise le crtl avec >>
ou <<

Salutations
Avatar
Eric
J'ai passé la procédure sur clic de la lstChampsDisponibles sur
DoubleClick au lieu de Click sinon tu ne peux pas faire de sélection
multiple.
J'ai ajouté 2 procédures MAjCd et MajCs qui sont appelées à l'ouverture
du formulaire et sur le double-clic de lstChampsDisponibles et sur les 4
boutons (<,<<,>,>>)

La base ici :
http://cjoint.com/?dsvXf6wjZm
Avatar
jacques
On 16 mar, 21:49, Eric wrote:
J'ai passé la procédure sur clic de la lstChampsDisponibles sur
DoubleClick au lieu de Click sinon tu ne peux pas faire de sélection
multiple.
J'ai ajouté 2 procédures MAjCd et MajCs qui sont appelées à l'ouv erture
du formulaire et sur le double-clic de lstChampsDisponibles et sur les 4
boutons (<,<<,>,>>)

La base ici :http://cjoint.com/?dsvXf6wjZm



Re Bonsoir Eric, ou Bonjour si tu ouvre ce message demain,

Merci beaucoup pour ton aide qui m'apporte beaucoup, si tu savais
l'usine a gaz
que j'avais fait pour avoir mes numéros d'enregistrements!!!!!.

Maintenant je voudrais faire une procédure qui me servira pour tous
mes contrôles d'options
Je pense qu'avec des variables cela doit -être possible, je saurais
faire la syntaxe de la variable du where,mais pour la variable de la
table non.


'---Execute une serie d'instruction pour le même objet
With lstSource

'--- S'il ne faut déplacer que les élements sélectionnés,
If LimiteSelection Then
For I = 0 To .ListCount - 1

'Si l'élement est sélectionné dans la liste source, inverse le
champ selection
If .Selected(I) Then ' 3
db.Execute "UPDATE [tbl Adhérents] SET Selection=NOT Selection
WHERE réfAdhérent=" & .Column(0, I)
End If '11
Next I

'--- Sinon, permutte la globalité
Else
db.Execute "UPDATE [tbl Adhérents] SET Selection=" & CInt
(bolSelection)
End If

'--- Rafraichit la zone de liste source
.Requery
End With
End If

Encore un grand merci.

Salutations
Avatar
Eric
Bonjour,

Pour faire simple, supprimes MajCd et MajCs et remplaces-les par
celle-ci que tu appelleras sur Ouverture du Formulaire, les boutons
Retiré, Sélectionné, TousRetiré, TousSélectionné et
lstChampsDisponibles_DblClick car les 2 listes sont liées, j’ai été un
peu vite hier :-(

Sub MajCdCs()
Me.txtCompteurCd = Me.lstChampsDisponibles.ListCount
Me.txtCompteurCs = Me.lstChampsSélectionnés.ListCount
End Sub

Pour la suite de ta question, (histoire du cadre d'options au 9
possibilités), que veux-tu précisément ?

jacques a écrit :
On 16 mar, 21:49, Eric wrote:

Re Bonsoir Eric, ou Bonjour si tu ouvre ce message demain,

Merci beaucoup pour ton aide qui m'apporte beaucoup, si tu savais
l'usine a gaz
que j'avais fait pour avoir mes numéros d'enregistrements!!!!!.

Maintenant je voudrais faire une procédure qui me servira pour tous
mes contrôles d'options
Je pense qu'avec des variables cela doit -être possible, je saurais
faire la syntaxe de la variable du where,mais pour la variable de la
table non.


'---Execute une serie d'instruction pour le même objet
With lstSource

'--- S'il ne faut déplacer que les élements sélectionnés,
If LimiteSelection Then
For I = 0 To .ListCount - 1

'Si l'élement est sélectionné dans la liste source, inverse le
champ selection
If .Selected(I) Then ' 3
db.Execute "UPDATE [tbl Adhérents] SET Selection=NOT Selection
WHERE réfAdhérent=" & .Column(0, I)
End If '11
Next I

'--- Sinon, permutte la globalité
Else
db.Execute "UPDATE [tbl Adhérents] SET Selection=" & CInt
(bolSelection)
End If

'--- Rafraichit la zone de liste source
.Requery
End With
End If

Encore un grand merci.

Salutations






--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Avatar
jacques
On 17 mar, 07:44, Eric wrote:
Bonjour,

Pour faire simple, supprimes MajCd et MajCs et remplaces-les par
celle-ci que tu appelleras sur Ouverture du Formulaire, les boutons
Retiré, Sélectionné, TousRetiré, TousSélectionné et
lstChampsDisponibles_DblClick car les 2 listes sont liées, j’ai ét é un
peu vite hier :-(

Sub MajCdCs()
        Me.txtCompteurCd = Me.lstChampsDisponibles.ListCount
        Me.txtCompteurCs = Me.lstChampsSélectionnés.ListCou nt
End Sub

Pour la suite de ta question, (histoire du cadre d'options au 9
possibilités), que veux-tu précisément ?

jacques a écrit :





> On 16 mar, 21:49, Eric wrote:

> Re Bonsoir Eric, ou Bonjour si tu ouvre ce message demain,

> Merci beaucoup pour ton aide qui m'apporte beaucoup, si tu savais
> l'usine a gaz
> que j'avais fait  pour avoir mes numéros d'enregistrements!!!!!.

> Maintenant je voudrais faire une procédure qui me servira pour tous
> mes contrôles d'options
> Je pense qu'avec des variables cela doit -être possible, je saurais
> faire la syntaxe de la variable du where,mais pour la variable de la
> table non.

> '---Execute une serie d'instruction pour le même objet
>     With lstSource

> '--- S'il ne faut déplacer que les élements sélectionnés,
>      If LimiteSelection Then
>         For I = 0 To .ListCount - 1

>     'Si l'élement est sélectionné dans la liste source, inver se le
> champ selection
>      If .Selected(I) Then ' 3
>         db.Execute "UPDATE [tbl Adhérents] SET Selection=NO T Selection
> WHERE réfAdhérent=" & .Column(0, I)
>      End If '11
>         Next I

> '--- Sinon, permutte la globalité
>      Else
>         db.Execute "UPDATE [tbl Adhérents] SET Selection=" & CInt
> (bolSelection)
>      End If

> '--- Rafraichit la zone de liste source
>     .Requery
> End With
> End If

> Encore un grand merci.

> Salutations

--
A+
Erichttp://www.mpfa.info/
Archives :http://groups.google.fr/group/microsoft.public.fr.access?hl=f r- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -



Bonjour Eric,

Merci pour la nouvelle ligne de code.

Certains groupe d'option (9) font appel à d'autres tables que tbl
Adhérents, et au lieu d'écrire
9 fois le code ci dessus, je voudrais mettre des variables à tbl et
where sur cette ligne pour faire une sub:

db.Execute "UPDATE [tbl Adhérents] SET Selection=NOT Selection
> WHERE réfAdhérent=" & .Column(0, I)



Bonne journée.

Salutations
Avatar
Eric
re,

jacques a écrit :


Certains groupe d'option (9) font appel à d'autres tables que tbl
Adhérents, et au lieu d'écrire
9 fois le code ci dessus, je voudrais mettre des variables à tbl et
where sur cette ligne pour faire une sub:

db.Execute "UPDATE [tbl Adhérents] SET Selection=NOT Selection
WHERE réfAdhérent=" & .Column(0, I)








Je ferai un Select Case me!Cadre8 pour définir la table à mettre à jour
(prévoir aussi le champs s'il change par exemple :refadhérent -->
refbénévole) ainsi que les labels.

Ca pourrait donner quelque chose du genre :
Private Sub TransposerElement(lstSource As ListBox, lstDestination As
ListBox, _
Optional LimiteSelection As Boolean =
True, Optional bolSelection As Boolean = True)


Dim I As Integer
Dim db As DAO.Database
Set db = CurrentDb
Dim sql As String, NomTable as String
Select Case Me!Cadre8
Case 1
strMessage = "Adhérents de l'exercice en cours"
lblMessage.Caption = strMessage
NomTable=" tbl Adhérents"
Case 2
strMessage = "Bénévoles"
lblMessage.Caption = strMessage
NomTable=" tbl Bénévoles"
' … Faire les autres cas
End Select

'---Execute une serie d'instruction pour le même objet

With lstSource
'--- S'il ne faut déplacer que les élements sélectionnés,
If LimiteSelection Then
For I = 0 To .ListCount - 1
If .Selected(I) Then ' 3
db.Execute "UPDATE [" & NomTable & _
"] SET Selection=NOT Selection WHERE réfAdhérent=" & _
.Column(0, I)
End If
Next I
'--- Sinon, permutte la globalité
Else
db.Execute "UPDATE [" & NomTable & "] SET Selection=" &
CInt(bolSelection) 'passage 4 cbol select faux b4 vrai
End If
'--- Rafraichit la zone de liste source
.Requery

End With
' ...




--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Avatar
jacques
On 17 mar, 10:51, Eric wrote:
re,

jacques a écrit :



> Certains groupe d'option (9) font appel à d'autres tables que tbl
> Adhérents, et au lieu d'écrire
> 9 fois le code ci dessus, je voudrais mettre des variables à tbl et
> where sur cette ligne pour faire une sub:

> db.Execute "UPDATE [tbl Adhérents] SET Selection=NOT Selection
>>> WHERE réfAdhérent=" & .Column(0, I)

Je ferai un Select Case me!Cadre8 pour définir la table à mettre à jour
(prévoir aussi le champs s'il change par exemple :refadhérent -->
refbénévole) ainsi que les labels.

Ca pourrait donner quelque chose du genre :
Private Sub TransposerElement(lstSource As ListBox, lstDestination As
ListBox, _
                               Optional L imiteSelection As Boolean =
True, Optional bolSelection As Boolean = True)

Dim I As Integer
Dim db As DAO.Database
Set db = CurrentDb
Dim sql As String, NomTable as String
Select Case Me!Cadre8
        Case 1
                strMessage = "Adhérents de l'exercice en cours"
                lblMessage.Caption = strMessage
                NomTable=" tbl Adhérents"
        Case 2
                strMessage = "Bénévoles"
                lblMessage.Caption = strMessage
                NomTable=" tbl Bénévoles"
        ' …  Faire les autres cas
End Select

'---Execute une serie d'instruction pour le même objet

With lstSource
'--- S'il ne faut déplacer que les élements sélectionnés,
        If LimiteSelection Then
                For I = 0 To .ListCount - 1
                        If .Selected(I) Then ' 3
                                db.Execut e "UPDATE [" & NomTable &  _
               "] SET Selection=NOT Selection WHERE r éfAdhérent=" &  _
                .Column(0, I)
                        End If
                Next I
'--- Sinon, permutte la globalité
        Else
                db.Execute "UPDATE [" & NomTable & "] SET Selection=" &
CInt(bolSelection) 'passage 4 cbol select faux b4 vrai
        End If
'--- Rafraichit la zone de liste source
        .Requery

End With
' ...

--
A+
Erichttp://www.mpfa.info/
Archives :http://groups.google.fr/group/microsoft.public.fr.access?hl=f r



Bonjour Eric,

Merci pour ta réponse qui me convient.

A+

Salutations
1 2