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

!! Créer accés sécurisé application Access (identifiant+mot de passe) !!

19 réponses
Avatar
tony020422
Bonjour tout le monde,

J'ai crée une application sous Access 2007, et j'aimerais en sécuriser l'accés en demandant à l'ouverture de l'application, un identifiant et le mot de passe associé...

Je suppose donc qu'il faille donc créer une BDD contenant les différents comptes, qui a prori ne seront qu"aux nombres de 3 ou 4..

Le problème, c'est que je ne sais pas du tout comment faire !!

J'ai boen trouver des trucs par ici, mais je comprends pas tout!
http://support.microsoft.com/kb/179371/fr

Je pourrais ajouter un simple mot de passe au lancement, mais je voudrais faire un truc de plus sur et "professionnel"....mais du coup plus compliqué....

Je suis donc preneur de toutes idées!!

D'avance merci :)

10 réponses

1 2
Avatar
spiritspy
tony020422 a écrit le 08/08/2008 à 09h56 :
Bonjour tout le monde,

J'ai crée une application sous Access 2007, et j'aimerais en
sécuriser l'accés en demandant à l'ouverture de
l'application, un identifiant et le mot de passe associé...

Je suppose donc qu'il faille donc créer une BDD contenant les
différents comptes, qui a prori ne seront qu"aux nombres de 3 ou
4..

Le problème, c'est que je ne sais pas du tout comment faire !!

J'ai boen trouver des trucs par ici, mais je comprends pas tout!
http://support.microsoft.com/kb/179371/fr

Je pourrais ajouter un simple mot de passe au lancement, mais je voudrais faire
un truc de plus sur et "professionnel"....mais du coup plus
compliqué....

Je suis donc preneur de toutes idées!!

D'avance merci :)


Je te propose mon exemple, un formulaire (F_Entree) simple avec 2 champs indépendants Login et mot de passe. A l'appui de la touche de validation, [Procédure événementielle] suivante:

Private Sub Commande4_Click()

Me.Requery

Dim sql As String
Dim rs As DAO.Recordset
Static i As Byte

'Créé une chaine avec les valeurs des champs du formulaire
sql = "SELECT * FROM Table_Login WHERE Login = '" & Me.Login & "' AND PASWD ='" & Me.Motdepasse & "';"
Set rs = CurrentDb.OpenRecordset(sql)

' Vérifie la concordance pour ouvrir le formulaire FormulaireAOuvrir ou affiche Incorrect
If Not rs.EOF Then
DoCmd.OpenForm "FormulaireAOuvrir", acNormal, , , , acWindowNormal
DoCmd.Close acForm, "F_Entree"
User_id = rs("LOGIN").Value
User_droits = rs("DROITS").Value
Else
MsgBox "(Identifiant, Mot de Passe) incorrect ", vbInformation, "Connexion"
i = i + 1
End If
'Dépassement du nombre d'essais autorisés 3
If i = 3 Then
MsgBox "Vous avez dépassé le nombre de tentatives autorisés", vbCritical
DoCmd.Quit
End If

End Sub

Une table avec Login, MotdePasse et DROITS (pour les droits d'accès)

Dans un module User:

'Pour y avoir accès partout
Public User_droits As String
Public User_id As String

J'espère que ça va t'aider, j'ai jouer un peu pour le modifier, mais ça fonctionne bien. C'est ma première réponse sur ce forum, j'espère ne pas mal m'y prendre.
Avatar
tony020422
spiritspy a écrit le 11/08/2008 à 16h40 :
tony020422 a écrit le 08/08/2008 à 09h56 :
Bonjour tout le monde,

J'ai crée une application sous Access 2007, et j'aimerais en
sécuriser l'accés en demandant à l'ouverture de
l'application, un identifiant et le mot de passe associé...

Je suppose donc qu'il faille donc créer une BDD contenant les
différents comptes, qui a prori ne seront qu"aux nombres de 3 ou
4..

Le problème, c'est que je ne sais pas du tout comment faire !!

J'ai boen trouver des trucs par ici, mais je comprends pas tout!
http://support.microsoft.com/kb/179371/fr

Je pourrais ajouter un simple mot de passe au lancement, mais je voudrais
faire
un truc de plus sur et "professionnel"....mais du coup plus
compliqué....

Je suis donc preneur de toutes idées!!

D'avance merci :)



Je te propose mon exemple, un formulaire (F_Entree) simple avec 2 champs
indépendants Login et mot de passe. A l'appui de la touche de
validation, [Procédure événementielle] suivante:

Private Sub Commande4_Click()

Me.Requery

Dim sql As String
Dim rs As DAO.Recordset
Static i As Byte

'Créé une chaine avec les valeurs des champs du formulaire
sql = "SELECT * FROM Table_Login WHERE Login = '" & Me.Login
& "' AND PASWD ='" & Me.Motdepasse & "';"
Set rs = CurrentDb.OpenRecordset(sql)

' Vérifie la concordance pour ouvrir le formulaire FormulaireAOuvrir ou
affiche Incorrect
If Not rs.EOF Then
DoCmd.OpenForm "FormulaireAOuvrir", acNormal, , , , acWindowNormal
DoCmd.Close acForm, "F_Entree"
User_id = rs("LOGIN").Value
User_droits = rs("DROITS").Value
Else
MsgBox "(Identifiant, Mot de Passe) incorrect ", vbInformation,
"Connexion"
i = i + 1
End If
'Dépassement du nombre d'essais autorisés 3
If i = 3 Then
MsgBox "Vous avez dépassé le nombre de tentatives
autorisés", vbCritical
DoCmd.Quit
End If

End Sub

Une table avec Login, MotdePasse et DROITS (pour les droits d'accès)

Dans un module User:

'Pour y avoir accès partout
Public User_droits As String
Public User_id As String

J'espère que ça va t'aider, j'ai jouer un peu pour le modifier,
mais ça fonctionne bien. C'est ma première réponse sur ce
forum, j'espère ne pas mal m'y prendre.


Bonjour spiritspy, et bien déjà bienvenue sur GNT, et merci de m'apporter de ton aide!!

Pour tes explications c'est parfait..........sauf que je ne dois pas avoir le niveau (débutant inside ;-) )

Le code que tu m'as donné se met comme procédure évenementielle à l'activation du formulaire F_Entree ou du formulaire à ouvrir ?!

Pour les droits des différents utilisateurs pas besoin tout le monde pourra tout faire dessus...donc ce champs peut etre supprimer dans la table; d'ailleurs celle ci doit etre nommée "Table" c'est ca ?! comme écrit ici
"sql = "SELECT * FROM Table_Login WHERE Login = '" & Me.Login"

et doit contenir 2 champs: Login (avec les identifiant de chaque utilisateur) et MotdePasse (avec les mots de passe de chaque utilisateur) c'est bien ca ?


Enfin j'ai pas tout compris en ce qui concerne le module a crée...

Je te remercie de toute facon pour tout ce que tu as pu m'apporté comme info, ceci ayant été développé par tes soins, c'est d'autant plus sympa!!

En espérant ne pas etre trop reloud en attendant de tes réponses à (toutes) mes questions!

Bonne journée, et merci encore!
Avatar
spiritspy
tony020422 a écrit le 12/08/2008 à 09h07 :
spiritspy a écrit le 11/08/2008 à 16h40 :
tony020422 a écrit le 08/08/2008 à 09h56 :
Bonjour tout le monde,

J'ai crée une application sous Access 2007, et j'aimerais en
sécuriser l'accés en demandant à l'ouverture de
l'application, un identifiant et le mot de passe associé...

Je suppose donc qu'il faille donc créer une BDD contenant les
différents comptes, qui a prori ne seront qu"aux nombres de 3 ou
4..

Le problème, c'est que je ne sais pas du tout comment faire !!

J'ai boen trouver des trucs par ici, mais je comprends pas tout!
http://support.microsoft.com/kb/179371/fr

Je pourrais ajouter un simple mot de passe au lancement, mais je voudrais
faire
un truc de plus sur et "professionnel"....mais du coup plus
compliqué....

Je suis donc preneur de toutes idées!!

D'avance merci :)




Je te propose mon exemple, un formulaire (F_Entree) simple avec 2 champs
indépendants Login et mot de passe. A l'appui de la touche de
validation, [Procédure événementielle] suivante:

Private Sub Commande4_Click()

Me.Requery

Dim sql As String
Dim rs As DAO.Recordset
Static i As Byte

'Créé une chaine avec les valeurs des champs du formulaire
sql = "SELECT * FROM Table_Login WHERE Login = '" & Me.Login
& "' AND PASWD ='" & Me.Motdepasse & "';"
Set rs = CurrentDb.OpenRecordset(sql)

' Vérifie la concordance pour ouvrir le formulaire FormulaireAOuvrir ou
affiche Incorrect
If Not rs.EOF Then
DoCmd.OpenForm "FormulaireAOuvrir", acNormal, , , , acWindowNormal
DoCmd.Close acForm, "F_Entree"
User_id = rs("LOGIN").Value
User_droits = rs("DROITS").Value
Else
MsgBox "(Identifiant, Mot de Passe) incorrect ", vbInformation,
"Connexion"
i = i + 1
End If
'Dépassement du nombre d'essais autorisés 3
If i = 3 Then
MsgBox "Vous avez dépassé le nombre de tentatives
autorisés", vbCritical
DoCmd.Quit
End If

End Sub

Une table avec Login, MotdePasse et DROITS (pour les droits d'accès)

Dans un module User:

'Pour y avoir accès partout
Public User_droits As String
Public User_id As String

J'espère que ça va t'aider, j'ai jouer un peu pour le modifier,
mais ça fonctionne bien. C'est ma première réponse sur ce
forum, j'espère ne pas mal m'y prendre.



Bonjour spiritspy, et bien déjà bienvenue sur GNT, et merci de
m'apporter de ton aide!!

Pour tes explications c'est parfait..........sauf que je ne dois pas avoir le
niveau (débutant inside ;-) )

Le code que tu m'as donné se met comme procédure
évenementielle à l'activation du formulaire F_Entree ou du
formulaire à ouvrir ?!

Pour les droits des différents utilisateurs pas besoin tout le monde
pourra tout faire dessus...donc ce champs peut etre supprimer dans la table;
d'ailleurs celle ci doit etre nommée "Table" c'est ca ?! comme
écrit ici
"sql = "SELECT * FROM Table_Login WHERE Login = '" &
Me.Login"

et doit contenir 2 champs: Login (avec les identifiant de chaque utilisateur)
et MotdePasse (avec les mots de passe de chaque utilisateur) c'est bien ca ?


Enfin j'ai pas tout compris en ce qui concerne le module a crée...

Je te remercie de toute facon pour tout ce que tu as pu m'apporté comme
info, ceci ayant été développé par tes soins, c'est
d'autant plus sympa!!

En espérant ne pas etre trop reloud en attendant de tes réponses
à (toutes) mes questions!

Bonne journée, et merci encore!


Bonjour Tony020422,

Le formulaire concerné par mon code principal est dans un formulaire nommé "F_Entree" que je ferme par:
DoCmd.Close acForm, "F_Entree"
Pour éviter le retour sur les noms de connexions précédents.

La table contenant les Logins et Mots de passe est "Table_Login"

Pour le module:
En déclarant mes variables en Public, elles sont utilisables tout le temps que ta base est ouverte, donc, une fois déclarées dans le module "User", tu peux les vérifier dans un autre formulaire au besoin pour par exemple entrer un champs auto de l'utilisateur.
"User_id" pour l'identifiant de connexion = le login
"User_droits" pour les droits de l'utilisateur, que tu n'utilises pas apparement.

"FormulaireAOuvrir" est le formulaire que tu lance à la fermeture de "F_Entree" donc change juste les noms si ça te dérange, c'est juste un exemple.

J'espère t'avoir aidé, bon courage.
Avatar
tony020422
tony020422 a écrit le 08/08/2008 à 09h56 :
Bonjour tout le monde,

J'ai crée une application sous Access 2007, et j'aimerais en
sécuriser l'accés en demandant à l'ouverture de
l'application, un identifiant et le mot de passe associé...

Je suppose donc qu'il faille donc créer une BDD contenant les
différents comptes, qui a prori ne seront qu"aux nombres de 3 ou
4..

Le problème, c'est que je ne sais pas du tout comment faire !!

J'ai boen trouver des trucs par ici, mais je comprends pas tout!
http://support.microsoft.com/kb/179371/fr

Je pourrais ajouter un simple mot de passe au lancement, mais je voudrais faire
un truc de plus sur et "professionnel"....mais du coup plus
compliqué....

Je suis donc preneur de toutes idées!!

D'avance merci :)


re, déjà la ca fait plaisir!

Alors : j'ai réalisé une table "Table_Login" avec comme champs "Login" et "Motdepasse"
j'ai réalisé un formulaire F_Entree avec comme procédure évenementielle à l'activation:

Private Sub Commande0_Click()

Me.Requery

Dim sql As String
Dim rs As DAO.Recordset
Static i As Byte

sql = "SELECT * FROM Table_Login WHERE Login = '" & Me.Login & "' AND PASWD ='" & Me.Motdepasse & "';"
Set rs = CurrentDb.OpenRecordset(sql)

If Not rs.EOF Then
DoCmd.OpenForm "Formulaire PRESENTATION ACCESS", acNormal, , , , acWindowNormal
DoCmd.Close acForm, "F_Entree"
User_id = rs("LOGIN").Value
User_droits = rs("DROITS").Value
Else
MsgBox "(Identifiant, Mot de Passe) incorrect ", vbInformation, "Connexion"
i = i + 1
End If
'Dépassement du nombre d'essais autorisés 3
If i = 3 Then
MsgBox "Vous avez dépassé le nombre de tentatives autorisés", vbCritical
DoCmd.Quit
End If

End Sub


mais bizarrement je n'ai rien dans "A l'activation" dans les propriétés du formulaire, aprés avoir enregistrer ce code...comprends pas...

j'ai crée un module appelé "User" avec comme code
Public User_droits As String
Public User_id As String

Je ne sais pas pourquoi mais rien en se passe lorsque je lance mon application access, le formulaire "Formulaire PRESENTATION ACCESS" (celui que je voudrais sécuriser) étatn en autoexécution au lancement....

PS: je n'ai rien crée dans le formulaire F_entree (pas de zone de texte, rien) car je ne sais saurait avec quoi les gérer...
Je pense par ailleurs que le code que tu m'as donné doit aller dans la procédure évenementielle d'un bouton plutot que dans celle du formaulire mais bon.....

Enfin si tu veux tu peux mettre un exemple de ce que tu proposes sur les sites hebergerus
cijoint
imagehotel


Merci par avance pour tout !!!!!

antony
Avatar
spiritspy
tony020422 a écrit le 12/08/2008 à 09h58 :
tony020422 a écrit le 08/08/2008 à 09h56 :
Bonjour tout le monde,

J'ai crée une application sous Access 2007, et j'aimerais en
sécuriser l'accés en demandant à l'ouverture de
l'application, un identifiant et le mot de passe associé...

Je suppose donc qu'il faille donc créer une BDD contenant les
différents comptes, qui a prori ne seront qu"aux nombres de 3 ou
4..

Le problème, c'est que je ne sais pas du tout comment faire !!

J'ai boen trouver des trucs par ici, mais je comprends pas tout!
http://support.microsoft.com/kb/179371/fr

Je pourrais ajouter un simple mot de passe au lancement, mais je voudrais
faire
un truc de plus sur et "professionnel"....mais du coup plus
compliqué....

Je suis donc preneur de toutes idées!!

D'avance merci :)



re, déjà la ca fait plaisir!

Alors : j'ai réalisé une table "Table_Login" avec comme
champs "Login" et "Motdepasse"
j'ai réalisé un formulaire F_Entree avec comme procédure
évenementielle à l'activation:

Private Sub Commande0_Click()

Me.Requery

Dim sql As String
Dim rs As DAO.Recordset
Static i As Byte

sql = "SELECT * FROM Table_Login WHERE Login = '" & Me.Login
& "' AND PASWD ='" & Me.Motdepasse & "';"
Set rs = CurrentDb.OpenRecordset(sql)

If Not rs.EOF Then
DoCmd.OpenForm "Formulaire PRESENTATION ACCESS", acNormal, , , ,
acWindowNormal
DoCmd.Close acForm, "F_Entree"
User_id = rs("LOGIN").Value
User_droits = rs("DROITS").Value
Else
MsgBox "(Identifiant, Mot de Passe) incorrect ", vbInformation,
"Connexion"
i = i + 1
End If
'Dépassement du nombre d'essais autorisés 3
If i = 3 Then
MsgBox "Vous avez dépassé le nombre de tentatives
autorisés", vbCritical
DoCmd.Quit
End If

End Sub


mais bizarrement je n'ai rien dans "A l'activation" dans les
propriétés du formulaire, aprés avoir enregistrer ce
code...comprends pas...

j'ai crée un module appelé "User" avec comme code
Public User_droits As String
Public User_id As String

Je ne sais pas pourquoi mais rien en se passe lorsque je lance mon application
access, le formulaire "Formulaire PRESENTATION ACCESS" (celui que je
voudrais sécuriser) étatn en autoexécution au
lancement....

PS: je n'ai rien crée dans le formulaire F_entree (pas de zone de texte,
rien) car je ne sais saurait avec quoi les gérer...
Je pense par ailleurs que le code que tu m'as donné doit aller dans la
procédure évenementielle d'un bouton plutot que dans celle du
formaulire mais bon.....

Enfin si tu veux tu peux mettre un exemple de ce que tu proposes sur les sites
hebergerus
cijoint
imagehotel


Merci par avance pour tout !!!!!

antony


Alors tout d'abord, effectivement, ce code est dans "click" d'un bouton de validation appelé Commande0 d'où le:
Private Sub Commande0_Click()

Ensuite, désolé, mais c'est :
User_id = rs("Login").Value
' L majuscule et le reste en minuscule, la casse est importante en général

Tu n'as pas besoin de ça:
User_droits = rs("Droits").Value
'Tu ne gère pas les droits

Ni de ça:
Public User_droits As String
'Tu ne gère pas les droits

Et pour ne pas avoir de problème, j'évite les espaces et les accents dans les noms de table, formulaires et requêtes, je les commence par Table_ ou T_ , Form_ ou F_ ça permet de les identifier plus facilement en tant que tel.
Je ne peux pas mettre d'exemple sur un site .. cette base à des limites que je ne peux exposer ... dsl, sinon je dois tout modifier.

Par contre j'ai l'impression que des lignes sont tronquées par la présentation du site ... je marques les lignes tronquées, rétablies les :

sql = "SELECT .......... & Me.Motdepasse & "';"

DoCmd.OpenForm "Formu ......... Normal, , , , acWindowNormal

MsgBox "(Iden ........ mation,"Connexion"

MsgBox "Vous a ....... tatives autorisés", vbCritical

J'espère que c'est compréhensible les lignes sont dans l'ordre.

Dans le formulaire "F_Entree" il te faut 2 champs texte indépendants "Login" et "Motdepasse" qui seront vérifiés par le clic sur ce bouton Commande0

Je reste dispo, pour t'aider, car je connais l'importance d'un tel formulaire, mais un mot de passe sans protéger ta base de la touche Shift, est inutile ^^, on verra ça plus tard.
Avatar
tony020422
spiritspy a écrit le 12/08/2008 à 11h41 :
tony020422 a écrit le 12/08/2008 à 09h58 :
tony020422 a écrit le 08/08/2008 à 09h56 :
Bonjour tout le monde,

J'ai crée une application sous Access 2007, et j'aimerais en
sécuriser l'accés en demandant à l'ouverture de
l'application, un identifiant et le mot de passe associé...

Je suppose donc qu'il faille donc créer une BDD contenant les
différents comptes, qui a prori ne seront qu"aux nombres de 3 ou
4..

Le problème, c'est que je ne sais pas du tout comment faire !!

J'ai boen trouver des trucs par ici, mais je comprends pas tout!
http://support.microsoft.com/kb/179371/fr

Je pourrais ajouter un simple mot de passe au lancement, mais je voudrais
faire
un truc de plus sur et "professionnel"....mais du coup plus
compliqué....

Je suis donc preneur de toutes idées!!

D'avance merci :)




re, déjà la ca fait plaisir!

Alors : j'ai réalisé une table "Table_Login" avec
comme
champs "Login" et "Motdepasse"
j'ai réalisé un formulaire F_Entree avec comme procédure
évenementielle à l'activation:

Private Sub Commande0_Click()

Me.Requery

Dim sql As String
Dim rs As DAO.Recordset
Static i As Byte

sql = "SELECT * FROM Table_Login WHERE Login = '" & Me.Login
& "' AND PASWD ='" & Me.Motdepasse & "';"
Set rs = CurrentDb.OpenRecordset(sql)

If Not rs.EOF Then
DoCmd.OpenForm "Formulaire PRESENTATION ACCESS", acNormal, , , ,
acWindowNormal
DoCmd.Close acForm, "F_Entree"
User_id = rs("LOGIN").Value
User_droits = rs("DROITS").Value
Else
MsgBox "(Identifiant, Mot de Passe) incorrect ", vbInformation,
"Connexion"
i = i + 1
End If
'Dépassement du nombre d'essais autorisés 3
If i = 3 Then
MsgBox "Vous avez dépassé le nombre de tentatives
autorisés", vbCritical
DoCmd.Quit
End If

End Sub


mais bizarrement je n'ai rien dans "A l'activation" dans les
propriétés du formulaire, aprés avoir enregistrer ce
code...comprends pas...

j'ai crée un module appelé "User" avec comme code
Public User_droits As String
Public User_id As String

Je ne sais pas pourquoi mais rien en se passe lorsque je lance mon application
access, le formulaire "Formulaire PRESENTATION ACCESS" (celui que je
voudrais sécuriser) étatn en autoexécution au
lancement....

PS: je n'ai rien crée dans le formulaire F_entree (pas de zone de
texte,
rien) car je ne sais saurait avec quoi les gérer...
Je pense par ailleurs que le code que tu m'as donné doit aller dans la
procédure évenementielle d'un bouton plutot que dans celle du
formaulire mais bon.....

Enfin si tu veux tu peux mettre un exemple de ce que tu proposes sur les sites
hebergerus
cijoint
imagehotel


Merci par avance pour tout !!!!!

antony



Alors tout d'abord, effectivement, ce code est dans "click" d'un
bouton de validation appelé Commande0 d'où le:
Private Sub Commande0_Click()

Ensuite, désolé, mais c'est :
User_id = rs("Login").Value
' L majuscule et le reste en minuscule, la casse est importante en
général

Tu n'as pas besoin de ça:
User_droits = rs("Droits").Value
'Tu ne gère pas les droits

Ni de ça:
Public User_droits As String
'Tu ne gère pas les droits

Et pour ne pas avoir de problème, j'évite les espaces et les
accents dans les noms de table, formulaires et requêtes, je les commence
par Table_ ou T_ , Form_ ou F_ ça permet de les identifier plus
facilement en tant que tel.
Je ne peux pas mettre d'exemple sur un site .. cette base à des limites
que je ne peux exposer ... dsl, sinon je dois tout modifier.

Par contre j'ai l'impression que des lignes sont tronquées par la
présentation du site ... je marques les lignes tronquées,
rétablies les :

sql = "SELECT .......... & Me.Motdepasse & "';"

DoCmd.OpenForm "Formu ......... Normal, , , , acWindowNormal

MsgBox "(Iden ........ mation,"Connexion"

MsgBox "Vous a ....... tatives autorisés", vbCritical

J'espère que c'est compréhensible les lignes sont dans l'ordre.

Dans le formulaire "F_Entree" il te faut 2 champs texte
indépendants "Login" et "Motdepasse" qui seront
vérifiés par le clic sur ce bouton Commande0

Je reste dispo, pour t'aider, car je connais l'importance d'un tel formulaire,
mais un mot de passe sans protéger ta base de la touche Shift, est
inutile ^^, on verra ça plus tard.


Re,
alors j'ai essayé tout ce que tu m'as dit, j'ai crée 2 zones de texte dans F-Entree appelées "Login" et "Motdepasse", et un bouton "valider" contenant tout le code comme procédure évenementielle dans "sur clik"...

J'ai également enlevé le module..


résultat: une erreur apparait que je tape qqch ou non dans les zones de texte de mon formulaire.
Le mess est: " Erreur d'exécution 3061 , trop peu de paramètres. 1 attendu "

et d'aprés le débogueur l'erreur viendrait de la : Set rs = CurrentDb.OpenRecordset(sql)

Merci !!
Avatar
spiritspy
tony020422 a écrit le 08/08/2008 à 09h56 :
Bonjour tout le monde,

J'ai crée une application sous Access 2007, et j'aimerais en
sécuriser l'accés en demandant à l'ouverture de
l'application, un identifiant et le mot de passe associé...

Je suppose donc qu'il faille donc créer une BDD contenant les
différents comptes, qui a prori ne seront qu"aux nombres de 3 ou
4..

Le problème, c'est que je ne sais pas du tout comment faire !!

J'ai boen trouver des trucs par ici, mais je comprends pas tout!
http://support.microsoft.com/kb/179371/fr

Je pourrais ajouter un simple mot de passe au lancement, mais je voudrais faire
un truc de plus sur et "professionnel"....mais du coup plus
compliqué....

Je suis donc preneur de toutes idées!!

D'avance merci :)


Je te mâche un petit peu le truc, module effacé tu perds une variable, j'ai changé ça
Change le nom de ton formulaire, les "espaces c'est pas top, garde toujours la même écriture, c'est une habitude à prendre (je ne suis pas parfait mais c'est le début !!!).

Ton formulaire à ouvrir appelles le "Formulaire_Presentation_Access".
Les champs texte "Login" et "Motdepasse".
J'ai modifié ci-dessous, PSWD en Motdepasse, désolé, raté en transformant.
Et dans ta table "Table_Login" les champs "Login" et "Motdepasse", et bien sûr le num auto.
N'oublie pas de remettre les lignes entières comme je t'ai dit précédement.

Private Sub Commande0_Click()

Me.Requery

Dim User_id As String
Dim sql As String
Dim rs As DAO.Recordset
Static i As Byte

'Mise en mémoire pour vérif des login et mdp
sql = "SELECT * FROM Table_Login WHERE Login = '" & Me.Login & "' AND Motdepasse ='" & Me.Motdepasse & "';"
Set rs = CurrentDb.OpenRecordset(sql)

'comparaison pour ouvrir ton form et fermer celui d acces
If Not rs.EOF Then
DoCmd.OpenForm "Formulaire_Presentation_Access", acNormal, , , ,acWindowNormal
DoCmd.Close acForm, "F_Entree"
User_id = rs("Login").Value

'Message d'erreur si raté, max 3 fois
Else
MsgBox "(Identifiant, Mot de Passe) incorrect ", vbInformation,"Connexion"
i = i + 1
End If
'Dépassement du nombre d'essais autorisés 3
If i = 3 Then
MsgBox "Vous avez dépassé le nombre de tentatives
autorisés", vbCritical
DoCmd.Quit
End If

End Sub
Avatar
tony020422
spiritspy a écrit le 12/08/2008 à 14h20 :
tony020422 a écrit le 08/08/2008 à 09h56 :
Bonjour tout le monde,

J'ai crée une application sous Access 2007, et j'aimerais en
sécuriser l'accés en demandant à l'ouverture de
l'application, un identifiant et le mot de passe associé...

Je suppose donc qu'il faille donc créer une BDD contenant les
différents comptes, qui a prori ne seront qu"aux nombres de 3 ou
4..

Le problème, c'est que je ne sais pas du tout comment faire !!

J'ai boen trouver des trucs par ici, mais je comprends pas tout!
http://support.microsoft.com/kb/179371/fr

Je pourrais ajouter un simple mot de passe au lancement, mais je voudrais
faire
un truc de plus sur et "professionnel"....mais du coup plus
compliqué....

Je suis donc preneur de toutes idées!!

D'avance merci :)



Je te mâche un petit peu le truc, module effacé tu perds une
variable, j'ai changé ça
Change le nom de ton formulaire, les "espaces c'est pas top, garde
toujours la même écriture, c'est une habitude à prendre (je
ne suis pas parfait mais c'est le début !!!).

Ton formulaire à ouvrir appelles le
"Formulaire_Presentation_Access".
Les champs texte "Login" et "Motdepasse".
J'ai modifié ci-dessous, PSWD en Motdepasse, désolé,
raté en transformant.
Et dans ta table "Table_Login" les champs "Login" et
"Motdepasse", et bien sûr le num auto.
N'oublie pas de remettre les lignes entières comme je t'ai dit
précédement.

Private Sub Commande0_Click()

Me.Requery

Dim User_id As String
Dim sql As String
Dim rs As DAO.Recordset
Static i As Byte

'Mise en mémoire pour vérif des login et mdp
sql = "SELECT * FROM Table_Login WHERE Login = '" & Me.Login
& "' AND Motdepasse ='" & Me.Motdepasse & "';"
Set rs = CurrentDb.OpenRecordset(sql)

'comparaison pour ouvrir ton form et fermer celui d acces
If Not rs.EOF Then
DoCmd.OpenForm "Formulaire_Presentation_Access", acNormal, , ,
,acWindowNormal
DoCmd.Close acForm, "F_Entree"
User_id = rs("Login").Value

'Message d'erreur si raté, max 3 fois
Else
MsgBox "(Identifiant, Mot de Passe) incorrect ",
vbInformation,"Connexion"
i = i + 1
End If
'Dépassement du nombre d'essais autorisés 3
If i = 3 Then
MsgBox "Vous avez dépassé le nombre de tentatives
autorisés", vbCritical
DoCmd.Quit
End If

End Sub


Salut!!

Desole pour ce silence prolongé mais j'ai eu ces derniers jours un boulot de dingue!!!!!

J'ai pu m'y remettre ce matin et à tête reposée j'ai réussi a faire fonctionner le truc, c'est trop bien!!!! (en même temps tu m'avais pas mal maché le travail!)

Je te remercie vraiment pour ton aide, c'est super sympa et ca me rend vraiment service!!

Bonne continuation, et a bientot sur GNT ;-)
Avatar
tony020422
tony020422 a écrit le 14/08/2008 à 10h47 :
spiritspy a écrit le 12/08/2008 à 14h20 :
tony020422 a écrit le 08/08/2008 à 09h56 :
Bonjour tout le monde,

J'ai crée une application sous Access 2007, et j'aimerais en
sécuriser l'accés en demandant à l'ouverture de
l'application, un identifiant et le mot de passe associé...

Je suppose donc qu'il faille donc créer une BDD contenant les
différents comptes, qui a prori ne seront qu"aux nombres de 3 ou
4..

Le problème, c'est que je ne sais pas du tout comment faire !!

J'ai boen trouver des trucs par ici, mais je comprends pas tout!
http://support.microsoft.com/kb/179371/fr

Je pourrais ajouter un simple mot de passe au lancement, mais je voudrais
faire
un truc de plus sur et "professionnel"....mais du coup plus
compliqué....

Je suis donc preneur de toutes idées!!

D'avance merci :)




Je te mâche un petit peu le truc, module effacé tu perds une
variable, j'ai changé ça
Change le nom de ton formulaire, les "espaces c'est pas top, garde
toujours la même écriture, c'est une habitude à prendre
(je
ne suis pas parfait mais c'est le début !!!).

Ton formulaire à ouvrir appelles le
"Formulaire_Presentation_Access".
Les champs texte "Login" et "Motdepasse".
J'ai modifié ci-dessous, PSWD en Motdepasse, désolé,
raté en transformant.
Et dans ta table "Table_Login" les champs "Login" et
"Motdepasse", et bien sûr le num auto.
N'oublie pas de remettre les lignes entières comme je t'ai dit
précédement.

Private Sub Commande0_Click()

Me.Requery

Dim User_id As String
Dim sql As String
Dim rs As DAO.Recordset
Static i As Byte

'Mise en mémoire pour vérif des login et mdp
sql = "SELECT * FROM Table_Login WHERE Login = '" & Me.Login
& "' AND Motdepasse ='" & Me.Motdepasse & "';"
Set rs = CurrentDb.OpenRecordset(sql)

'comparaison pour ouvrir ton form et fermer celui d acces
If Not rs.EOF Then
DoCmd.OpenForm "Formulaire_Presentation_Access", acNormal, , ,
,acWindowNormal
DoCmd.Close acForm, "F_Entree"
User_id = rs("Login").Value

'Message d'erreur si raté, max 3 fois
Else
MsgBox "(Identifiant, Mot de Passe) incorrect ",
vbInformation,"Connexion"
i = i + 1
End If
'Dépassement du nombre d'essais autorisés 3
If i = 3 Then
MsgBox "Vous avez dépassé le nombre de tentatives
autorisés", vbCritical
DoCmd.Quit
End If

End Sub



Salut!!

Desole pour ce silence prolongé mais j'ai eu ces derniers jours un
boulot de dingue!!!!!

J'ai pu m'y remettre ce matin et à tête reposée j'ai
réussi a faire fonctionner le truc, c'est trop bien!!!! (en même
temps tu m'avais pas mal maché le travail!)

Je te remercie vraiment pour ton aide, c'est super sympa et ca me rend vraiment
service!!

Bonne continuation, et a bientot sur GNT ;-)


spiritspy, je viens de me rendre comtpe que tout fonctionne, mais qu'en allant dans mes formulaires, je peux ouvrir "Formulaire_Presentation_Access" en double cliquant dessus tout simplement !

Il faudrait en fait qu'aucun de mes formulaires/requetes/macros/modules ne puissent etre accessibles dés lors que l'identification a échoué ou n'a pas été faite préalablement..

Comment faire??!!

Merci par avance!!
Avatar
spiritspy
tony020422 a écrit le 14/08/2008 à 11h18 :
tony020422 a écrit le 14/08/2008 à 10h47 :
spiritspy a écrit le 12/08/2008 à 14h20 :
tony020422 a écrit le 08/08/2008 à 09h56 :
Bonjour tout le monde,

J'ai crée une application sous Access 2007, et j'aimerais en
sécuriser l'accés en demandant à l'ouverture de
l'application, un identifiant et le mot de passe associé...

Je suppose donc qu'il faille donc créer une BDD contenant les
différents comptes, qui a prori ne seront qu"aux nombres de 3 ou
4..

Le problème, c'est que je ne sais pas du tout comment faire !!

J'ai boen trouver des trucs par ici, mais je comprends pas tout!
http://support.microsoft.com/kb/179371/fr

Je pourrais ajouter un simple mot de passe au lancement, mais je voudrais
faire
un truc de plus sur et "professionnel"....mais du coup plus
compliqué....

Je suis donc preneur de toutes idées!!

D'avance merci :)





Je te mâche un petit peu le truc, module effacé tu perds une
variable, j'ai changé ça
Change le nom de ton formulaire, les "espaces c'est pas top, garde
toujours la même écriture, c'est une habitude à prendre
(je
ne suis pas parfait mais c'est le début !!!).

Ton formulaire à ouvrir appelles le
"Formulaire_Presentation_Access".
Les champs texte "Login" et "Motdepasse".
J'ai modifié ci-dessous, PSWD en Motdepasse, désolé,
raté en transformant.
Et dans ta table "Table_Login" les champs "Login" et
"Motdepasse", et bien sûr le num auto.
N'oublie pas de remettre les lignes entières comme je t'ai dit
précédement.

Private Sub Commande0_Click()

Me.Requery

Dim User_id As String
Dim sql As String
Dim rs As DAO.Recordset
Static i As Byte

'Mise en mémoire pour vérif des login et mdp
sql = "SELECT * FROM Table_Login WHERE Login = '" & Me.Login
& "' AND Motdepasse ='" & Me.Motdepasse &
"';"
Set rs = CurrentDb.OpenRecordset(sql)

'comparaison pour ouvrir ton form et fermer celui d acces
If Not rs.EOF Then
DoCmd.OpenForm "Formulaire_Presentation_Access", acNormal, , ,
,acWindowNormal
DoCmd.Close acForm, "F_Entree"
User_id = rs("Login").Value

'Message d'erreur si raté, max 3 fois
Else
MsgBox "(Identifiant, Mot de Passe) incorrect ",
vbInformation,"Connexion"
i = i + 1
End If
'Dépassement du nombre d'essais autorisés 3
If i = 3 Then
MsgBox "Vous avez dépassé le nombre de tentatives
autorisés", vbCritical
DoCmd.Quit
End If

End Sub




Salut!!

Desole pour ce silence prolongé mais j'ai eu ces derniers jours un
boulot de dingue!!!!!

J'ai pu m'y remettre ce matin et à tête reposée j'ai
réussi a faire fonctionner le truc, c'est trop bien!!!! (en même
temps tu m'avais pas mal maché le travail!)

Je te remercie vraiment pour ton aide, c'est super sympa et ca me rend
vraiment
service!!

Bonne continuation, et a bientot sur GNT ;-)



spiritspy, je viens de me rendre comtpe que tout fonctionne, mais qu'en allant
dans mes formulaires, je peux ouvrir "Formulaire_Presentation_Access"
en double cliquant dessus tout simplement !

Il faudrait en fait qu'aucun de mes formulaires/requetes/macros/modules ne
puissent etre accessibles dés lors que l'identification a
échoué ou n'a pas été faite préalablement..

Comment faire??!!

Merci par avance!!


Je me doutais que cette question arriverait ....

Il va falloir verrouiller les options d'affichage d'access dans ton formulaire.
Cette page est visible dans Options -> Démarrage MAIS
ATTENTION blocage d'accès.
Si tu décoche toutes les cases, en redémarrant ta base est protégé... bien sur avoir un raccourcit de lancement de ton formulaire F_Entrée pour le lancer mais ATTENTION blocage d'accès.
Il y a plusieurs méthodes pour le faire et surtout pour le déverrouiller.
1 - La verrouiller depuis ta base ouverte: problème tu ne pourras pas la réouvrir directement il te faudra créer une base avec un auto-exec pour désactiver la protection.
2 - Créer un formulaire accessible depuis un bouton caché qui lance la page d'options où un bouton lance ces options de démarrage. (Je ne sais pas si c'est clair !!!)

Personnellement j'ai utilisé la deuxième car ce second formulaire me permet de gérer les utilisateur en même temps, car je suis l'Admin.

Créé une macro "Propriété démarrage" --> Action: "Exécuter commande"
La "commande" en bas: "PropriétésDémarrage" ce qui ouvre cette fenêtre de propriétés.
Créé un bouton Affichage, par exemple et "sur click" sélectionne cette macro "Propriété démarrage"

Lorsque tu as bien en main le passage dans la fenêtre des propriétés, sélectionne le formulaire qui se lance au démarrage, le fameux F_Entree et décoche toutes les cases et quitte la base, en la relançant, les données sont invisibles, le bouton shift ne fait pas apparaitre ta base ... et même manip. à l'envers, recoche toutes les cases dans les propriété d'affichage pour les rendre visibles au prochain lancement.
Pour le "bouton caché", même manip que le sujet d'avant mais vers un autre formulaire, F_Admin par exemple si tu veux gérer les utilisateur en même temps ... c'est ce que j'ai fait.

Bon courage Tonyo, ça tourne tres bien sur mes bases (réutilisés, j'aime pas qu'on fouille dans mes bases ^^
1 2