OVH Cloud OVH Cloud

Méthode de remplissage avec AddItem

21 réponses
Avatar
Laurent Merlet
Bonjour à tous,

Je souhaiterai remplir ma listbox avec la méthode AddItem à partir d'un
recordset, voici comment je procède :

Set rs = CurrentDb.OpenRecordset("SELECT TblAppels.NumAppel,
TblAppels.DateAppel, TblAppels.Contact, TblAppels.TypeAppel,
TblAppels.DateTraitement, TblAppels.Destinataire FROM TblAppels WHERE
TblAppels.TypeEmetteur ='Client Sun Service SAS' and TblAppels.Traite = -1
and TblAppels.NumClient = " & VarNumClient & " ORDER BY TblAppels.DateAppel
")
rs.MoveFirst
Me.LstAppels.Clear
Do Until rs.EOF
Me.LstAppels.AddItem rs![NumAppel]
rs.MoveNext
Loop
rs.Close
Set rs = Nothing

Le problème est qu'au déboggage il ne me reconnait pas les propriétés .Clear
et .AddItem. Pourtant ces propriétés sont disponibles dans la bibliothèque
MSForms / ListBox /

D'avance merci

Laurent

Pour info je suis sous Access 2000 SP3

10 réponses

1 2 3
Avatar
Eric
Bonjour Laurent,

Ca fonctionne si tu ajoutes le controle ActiveX Microsoft Forms 2.0
ListBox (contrôles supplémentaires dans la boite à outils). Tu n'as pas
par complétude les propriétés Clear et AddItem mais en les saisissant
toi-même, ça ne pose pas de problème.
C'est assimilé à un ActiveX (nom par defaut CtlActiveX0 et dans l'onglet
Données, tu as sur les propriétés Application OLE : Microsoft Forms
2.0 et Classe Objet : Forms.ListBox.1

PS: Access 9.0.6926 SP-3 (Access 2000)

Bonjour à tous,

Je souhaiterai remplir ma listbox avec la méthode AddItem à partir d'un
recordset, voici comment je procède :

Set rs = CurrentDb.OpenRecordset("SELECT TblAppels.NumAppel,
TblAppels.DateAppel, TblAppels.Contact, TblAppels.TypeAppel,
TblAppels.DateTraitement, TblAppels.Destinataire FROM TblAppels WHERE
TblAppels.TypeEmetteur ='Client Sun Service SAS' and TblAppels.Traite = -1
and TblAppels.NumClient = " & VarNumClient & " ORDER BY TblAppels.DateAppel
")
rs.MoveFirst
Me.LstAppels.Clear
Do Until rs.EOF
Me.LstAppels.AddItem rs![NumAppel]
rs.MoveNext
Loop
rs.Close
Set rs = Nothing

Le problème est qu'au déboggage il ne me reconnait pas les propriétés .Clear
et .AddItem. Pourtant ces propriétés sont disponibles dans la bibliothèque
MSForms / ListBox /

D'avance merci

Laurent

Pour info je suis sous Access 2000 SP3




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

Avatar
Raymond [mvp]
Bonjour.

access 2000 ne gère pas les additem, seulement 2002 et 2003.
d'autre part indique directement ton recordset dans le contenu sans avoir à
ajouter de données.
Me.LstAppels.RowSource = "SELECT TblAppels.NumAppel FROM TblAppels WHERE ..
etc .... ;"

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://www.mpfa.info/ pour débuter sur le forum
Formez-vous en ligne grâce aux Webcasts Microsoft Technet :
http://www.microsoft.com/france/technet/seminaires/webcasts.mspx


"Laurent Merlet" a écrit dans le message de
news: 43885bb4$0$6644$
Bonjour à tous,

Je souhaiterai remplir ma listbox avec la méthode AddItem à partir d'un
recordset, voici comment je procède :

Set rs = CurrentDb.OpenRecordset("SELECT TblAppels.NumAppel,
TblAppels.DateAppel, TblAppels.Contact, TblAppels.TypeAppel,
TblAppels.DateTraitement, TblAppels.Destinataire FROM TblAppels WHERE
TblAppels.TypeEmetteur ='Client Sun Service SAS' and TblAppels.Traite = -1
and TblAppels.NumClient = " & VarNumClient & " ORDER BY
TblAppels.DateAppel
")
rs.MoveFirst
Me.LstAppels.Clear
Do Until rs.EOF
Me.LstAppels.AddItem rs![NumAppel]
rs.MoveNext
Loop
rs.Close
Set rs = Nothing

Le problème est qu'au déboggage il ne me reconnait pas les propriétés
.Clear
et .AddItem. Pourtant ces propriétés sont disponibles dans la bibliothèque
MSForms / ListBox /

D'avance merci

Laurent

Pour info je suis sous Access 2000 SP3




Avatar
Eric
.../...
Me suis mal exprimé, il faut que tu utilises le contôle ActiveX
Microsoft Forms 2.0 ListBox en lieu et place de la ListBox présente dans
la boite à outils.


--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Avatar
Laurent Merlet
Ok, c'est donc ce que j'ai fait. A priori ok, ça semble convenir. Au détail
près qu'il semblerait qu'il soit impossible de définir la police de
caractère de cette listbox ... est ce normal ?

"Eric" a écrit dans le message de
news:
.../...
Me suis mal exprimé, il faut que tu utilises le contôle ActiveX
Microsoft Forms 2.0 ListBox en lieu et place de la ListBox présente dans
la boite à outils.


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


Avatar
Eric
Bonjour Raymond,

Si on peut le faire mais en substituant la ListBox par défaut par le
contôle ActiveX Microsoft Forms 2.0 ListBox.

Et même la combinaison des 2 types est possible dans un même formulaire.

Ceci dit, Access ne gère pas la méthode AddItem sur la ListeBox fournie
en standard comme tu le signales.

Bonjour.

access 2000 ne gère pas les additem, seulement 2002 et 2003.
d'autre part indique directement ton recordset dans le contenu sans avoir à
ajouter de données.
Me.LstAppels.RowSource = "SELECT TblAppels.NumAppel FROM TblAppels WHERE ..
etc .... ;"



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

Avatar
Laurent Merlet
En fait c'est la manière que j'utilisais jusqu'à maintenant, sauf que je me
suis aperçu que cette méthode laissait des recordset ouvert sur la table à
partir du moment où le formulaire est ouvert. Et cela m'embetait car ça
provoquait des ralentissements lorsqu'un second utilisateur voulait accéder
à cette même table.
D'où j'ai décidé de changer de méthode et de remplir les listbox au
chargement du formulaire puis de relâcher les recordset ouverts.

Qu'en penses tu ?


"Raymond [mvp]" a écrit dans le message de
news:
Bonjour.

access 2000 ne gère pas les additem, seulement 2002 et 2003.
d'autre part indique directement ton recordset dans le contenu sans avoir
à

ajouter de données.
Me.LstAppels.RowSource = "SELECT TblAppels.NumAppel FROM TblAppels WHERE
..

etc .... ;"

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://www.mpfa.info/ pour débuter sur le forum
Formez-vous en ligne grâce aux Webcasts Microsoft Technet :
http://www.microsoft.com/france/technet/seminaires/webcasts.mspx


"Laurent Merlet" a écrit dans le message de
news: 43885bb4$0$6644$
Bonjour à tous,

Je souhaiterai remplir ma listbox avec la méthode AddItem à partir d'un
recordset, voici comment je procède :

Set rs = CurrentDb.OpenRecordset("SELECT TblAppels.NumAppel,
TblAppels.DateAppel, TblAppels.Contact, TblAppels.TypeAppel,
TblAppels.DateTraitement, TblAppels.Destinataire FROM TblAppels WHERE
TblAppels.TypeEmetteur ='Client Sun Service SAS' and TblAppels.Traite
= -1


and TblAppels.NumClient = " & VarNumClient & " ORDER BY
TblAppels.DateAppel
")
rs.MoveFirst
Me.LstAppels.Clear
Do Until rs.EOF
Me.LstAppels.AddItem rs![NumAppel]
rs.MoveNext
Loop
rs.Close
Set rs = Nothing

Le problème est qu'au déboggage il ne me reconnait pas les propriétés
.Clear
et .AddItem. Pourtant ces propriétés sont disponibles dans la
bibliothèque


MSForms / ListBox /

D'avance merci

Laurent

Pour info je suis sous Access 2000 SP3








Avatar
Eric
re,

Oui tu peux. Dans la procédure qui peuple ton ActiveX Microsoft Forms
2.0 ListBox, tu mets par exemple:
Me.LaListeForm2.FontName = "Verdana"
etc ... pour la taille


Ok, c'est donc ce que j'ai fait. A priori ok, ça semble convenir. Au détail
près qu'il semblerait qu'il soit impossible de définir la police de
caractère de cette listbox ... est ce normal ?

--

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

Avatar
Laurent Merlet
Justement, par rapport à ces propriétés, comment connaître celles qui sont
disponibles pour un activeX ?


"Eric" a écrit dans le message de
news:
re,

Oui tu peux. Dans la procédure qui peuple ton ActiveX Microsoft Forms
2.0 ListBox, tu mets par exemple:
Me.LaListeForm2.FontName = "Verdana"
etc ... pour la taille


Ok, c'est donc ce que j'ai fait. A priori ok, ça semble convenir. Au
détail


près qu'il semblerait qu'il soit impossible de définir la police de
caractère de cette listbox ... est ce normal ?

--

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



Avatar
Laurent Merlet
Par exemple, comment faire en sorte que lors de la commande AddItem on
puisse ajouter plusieurs colonnes ?
J'ai essayé un truc de ce genre là, mais pas bon :

Me.LstAppels.AddItem rs![NumAppel], rs![DateAppel]

Si tu as une idée ...

Merci


"Eric" a écrit dans le message de
news:
re,

Oui tu peux. Dans la procédure qui peuple ton ActiveX Microsoft Forms
2.0 ListBox, tu mets par exemple:
Me.LaListeForm2.FontName = "Verdana"
etc ... pour la taille


Ok, c'est donc ce que j'ai fait. A priori ok, ça semble convenir. Au
détail


près qu'il semblerait qu'il soit impossible de définir la police de
caractère de cette listbox ... est ce normal ?

--

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



Avatar
Raymond [mvp]
si c'est juste pour ça passe par la combobox standard et charge le rowsource
:
Dim RS As DAO.Recordset
Set RS = CurrentDb.OpenRecordset("SELECT TblAppels.NumAppel FROM TblAppels
WHERE ... etc ...
RS.MoveFirst
Me.LstAppels.RowSource = ""
Do Until RS.EOF
Me.LstAppels.RowSource = Me.LstAppels.RowSource & RS![NumAppel] & ";"
RS.MoveNext
Loop
RS.Close
Set RS = Nothing


--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://www.mpfa.info/ pour débuter sur le forum
Formez-vous en ligne grâce aux Webcasts Microsoft Technet :
http://www.microsoft.com/france/technet/seminaires/webcasts.mspx


"Laurent Merlet" a écrit dans le message de
news: 43886468$0$18335$
En fait c'est la manière que j'utilisais jusqu'à maintenant, sauf que je
me
suis aperçu que cette méthode laissait des recordset ouvert sur la table à
partir du moment où le formulaire est ouvert. Et cela m'embetait car ça
provoquait des ralentissements lorsqu'un second utilisateur voulait
accéder
à cette même table.
D'où j'ai décidé de changer de méthode et de remplir les listbox au
chargement du formulaire puis de relâcher les recordset ouverts.

Qu'en penses tu ?


"Raymond [mvp]" a écrit dans le message
de
news:
Bonjour.

access 2000 ne gère pas les additem, seulement 2002 et 2003.
d'autre part indique directement ton recordset dans le contenu sans avoir
à

ajouter de données.
Me.LstAppels.RowSource = "SELECT TblAppels.NumAppel FROM TblAppels WHERE
..

etc .... ;"

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://www.mpfa.info/ pour débuter sur le forum
Formez-vous en ligne grâce aux Webcasts Microsoft Technet :
http://www.microsoft.com/france/technet/seminaires/webcasts.mspx


"Laurent Merlet" a écrit dans le message de
news: 43885bb4$0$6644$
Bonjour à tous,

Je souhaiterai remplir ma listbox avec la méthode AddItem à partir d'un
recordset, voici comment je procède :

Set rs = CurrentDb.OpenRecordset("SELECT TblAppels.NumAppel,
TblAppels.DateAppel, TblAppels.Contact, TblAppels.TypeAppel,
TblAppels.DateTraitement, TblAppels.Destinataire FROM TblAppels WHERE
TblAppels.TypeEmetteur ='Client Sun Service SAS' and TblAppels.Traite
= -1


and TblAppels.NumClient = " & VarNumClient & " ORDER BY
TblAppels.DateAppel
")
rs.MoveFirst
Me.LstAppels.Clear
Do Until rs.EOF
Me.LstAppels.AddItem rs![NumAppel]
rs.MoveNext
Loop
rs.Close
Set rs = Nothing

Le problème est qu'au déboggage il ne me reconnait pas les propriétés
.Clear
et .AddItem. Pourtant ces propriétés sont disponibles dans la
bibliothèque


MSForms / ListBox /

D'avance merci

Laurent

Pour info je suis sous Access 2000 SP3












1 2 3