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 23/09/2011, 08h18   #1
Invité régulier
 
Inscription : décembre 2007
Messages : 39
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 39
Points : 6
Points : 6
Par défaut VBA Access, Supprimer certain objets tels que des textbox, combobox etc. à la fermeture d'un formulaire

Bonjour,

Ça fait plusieurs jours...

Pendant l'utilisation de mon formulaire, je crée des objets et je garde leur nom dans une variable tableau globale...
Je voudrais pouvoir les supprimer à la fermeture de mon formulaire sous certaines conditions.
Le problème, que je dois passer en mode création (durant l’évènement de fermeture) et VB dit :
-erreur d'exécution 2174
-Impossible de passer à un autre mode pour le moment !

Mon code VBA est dans un module et j'ai aussi essayé avec un module de classe et je précise que je ne connait pas la différence.

Merci de m'aider.
courriervirtuel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/09/2011, 13h16   #2
Membre régulier
 
Inscription : février 2010
Messages : 100
Détails du profil
Informations forums :
Inscription : février 2010
Messages : 100
Points : 92
Points : 92
Bonjour bonjour,

En gros, tu as un code comme ça, c'est ça ?

Code :
1
2
3
4
5
6
 
Private Sub Form_Close()
     DoCmd.Close
     DoCmd.OpenForm NomDuForm, acDesign
     ...
End Sub
Pendant la fermeture du form, tu le fermes (... une deuxième fois ?), puis tu le rouvres. Pas sûr que ça puisse marcher comme ça.

Si c'est bien ça, je te suggère de :
- désactiver le bouton "fermer" du formulaire (la croix en haut à droite) ; tu devrais pouvoir trouver le code pour ça dans la FAQ, il me semble que je l'ai déjà vu.
- créer ton propre bouton que tu places en haut de ton form, bien en évidence, pour que l'utilisateur puisse le voir.
- Mettre ton code dedans, sur l'évènement "clic" :
Code :
1
2
3
4
5
6
7
8
DoCmd.Close
DoCmd.OpenForm NomDuForm, acDesign
'...
'...
'suppression des controles
'...
'...
DoCmd.Close 'fermeture définitive du formulaire
C'est une proposition à la volée, il y a peut-être mieux à faire, donc attends p-e d'autres avis...

Cordialement,
Beub'
Beub' est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 23/09/2011, 14h30   #3
Invité régulier
 
Inscription : décembre 2007
Messages : 39
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 39
Points : 6
Points : 6
Merci beaucoup pour ta réponse.

Mais le problème, c'est que mon formulaire a des barres coulissantes donc parfois, le boulon fermer, ne paraîtra pas !?
courriervirtuel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/09/2011, 16h02   #4
Membre régulier
 
Inscription : février 2010
Messages : 100
Détails du profil
Informations forums :
Inscription : février 2010
Messages : 100
Points : 92
Points : 92
Si ça pose un pb, tu peux toujours créer une barre de menu spécialement pour ce formulaire...
Mais bon, à moins que la barre de défilement soit vraiment immense, un coup de molette sur la souris et tu accèdes au bouton.
Beub' est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/09/2011, 16h46   #5
Invité régulier
 
Inscription : décembre 2007
Messages : 39
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 39
Points : 6
Points : 6
Merci pour la réponse.
Comment je peux créer rapidement une barre d'édition qui n'est pas à l'intérieur du formulaire ?
Oui, c'est vraiment gênant car la barre de défilement est grande.

Merci encore
courriervirtuel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/09/2011, 18h23   #6
Invité régulier
 
Inscription : décembre 2007
Messages : 39
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 39
Points : 6
Points : 6
Par défaut VBA Access - Supprimer dynamiquement des objets

Bonjour,

J'essaye de supprimer dynamiquement des objets pendant l'exécution en VBA sous Access, ça marche mais tout de suite après ça bug et Access redémarre !!
Quelqu'un saurait pourquoi ?
De plus, je n'arrive pas à supprimer des control lors de l'évènement de fermeture de mon formulaire (erreur propriété non définie)...

Merci de m'aider SVP !!
courriervirtuel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/09/2011, 19h58   #7
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 475
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 475
Points : 7 561
Points : 7 561
Citation:
des objets
Il y a une petite centaine d'objets en Access :-) des quels parles-tu ?

À quel moment les supprimes-tu ?

Où est le code (dans un module, une classe, un form ou un rapport) ?

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2011, 18h44   #8
Invité régulier
 
Inscription : décembre 2007
Messages : 39
Détails du profil
Informations forums :
Inscription : décembre 2007
Messages : 39
Points : 6
Points : 6
je veux supprimer des objets tels que des TextBox,
j'exécute le code lors de l’évènement de fermeture d'Access
et le code se trouve dans un module

Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
...
DoCmd.Close acForm, "MyForm", acSaveNo
 
    For Each vControl In Forms("MyForm").Controls
        If Left(vControl.Name, 1) = "_" Then
            DeleteControl "MyForm", vControl.Name
        Else
            i = i + 1
        End If
    Next vControl
...
courriervirtuel 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 20h23.


 
 
 
 
Partenaires

Hébergement Web