Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Sécurité objet

5 réponses
Avatar
Cocobad
Bonjour,
J'ai des formulaires que j'ai sécurisé avec uniquement "ouverture autorisé"
et je ne veux pas que l'utisateur puisse voir le code et le modifier :
Dans un formulaire, j'ai un sous-formulaire vide auquel j'affecte une source
en passant par du code. Comme j'ai beaucoup de sous-forms qui n'ont pas
besoin d'être afficher simultanément, je les appelles donc à la demande.
En mode administrateur ça marche trés bien.
En mode utilisateur, j'ai le message "Vous n'avez pas l'autorisation
d'insérer ce formulaire dans un autre formulaire"

Il y a-t-il un moyen d'inserer ce(s) formulaire(s) sans donner des droits
administrateurs sur les forms ?
Ou de donner l'autorisation juste le temps du chargement du formulaire ?

Merci

5 réponses

Avatar
Luiz Cláudio C. V. Rocha [MVP]
Nice question.

What do you want to protect, main form's code or subform's code?

Luiz Cláudio C. V. Rocha
São Paulo - Brasil
http://br.thespoke.net/MyBlog/lccvr/MyBlog.aspx

"Cocobad" escreveu na mensagem
news:
Bonjour,
J'ai des formulaires que j'ai sécurisé avec uniquement "ouverture
autorisé"
et je ne veux pas que l'utisateur puisse voir le code et le modifier :
Dans un formulaire, j'ai un sous-formulaire vide auquel j'affecte une
source
en passant par du code. Comme j'ai beaucoup de sous-forms qui n'ont pas
besoin d'être afficher simultanément, je les appelles donc à la demande.
En mode administrateur ça marche trés bien.
En mode utilisateur, j'ai le message "Vous n'avez pas l'autorisation
d'insérer ce formulaire dans un autre formulaire"

Il y a-t-il un moyen d'inserer ce(s) formulaire(s) sans donner des droits
administrateurs sur les forms ?
Ou de donner l'autorisation juste le temps du chargement du formulaire ?

Merci



Avatar
Cocobad
Les deux, mais le problme vient de la forms principale.
L'erreur provient du changement d'attribut de l'objet sous-forms vierge
auquel j'attribut une source par code.

Si, au lieu d'un sous-forms vierge, je lie un sous-forms "normal" (nom +
champs pre / champ fils), le problme n'existe pas. Je peux scuriser
l'ensemble comme je veux.

=> Jusqu' prsent j'utilisai un forms principal avec des sous-forms dans des
onglets. Tous les forms avait la mme protection (ouverture autoris). Ca
fonctionne bien. L'inconvnient c'est que tous les forms sont chargs en mme
temps et en rseau c'est trs trs lent.
Pour contourner ce problme de lenteur, j'ai trouv cette solution d'appeller
uiniquement le sous-forms choisi.


Nice question.

What do you want to protect, main form's code or subform's code?

Luiz Cláudio C. V. Rocha
São Paulo - Brasil
http://br.thespoke.net/MyBlog/lccvr/MyBlog.aspx

"Cocobad" escreveu na mensagem
news:
Bonjour,
J'ai des formulaires que j'ai sécurisé avec uniquement "ouverture
autorisé"
et je ne veux pas que l'utisateur puisse voir le code et le modifier :
Dans un formulaire, j'ai un sous-formulaire vide auquel j'affecte une
source
en passant par du code. Comme j'ai beaucoup de sous-forms qui n'ont pas
besoin d'être afficher simultanément, je les appelles donc à la demande.
En mode administrateur ça marche trés bien.
En mode utilisateur, j'ai le message "Vous n'avez pas l'autorisation
d'insérer ce formulaire dans un autre formulaire"

Il y a-t-il un moyen d'inserer ce(s) formulaire(s) sans donner des droits
administrateurs sur les forms ?
Ou de donner l'autorisation juste le temps du chargement du formulaire ?

Merci








Avatar
Luiz Cláudio C. V. Rocha [MVP]
I can't see a way out.
Even if we found a code to set the permission, the user would not be able to
run it, since he would be giving himself access to the form structure.

"RunPermissions" property works only for queries, not for forms.

I believe you will have to change the security settings for the main form.
The code can be protected by a VBA Project password, which is hard to break.

Luiz Cláudio C. V. Rocha
São Paulo - Brasil

"Cocobad" escreveu na mensagem
news:
Les deux, mais le problme vient de la forms principale.
L'erreur provient du changement d'attribut de l'objet sous-forms vierge
auquel j'attribut une source par code.

Si, au lieu d'un sous-forms vierge, je lie un sous-forms "normal" (nom +
champs pre / champ fils), le problme n'existe pas. Je peux scuriser
l'ensemble comme je veux.

=> Jusqu' prsent j'utilisai un forms principal avec des sous-forms dans
des
onglets. Tous les forms avait la mme protection (ouverture autoris). Ca
fonctionne bien. L'inconvnient c'est que tous les forms sont chargs en mme
temps et en rseau c'est trs trs lent.
Pour contourner ce problme de lenteur, j'ai trouv cette solution
d'appeller
uiniquement le sous-forms choisi.


Nice question.

What do you want to protect, main form's code or subform's code?

Luiz Cláudio C. V. Rocha
São Paulo - Brasil
http://br.thespoke.net/MyBlog/lccvr/MyBlog.aspx

"Cocobad" escreveu na mensagem
news:
Bonjour,
J'ai des formulaires que j'ai sécurisé avec uniquement "ouverture
autorisé"
et je ne veux pas que l'utisateur puisse voir le code et le modifier :
Dans un formulaire, j'ai un sous-formulaire vide auquel j'affecte une
source
en passant par du code. Comme j'ai beaucoup de sous-forms qui n'ont pas
besoin d'être afficher simultanément, je les appelles donc à la
demande.
En mode administrateur ça marche trés bien.
En mode utilisateur, j'ai le message "Vous n'avez pas l'autorisation
d'insérer ce formulaire dans un autre formulaire"

Il y a-t-il un moyen d'inserer ce(s) formulaire(s) sans donner des
droits
administrateurs sur les forms ?
Ou de donner l'autorisation juste le temps du chargement du formulaire
?

Merci










Avatar
Cocobad
Je crois que j'ai réussi à contourner le probléme.

1- Je donne les droits de lectures sur mes forms.

2- J'enléve à l'utilisateur les boutons et les menus contextuels lui
permettant de passer en mode création.
=> En étant dans l'outil, même s'il a les droits, il ne peut pas lire ou
modifier les forms (code + structure).

3-Reste le probléme : L'utilisateur peut créer une nouvelle base (avec son
login et mot de passe de mon MDW) et peut importer les objets.
J'enléve donc à l'utilisateur le droit de créer des bases avec mon MDW avec
le code suivant :

Sub NoUserCreate()
Dim MyDb As Database, C As Container
Set MyDb = DBEngine(0).OpenDatabase("D:DiversMDWDroit_Accés_RH.mdw")
Set C = MyDb.Containers("databases")
C.UserName = "Users"
C.Permissions = C.Permissions And Not dbSecDBCreate
End Sub

Il faut que je fasses des tests supplémentaires, mais ça à l'air de
fonctionner.


Merci de t'être pencher sur mon probléme.

"Luiz Cláudio C. V. Rocha [MVP]" wrote:

I can't see a way out.
Even if we found a code to set the permission, the user would not be able to
run it, since he would be giving himself access to the form structure.

"RunPermissions" property works only for queries, not for forms.

I believe you will have to change the security settings for the main form.
The code can be protected by a VBA Project password, which is hard to break.

Luiz Cláudio C. V. Rocha
São Paulo - Brasil

"Cocobad" escreveu na mensagem
news:
Les deux, mais le problme vient de la forms principale.
L'erreur provient du changement d'attribut de l'objet sous-forms vierge
auquel j'attribut une source par code.

Si, au lieu d'un sous-forms vierge, je lie un sous-forms "normal" (nom +
champs pre / champ fils), le problme n'existe pas. Je peux scuriser
l'ensemble comme je veux.

=> Jusqu' prsent j'utilisai un forms principal avec des sous-forms dans
des
onglets. Tous les forms avait la mme protection (ouverture autoris). Ca
fonctionne bien. L'inconvnient c'est que tous les forms sont chargs en mme
temps et en rseau c'est trs trs lent.
Pour contourner ce problme de lenteur, j'ai trouv cette solution
d'appeller
uiniquement le sous-forms choisi.


Nice question.

What do you want to protect, main form's code or subform's code?

Luiz Cláudio C. V. Rocha
São Paulo - Brasil
http://br.thespoke.net/MyBlog/lccvr/MyBlog.aspx

"Cocobad" escreveu na mensagem
news:
Bonjour,
J'ai des formulaires que j'ai sécurisé avec uniquement "ouverture
autorisé"
et je ne veux pas que l'utisateur puisse voir le code et le modifier :
Dans un formulaire, j'ai un sous-formulaire vide auquel j'affecte une
source
en passant par du code. Comme j'ai beaucoup de sous-forms qui n'ont pas
besoin d'être afficher simultanément, je les appelles donc à la
demande.
En mode administrateur ça marche trés bien.
En mode utilisateur, j'ai le message "Vous n'avez pas l'autorisation
d'insérer ce formulaire dans un autre formulaire"

Il y a-t-il un moyen d'inserer ce(s) formulaire(s) sans donner des
droits
administrateurs sur les forms ?
Ou de donner l'autorisation juste le temps du chargement du formulaire
?

Merci















Avatar
Gafish
Bonjour,

Tu peux créer un mde sinon que tu donnes à tes utilisateurs, le code sera
protégé sans te créer les difficultés que tu cites.

Arnaud

"Cocobad" a écrit dans le message de
news:
Je crois que j'ai réussi à contourner le probléme.

1- Je donne les droits de lectures sur mes forms.

2- J'enléve à l'utilisateur les boutons et les menus contextuels lui
permettant de passer en mode création.
=> En étant dans l'outil, même s'il a les droits, il ne peut pas lire ou
modifier les forms (code + structure).

3-Reste le probléme : L'utilisateur peut créer une nouvelle base (avec son
login et mot de passe de mon MDW) et peut importer les objets.
J'enléve donc à l'utilisateur le droit de créer des bases avec mon MDW
avec
le code suivant :

Sub NoUserCreate()
Dim MyDb As Database, C As Container
Set MyDb = DBEngine(0).OpenDatabase("D:DiversMDWDroit_Accés_RH.mdw")
Set C = MyDb.Containers("databases")
C.UserName = "Users"
C.Permissions = C.Permissions And Not dbSecDBCreate
End Sub

Il faut que je fasses des tests supplémentaires, mais ça à l'air de
fonctionner.


Merci de t'être pencher sur mon probléme.

"Luiz Cláudio C. V. Rocha [MVP]" wrote:

I can't see a way out.
Even if we found a code to set the permission, the user would not be able
to
run it, since he would be giving himself access to the form structure.

"RunPermissions" property works only for queries, not for forms.

I believe you will have to change the security settings for the main
form.
The code can be protected by a VBA Project password, which is hard to
break.

Luiz Cláudio C. V. Rocha
São Paulo - Brasil

"Cocobad" escreveu na mensagem
news:
Les deux, mais le problme vient de la forms principale.
L'erreur provient du changement d'attribut de l'objet sous-forms vierge
auquel j'attribut une source par code.

Si, au lieu d'un sous-forms vierge, je lie un sous-forms "normal" (nom
+
champs pre / champ fils), le problme n'existe pas. Je peux scuriser
l'ensemble comme je veux.

=> Jusqu' prsent j'utilisai un forms principal avec des sous-forms dans
des
onglets. Tous les forms avait la mme protection (ouverture autoris). Ca
fonctionne bien. L'inconvnient c'est que tous les forms sont chargs en
mme
temps et en rseau c'est trs trs lent.
Pour contourner ce problme de lenteur, j'ai trouv cette solution
d'appeller
uiniquement le sous-forms choisi.


Nice question.

What do you want to protect, main form's code or subform's code?

Luiz Cláudio C. V. Rocha
São Paulo - Brasil
http://br.thespoke.net/MyBlog/lccvr/MyBlog.aspx

"Cocobad" escreveu na mensagem
news:
Bonjour,
J'ai des formulaires que j'ai sécurisé avec uniquement "ouverture
autorisé"
et je ne veux pas que l'utisateur puisse voir le code et le modifier
:
Dans un formulaire, j'ai un sous-formulaire vide auquel j'affecte
une
source
en passant par du code. Comme j'ai beaucoup de sous-forms qui n'ont
pas
besoin d'être afficher simultanément, je les appelles donc à la
demande.
En mode administrateur ça marche trés bien.
En mode utilisateur, j'ai le message "Vous n'avez pas l'autorisation
d'insérer ce formulaire dans un autre formulaire"

Il y a-t-il un moyen d'inserer ce(s) formulaire(s) sans donner des
droits
administrateurs sur les forms ?
Ou de donner l'autorisation juste le temps du chargement du
formulaire
?

Merci