Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Sécurité
Sécurité Le forum qui s'occupe de votre préoccupation de sécuriser l'accès à votre application Access, ainsi qu'à la sécurité des données.
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 28/04/2007, 00h23   #1
Nouveau Membre du Club
 
Inscription : septembre 2006
Messages : 182
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 182
Points : 32
Points : 32
Par défaut messages sécurity warning

Bonjour c'est encore moi

J' ai toujours comme surment nombre d'entre vous le message à l'ouverture d'access. (sécurity warning).

Ma base s'ouvre directement sur un formulaire de démarage et tout au long du travail sur cette base on ne voit pas la fenêtre Access.

Donc c'est un peu embêtant de voir apparaître cette fenêtre au début.

J'ai vu sur la Faq et le forum ce code :
Code :
1
2
3
4
5
6
7
Windows Registry Editor Version 5.00
 
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines]
"SandBoxMode"=dword:00000002
 
[HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Access\Security]
"Level"=dword:00000001
J'aimerais savoir comment l'integrer à la base pour qu'il s'applique automatiquement sans passer par le menu macro ...ect, la base sera utilisée sur plusieurs postes et je ne vais pas m'amuser à baisser la sécurité access sur tous les postes

Pour petre plus clair : dés la premiere ouverture la base ecrit dans le registre et l'utilisateur n'a rien à modifier.

Merci pour vos réponse.
froutloops62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/04/2007, 12h02   #2
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 941
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 941
Points : 6 283
Points : 6 283
Bonjour,

Tu peux écrire dans la base registre avec VBA en utilisant l'objet Shell de WScript.
Code vb :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Dim oSH As Object, regKey As String, regVal As Variant
 
' Crée l'objet Shell script
Set oSH = CreateObject("WScript.Shell")
 
'SandBox
regKey = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\SandBoxMode"
regVal = oSH.RegRead(regKey)
If regVal <> 2 Then
   oSH.RegWrite regKey, 2, "REG_DWORD"
End If
 
'Security Level
regKey = "HKEY_CURRENT_USER\Software\Microsoft\Office\" & _
         Application.SysCmd(acSysCmdAccessVer) & _
         "\Access\Security\Level"
regVal = oSH.RegRead(regKey)
If regVal <> 1 Then
   oSH.RegWrite regKey, 1, "REG_DWORD"
End If
A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2007, 01h56   #3
Nouveau Membre du Club
 
Inscription : septembre 2006
Messages : 182
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 182
Points : 32
Points : 32
je mets ce code sur un evenement particuler du formulaire de démarrage ou sur une macro autoexec.
froutloops62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/04/2007, 11h24   #4
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 941
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 941
Points : 6 283
Points : 6 283
Bonjour,

Les deux options sont valables.
De toutes façons la première fois que la base sera ouverte sur un poste il y aura les deux warnings.

Sinon pour un formulaire : évènement Form_Open (Ouverture)

A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2007, 00h40   #5
Nouveau Membre du Club
 
Inscription : septembre 2006
Messages : 182
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 182
Points : 32
Points : 32
j'y arrive pas. J'explique ma façon je suis débutant.

sur mon form de démarrage sur évenement ouverture je fais ça :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Private Sub Form_Open(Cancel As Integer)
'Ici je récupère les valeurs X et Y d'origine de la résolution
'et je les "sauvegarde" dans mes variables Public
XOrigine = ResolX("resolution")
YOrigine = ResolY("resolution")
Dim oSH As Object, regKey As String, regVal As Variant
 
' Crée l'objet Shell script
Set oSH = CreateObject("WScript.Shell")
 
'SandBox
regKey = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\SandBoxMode"
regVal = oSH.RegRead(regKey)
If regVal <> 2 Then
   oSH.RegWrite regKey, 2, "REG_DWORD"
End If
 
'Security Level
regKey = "HKEY_CURRENT_USER\Software\Microsoft\Office\" & _
         Application.SysCmd(acSysCmdAccessVer) & _
         "\Access\Security\Level"
regVal = oSH.RegRead(regKey)
If regVal <> 1 Then
   oSH.RegWrite regKey, 1, "REG_DWORD"
End If
End Sub
Quant je redemarre la base j'ai les 3 messages qui s'affichent et la base reste bloquée sur la fenêtre access : pas de message d'erreur rien pas de form non plus.

2 eme façon je crée un module warning :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Option Compare Database
 
Dim oSH As Object, regKey As String, regVal As Variant
 
' Crée l'objet Shell script
Set oSH = CreateObject("WScript.Shell")
 
'SandBox
regKey = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\SandBoxMode"
regVal = oSH.RegRead(regKey)
If regVal <> 2 Then
   oSH.RegWrite regKey, 2, "REG_DWORD"
End If
 
'Security Level
regKey = "HKEY_CURRENT_USER\Software\Microsoft\Office\" & _
         Application.SysCmd(acSysCmdAccessVer) & _
         "\Access\Security\Level"
regVal = oSH.RegRead(regKey)
If regVal <> 1 Then
   oSH.RegWrite regKey, 1, "REG_DWORD"
End If
Et une macro
1-executer code
2-générateur d'expression
3-fonctions mabase
4-warning mais là il n'y a pas de fonction qui s'affiche dans nom de la fonction.


bref je m'en sors pas.
froutloops62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2007, 11h27   #6
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 941
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 941
Points : 6 283
Points : 6 283
Bonjour,

pour la première méthode:
Je n'ai pas d'explication. J'essairai mercredi au boulot sur Access 2003.

pour la deuxième méthode
Il faut mettre le code dans une fonction pour qu'elles soit visible dans les expressions.
Code vb :
1
2
3
Public Function Warning()
' ... tu colles le code ici ...
End Function
A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2007, 02h46   #7
Nouveau Membre du Club
 
Inscription : septembre 2006
Messages : 182
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 182
Points : 32
Points : 32
J'ai créé mon module Warning :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Public Function Warning()
Dim oSH As Object, regKey As String, regVal As Variant
 
' Crée l'objet Shell script
Set oSH = CreateObject("WScript.Shell")
 
'SandBox
regKey = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\SandBoxMode"
regVal = oSH.RegRead(regKey)
If regVal <> 2 Then
   oSH.RegWrite regKey, 2, "REG_DWORD"
End If
 
'Security Level
regKey = "HKEY_CURRENT_USER\Software\Microsoft\Office\" & _
         Application.SysCmd(acSysCmdAccessVer) & _
         "\Access\Security\Level"
regVal = oSH.RegRead(regKey)
If regVal <> 1 Then
   oSH.RegWrite regKey, 1, "REG_DWORD"
End If
End Function
Ensuite ma macro Autoexec

Exécuter code

Warning()

j'ai l'erreur : l'expression entrée comporte un nom de fonction introuvable.
froutloops62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2007, 11h52   #8
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 941
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Maintenance données produits
Secteur : Distribution

Informations forums :
Inscription : décembre 2005
Messages : 3 941
Points : 6 283
Points : 6 283
Bonjour,

je viens de tester sur un PC avec Access 2003.

L'entrée dans la base de regitre pour le niveau de sécurité est dans HKEY_LOCAL_MACHINE et non pas dans HKEY_CURRENT_USER.

Voila le code que j'ai testé :
Code vb :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Dim oSH As Object, regKey As String, regVal As Variant
' Crée l'objet Shell script
Set oSH = CreateObject("WScript.Shell")
'SandBox
regKey = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\SandBoxMode"
regVal = oSH.RegRead(regKey)
If regVal <> 2 Then
   oSH.RegWrite regKey, 2, "REG_DWORD"
End If
 
If Val(Application.SysCmd(acSysCmdAccessVer)) < 10 Then GoTo ENDSUB
 
'Security Level
regKey = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\" & _
       Application.SysCmd(acSysCmdAccessVer) & _
       "\Access\Security\Level"
regVal = oSH.RegRead(regKey)
If regVal <> 1 Then
   oSH.RegWrite regKey, 1, "REG_DWORD"
End If
 
ENDSUB:
A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2007, 01h43   #9
Nouveau Membre du Club
 
Inscription : septembre 2006
Messages : 182
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 182
Points : 32
Points : 32
ça marche merci beaucoup par contre, il faut bien mettre :

Code :
1
2
3
"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\" & _
       Application.SysCmd(acSysCmdAccessVer) & _
       "\Access\Security\Level"
Encore merci à toi et à ce site
froutloops62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2010, 14h19   #10
Membre éclairé
 
Homme Pierre-Jean
Développeur informatique
Inscription : février 2010
Messages : 306
Détails du profil
Informations personnelles :
Nom : Homme Pierre-Jean
Âge : 31
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : février 2010
Messages : 306
Points : 330
Points : 330
Envoyer un message via MSN à paidge
Bonjour,
désolé de ressortir un vieux post mais quelqu'un peut-il me donner la valeur d'origine de ces deux clés :
Code :
1
2
3
4
5
6
 
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines]
"SandBoxMode"=dword:00000002
 
[HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Access\Security]
"Level"=dword:00000001
J'ai pas été malin car je les ai modifiées sans noter ou sauvegarder leurs anciennes valeurs. Du coup mon appli se lance directement sur le menu de démarrage et je ne peux plus modifier mes formulaires, etc.

EDIT : J'ai trouvé
Par défaut la première clé a pour valeur 3 au lieu de 2.
Et la 2ème n'existe pas.
paidge est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2010, 05h50   #11
Invité régulier
 
Jonathan
Inscription : décembre 2007
Messages : 4
Détails du profil
Informations personnelles :
Nom : Jonathan

Informations forums :
Inscription : décembre 2007
Messages : 4
Points : 5
Points : 5
Par défaut Utilisation d'un batchfile, command line de regedit et fonction Shell en vba

Je sais que ce message date de 2007, mais je voulais vous partager la technique que j'ai privilégié (après quelques heures de recherche !). Je voulais contourner l'avis de sécurité dans le runtime 2007.

J'ai créé 2 fichiers:

Fichier registre (AccessRuntime2007.reg).
Code :
1
2
3
4
5
6
7
Windows Registry Editor Version 5.00
 
[HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Access\Security]
"VBAWarnings"=dword:00000001
 
[HKEY_LOCAL_MACHINE\Software\Microsoft\Office\12.0\Access Connectivity Engine\Engines]
"SandboxMode"=dword:00000002
Fichier batchfile (AccessRuntime2007.bat)
Regedit peut fonctionner en command line ! (/s pour silencieux)
Code :
regedit /s c:\AccessRuntime2007.reg
Ensuite, dans Access, j'utilise la fonction Shell qui va exécuter le fichier AccessRuntime2007.bat silencieusement aussi).
Code :
Shell "c:\AccessRuntime2007.bat", vbHide
En espérant que cette technique sera vous épargner temps et mot de tête.

Jonathan
NuméroAuto est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h46.


 
 
 
 
Partenaires

Hébergement Web