OVH Cloud OVH Cloud

prob deverouillage module

15 réponses
Avatar
eric
j ai une base avec un module vba proteg=E9 par mot de passe
j ai un bouton qui verouille tous les champs et un autre=20
qui les deverouille=20
dans le style :
On Error Resume Next
For Each obj In [mon onglet].Controls
obj.Locked =3D True
Next
On Error GoTo Err_verrouiller
(le on error, c est parce que certains objets n(ont pas=20
la propri=E9t=E9 .locked)

quand le code vba est proteg=E9 par mot de passe, aucun=20
probleme
Par contre, des que j'accede au module vba (donc que je=20
met le mot de passe pour pouvoir y acceder), access ne=20
semble plus gerer les erreur (le on error resume next)
en effet quand je clique sur le bouton de verrouillage ou=20
de deverrouillage , j ai un message d erreur
erreur 438 "propriete ou methode non geree par cet objet"
si quelqu un a une idee merci .........

10 réponses

1 2
Avatar
Raymond
Bonjour.

je crois plutôt que la propriété que tu utilises pour un contrôle n'est pas
bonne et qu'il faudrait que tu l'utilises comme ceci:
On Error Resume Next
Dim ctl As Control
For Each ctl In Me.Page1.Controls
ctl.Locked = True
Next ctl

ou directement sur le contrôle onglet si tu n'as qu'une page:
On Error Resume Next
Dim ctl As Control
For Each ctl In Me.CtlTab1.Controls
ctl.Locked = True
Next ctl

--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"eric" a écrit dans le message de
news:04c601c36f2e$a6501230$
j ai une base avec un module vba protegé par mot de passe
j ai un bouton qui verouille tous les champs et un autre
qui les deverouille
dans le style :
On Error Resume Next
For Each obj In [mon onglet].Controls
obj.Locked = True
Next
On Error GoTo Err_verrouiller
(le on error, c est parce que certains objets n(ont pas
la propriété .locked)

quand le code vba est protegé par mot de passe, aucun
probleme
Par contre, des que j'accede au module vba (donc que je
met le mot de passe pour pouvoir y acceder), access ne
semble plus gerer les erreur (le on error resume next)
en effet quand je clique sur le bouton de verrouillage ou
de deverrouillage , j ai un message d erreur
erreur 438 "propriete ou methode non geree par cet objet"
si quelqu un a une idee merci .........
Avatar
eric
merci de ton aide, mais c'est pas ca
ma boucle for each ...... marche tres bien
c'est quelque chose d'autre qui se passe
ca a l'air de vennir de la gestion des erreurs lorsque le
module vba est deverouillé
par exemple dans une autre procedure
dans le code de gestion d'erreur j'ai mis
if err.number0 (pour l'exemple)
msgbox("coucou")
else
msgbox err.description
end if

et bien lorsque le module vba est verrouillé j ai bien
le message coucou si c'est l'erreur 100 et l'indication
de l'autre erreur sinon, puis poursuite du programme
Par contre quand le projet vba est deverouillé, meme en
erreur 100 j ai juste la boite standart access qui
m'annonce l'erreur et plus arret du programme









-----Message d'origine-----
Bonjour.

je crois plutôt que la propriété que tu utilises pour un
contrôle n'est pas

bonne et qu'il faudrait que tu l'utilises comme ceci:
On Error Resume Next
Dim ctl As Control
For Each ctl In Me.Page1.Controls
ctl.Locked = True
Next ctl

ou directement sur le contrôle onglet si tu n'as qu'une
page:

On Error Resume Next
Dim ctl As Control
For Each ctl In Me.CtlTab1.Controls
ctl.Locked = True
Next ctl

--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"eric" a écrit dans le message de
news:04c601c36f2e$a6501230$
j ai une base avec un module vba protegé par mot de passe
j ai un bouton qui verouille tous les champs et un autre
qui les deverouille
dans le style :
On Error Resume Next
For Each obj In [mon onglet].Controls
obj.Locked = True
Next
On Error GoTo Err_verrouiller
(le on error, c est parce que certains objets n(ont pas
la propriété .locked)

quand le code vba est protegé par mot de passe, aucun
probleme
Par contre, des que j'accede au module vba (donc que je
met le mot de passe pour pouvoir y acceder), access ne
semble plus gerer les erreur (le on error resume next)
en effet quand je clique sur le bouton de verrouillage ou
de deverrouillage , j ai un message d erreur
erreur 438 "propriete ou methode non geree par cet objet"
si quelqu un a une idee merci .........



.



Avatar
Raymond
je n'ai jamais eu l'occasion de voir ça. peut-être que d'autres l'ont vu.
tu peux créer une base d'essais avec le minimum et reproduire le phénomène ?
je voudrais bien voir.

--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"eric" a écrit dans le message de
news:004501c36fd6$a7547380$
merci de ton aide, mais c'est pas ca
ma boucle for each ...... marche tres bien
c'est quelque chose d'autre qui se passe
ca a l'air de vennir de la gestion des erreurs lorsque le
module vba est deverouillé
par exemple dans une autre procedure
dans le code de gestion d'erreur j'ai mis
if err.number0 (pour l'exemple)
msgbox("coucou")
else
msgbox err.description
end if

et bien lorsque le module vba est verrouillé j ai bien
le message coucou si c'est l'erreur 100 et l'indication
de l'autre erreur sinon, puis poursuite du programme
Par contre quand le projet vba est deverouillé, meme en
erreur 100 j ai juste la boite standart access qui
m'annonce l'erreur et plus arret du programme
Avatar
Pierre CFI
bonjour
je suis pas sur...
vérrouillé, tu ne passe pas en débuggage(si pas de gestion d'erreur) donc en mode vérrouillé il doit y avoir une autre gestion des
erreurs

--
Pierre CFI
MVP Microsoft Access

Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"eric" a écrit dans le message de news: 004501c36fd6$a7547380$
merci de ton aide, mais c'est pas ca
ma boucle for each ...... marche tres bien
c'est quelque chose d'autre qui se passe
ca a l'air de vennir de la gestion des erreurs lorsque le
module vba est deverouillé
par exemple dans une autre procedure
dans le code de gestion d'erreur j'ai mis
if err.number0 (pour l'exemple)
msgbox("coucou")
else
msgbox err.description
end if

et bien lorsque le module vba est verrouillé j ai bien
le message coucou si c'est l'erreur 100 et l'indication
de l'autre erreur sinon, puis poursuite du programme
Par contre quand le projet vba est deverouillé, meme en
erreur 100 j ai juste la boite standart access qui
m'annonce l'erreur et plus arret du programme









-----Message d'origine-----
Bonjour.

je crois plutôt que la propriété que tu utilises pour un
contrôle n'est pas

bonne et qu'il faudrait que tu l'utilises comme ceci:
On Error Resume Next
Dim ctl As Control
For Each ctl In Me.Page1.Controls
ctl.Locked = True
Next ctl

ou directement sur le contrôle onglet si tu n'as qu'une
page:

On Error Resume Next
Dim ctl As Control
For Each ctl In Me.CtlTab1.Controls
ctl.Locked = True
Next ctl

--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"eric" a écrit dans le message de
news:04c601c36f2e$a6501230$
j ai une base avec un module vba protegé par mot de passe
j ai un bouton qui verouille tous les champs et un autre
qui les deverouille
dans le style :
On Error Resume Next
For Each obj In [mon onglet].Controls
obj.Locked = True
Next
On Error GoTo Err_verrouiller
(le on error, c est parce que certains objets n(ont pas
la propriété .locked)

quand le code vba est protegé par mot de passe, aucun
probleme
Par contre, des que j'accede au module vba (donc que je
met le mot de passe pour pouvoir y acceder), access ne
semble plus gerer les erreur (le on error resume next)
en effet quand je clique sur le bouton de verrouillage ou
de deverrouillage , j ai un message d erreur
erreur 438 "propriete ou methode non geree par cet objet"
si quelqu un a une idee merci .........



.



Avatar
Raymond
Bonsoir Pierre.

Il y a un resume next en debut. Ce n'est pas parce qu'il y a le resume next
que l'erreur n'est pas trouvée mais elle n'est pas traitée standard et la
fonction continu.
je ne vois pas que le resume next soit ignoré. enfin , à voir . s'il peut
nous envoyer la base.

--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"Pierre CFI" a écrit dans le message de
news:%
bonjour
je suis pas sur...
vérrouillé, tu ne passe pas en débuggage(si pas de gestion d'erreur) donc
en mode vérrouillé il doit y avoir une autre gestion des

erreurs


Avatar
Pierre CFI
oui, mais le probléme, c'est la difference de comportement vérrouillé ou pas

--
Pierre CFI
Microsoft MVP Access

Pour mieux utiliser microsoft.public.fr.access...
http://users.skynet.be/mpfa/charte.htm

"Raymond" a écrit dans le message de news:

Bonsoir Pierre.

Il y a un resume next en debut. Ce n'est pas parce qu'il y a le resume
next

que l'erreur n'est pas trouvée mais elle n'est pas traitée standard et la
fonction continu.
je ne vois pas que le resume next soit ignoré. enfin , à voir . s'il peut
nous envoyer la base.

--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"Pierre CFI" a écrit dans le message de
news:%
bonjour
je suis pas sur...
vérrouillé, tu ne passe pas en débuggage(si pas de gestion d'erreur)
donc


en mode vérrouillé il doit y avoir une autre gestion des
erreurs





Avatar
Raymond
c'est bien ça qui m'étonne. ou alors il y a une dll incompatible ( gestion
d'erreurs ?) sur ce poste .

Y-a-t-il multi-version access sur ce poste ?
--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"Pierre CFI" a écrit dans le message de
news:e$
oui, mais le probléme, c'est la difference de comportement vérrouillé ou
pas


Avatar
eric
c'est simple
tu crée une nouvelle base
tu crée un formulaire form1
dans le formulaire tu met un controle onglet avec 2
pages : Page1 et Page2
dans Page1 tu met trois zone de texte avec leurs étiquette
sur l'evenement sur ouverture tu met le code ci-dessous

Private Sub Form_Open(Cancel As Integer)
' On Error Resume Next
' On Error GoTo Err_verrouiller
For Each obj In Page1.Controls
MsgBox obj.Name
obj.Locked = True
Next


MsgBox ("fin")

Exit_verrouiller:
Exit Sub

Err_verrouiller:
MsgBox ("gestion erreur")
MsgBox Err.Description
Resume Next

End Sub

attention activer un seul des deux on error (juste apres
le private sub)

Le but de cette procedure etant d'afficher le nom de
chaque controle de la page1 puis de verrouiller le
controle

Chez moi, (depuis quelque temps) la gestion d'erreur ne
fonctionne que si le module vba est verrouillé et protege
par mot de passe(le fait 1) de continuer a faire la
boucle sans rien dire meme si on tombe sur un objet ne
pouvant pas etre verouillé - l'etiquette - ou 2) le
fait d'afficher "gestion d'erreur " + la description de
l'erreur, et de continuer la boucle -- suivant le on
error choisi au debut--)




-----Message d'origine-----
je n'ai jamais eu l'occasion de voir ça. peut-être que
d'autres l'ont vu.

tu peux créer une base d'essais avec le minimum et
reproduire le phénomène ?

je voudrais bien voir.

--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"eric" a écrit dans le message de
news:004501c36fd6$a7547380$
merci de ton aide, mais c'est pas ca
ma boucle for each ...... marche tres bien
c'est quelque chose d'autre qui se passe
ca a l'air de vennir de la gestion des erreurs lorsque le
module vba est deverouillé
par exemple dans une autre procedure
dans le code de gestion d'erreur j'ai mis
if err.number0 (pour l'exemple)
msgbox("coucou")
else
msgbox err.description
end if

et bien lorsque le module vba est verrouillé j ai bien
le message coucou si c'est l'erreur 100 et l'indication
de l'autre erreur sinon, puis poursuite du programme
Par contre quand le projet vba est deverouillé, meme en
erreur 100 j ai juste la boite standart access qui
m'annonce l'erreur et plus arret du programme


.



Avatar
eric
j ai surrement touché a une des propriété d'access ou du
module vba parceque avant il me semble que la gestion
des erreurs fonctionnait bien sans avoir a proteger le
code vba



-----Message d'origine-----
je n'ai jamais eu l'occasion de voir ça. peut-être que
d'autres l'ont vu.

tu peux créer une base d'essais avec le minimum et
reproduire le phénomène ?

je voudrais bien voir.

--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"eric" a écrit dans le message de
news:004501c36fd6$a7547380$
merci de ton aide, mais c'est pas ca
ma boucle for each ...... marche tres bien
c'est quelque chose d'autre qui se passe
ca a l'air de vennir de la gestion des erreurs lorsque le
module vba est deverouillé
par exemple dans une autre procedure
dans le code de gestion d'erreur j'ai mis
if err.number0 (pour l'exemple)
msgbox("coucou")
else
msgbox err.description
end if

et bien lorsque le module vba est verrouillé j ai bien
le message coucou si c'est l'erreur 100 et l'indication
de l'autre erreur sinon, puis poursuite du programme
Par contre quand le projet vba est deverouillé, meme en
erreur 100 j ai juste la boite standart access qui
m'annonce l'erreur et plus arret du programme


.



Avatar
Raymond
C'est bien ce que j'ai fait quand je t'ai envoyé ma 1ere réponse et c'est
pour ça que j'ai continué sur la fonction elle-même. je vais recommencer
avec tes lignes exactes. après le repas, bien sûr pour être en pleine forme.
d'ici là, il y aura peut-être la réponse.

--
@+
Raymond Access MVP.
http://access.seneque.free.fr/
http://users.skynet.be/mpfa/charte.htm pour une meilleure
efficacité de tes interventions sur MPFA.


"eric" a écrit dans le message de
news:00ac01c36fdf$0fd82700$
c'est simple
tu crée une nouvelle base
tu crée un formulaire form1
dans le formulaire tu met un controle onglet avec 2
pages : Page1 et Page2
dans Page1 tu met trois zone de texte avec leurs étiquette
sur l'evenement sur ouverture tu met le code ci-dessous

Private Sub Form_Open(Cancel As Integer)
' On Error Resume Next
' On Error GoTo Err_verrouiller
For Each obj In Page1.Controls
MsgBox obj.Name
obj.Locked = True
Next


MsgBox ("fin")

Exit_verrouiller:
Exit Sub

Err_verrouiller:
MsgBox ("gestion erreur")
MsgBox Err.Description
Resume Next

End Sub

attention activer un seul des deux on error (juste apres
le private sub)

Le but de cette procedure etant d'afficher le nom de
chaque controle de la page1 puis de verrouiller le
controle

Chez moi, (depuis quelque temps) la gestion d'erreur ne
fonctionne que si le module vba est verrouillé et protege
par mot de passe(le fait 1) de continuer a faire la
boucle sans rien dire meme si on tombe sur un objet ne
pouvant pas etre verouillé - l'etiquette - ou 2) le
fait d'afficher "gestion d'erreur " + la description de
l'erreur, et de continuer la boucle -- suivant le on
error choisi au debut--)
1 2