Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
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 25/05/2011, 15h45   #1
Invité régulier
 
Inscription : septembre 2009
Messages : 41
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 41
Points : 6
Points : 6
Par défaut Suppression aléatoire de control

Bonjour,

Afin de générer dynamiquement un formulaire Access, j'utilise ce petit bout de code afin de supprimer tous les contrôles de type TextBox et remettre le bon nombre de contrôle.
Code :
1
2
3
4
5
6
7
Dim ctlControl
DoCmd.OpenForm "Gest_Stock_Vitrine", acDesign, , , , acHidden
For Each ctl In Forms!Gest_Stock_Vitrine.Controls
    If ctl.ControlType = acTextBox Then
        DeleteControl "Gest_Stock_Vitrine", ctl.Name
    End If
Next ctl
Mais je me rend compte, qu'il faut s'y prendre à plusieurs fois pour être sur de vider mon formulaire de ses seuls textbox. Le problème qui se pose par la suite, c'est que comme tous les contrôles ne sont pas retiré, je me retrouve avec des doublons lors de la regénération des textbox et cela me fait des erreurs me disant que le contrôle existe déjà.

Quelqu'un aurait il une idée pour me défaire de ce problème ?

Cdlt,
Rapheux
Rapheux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 17h09   #2
Membre Expert
 
Homme Robert JAMIN
Retraité
Inscription : juillet 2009
Messages : 1 223
Détails du profil
Informations personnelles :
Nom : Homme Robert JAMIN
Âge : 73
Localisation : Belgique

Informations professionnelles :
Activité : Retraité
Secteur : Enseignement

Informations forums :
Inscription : juillet 2009
Messages : 1 223
Points : 2 022
Points : 2 022
Bonjour,

Mettez un point d'arrêt à hauteur de la ligne 3 For each ....
Ensuite eb appuyant sur F8 vous exécuter la procédure pas à pas ce qui vous permet de contrôler le nombre de fois que la boucle est parcourue et savoir ainsi si tout les contrôles ont bien été testés.
En plaçant le pointeur sur Ctrl.Name vous verrez le nom du contrôle concerné à chaque boucle.
Il faut évidemment comprendre ensuite pourquoi il y a des ctrl qui échappent.
__________________
Cordialement.

RJ
rjamin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/05/2011, 14h03   #3
Invité régulier
 
Inscription : septembre 2009
Messages : 41
Détails du profil
Informations forums :
Inscription : septembre 2009
Messages : 41
Points : 6
Points : 6
Merci pour votre réponse, j'ai essayer de comprendre ce qui ce passe !

J'ai rajouter juste avant le
Code :
DeleteControl "Gest_Stock_Vitrine", ctl.Name
et là c'est le drame !

Je me rend compte qu'il ne prend qu'un control sur deux !

Control 1
Control 3
Control 5
Control 7
...

Rien de logique en ce là ! Si quelqu'un à une idée (pour l'instant) j'ai mis mon code dans une "boucle for" pour 5 passage et tous nettoyer mais c'est pas très propre et surtout ... sa ne donne pas d'explication au problème !
Rapheux 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 15h35.


 
 
 
 
Partenaires

Hébergement Web