OVH Cloud OVH Cloud

Login

6 réponses
Avatar
Zoom61
Salut,

J'ai un module contenant le code suivant :
Dim g_site As String
Dim g_user As String
Dim g_password As String
Dim g_profil As String
Public Function get_user() As String
get_user = g_user
End Function
Public Function get_profil() As String
get_profil = g_profil
End Function
Public Function set_profil(profil As String) As Integer
g_profil = profil
End Function
Public Function get_password() As String
get_password = g_password
End Function
Public Function set_user(user As String) As Integer
g_user = user
End Function
Public Function set_password(password As String) As Integer
g_password = password
End Function
Public Function get_site() As String
get_site = g_site
End Function
Public Function set_site(site As String)
g_site = site
End Function

Puis j'ai fait un formulaire pour gérer des profils - Login + Password et un
bouton contenant le code suivant :
Private Sub CONNECT_Click()
Dim myDb As Database
Dim myUser As QueryDef
Dim oUser As Recordset
Dim i As Integer
i = set_user("")
i = set_site("")
i = set_profil("")
Set myDb = CurrentDb
Set myUser = myDb.QueryDefs("requete_user")
Set oUser = myUser.OpenRecordset()
If oUser.RecordCount < 1 Then
MsgBox ("Utilisateur non défini")
Exit Sub
Else
oUser.MoveFirst
If oUser![password] <> (Me.form_password) Then
MsgBox ("Mot de passe érroné")
Exit Sub
Else
End If
End If
oUser.Close
End Sub

Et cela bloque sur le code suivant : Set oUser = myUser.OpenRecordset()
L'erreur que j'ai est l'erreur d'execution 3061 ?????????

La requête est la suivante :
SELECT Count(tablef_profil.user) AS nb, tablef_profil.user,
tablef_profil.password, tablef_perimetre.site, tablef_profil.profil
FROM tablef_perimetre INNER JOIN tablef_profil ON tablef_perimetre.id_site =
tablef_profil.id_site
GROUP BY tablef_profil.user, tablef_profil.password, tablef_perimetre.site,
tablef_profil.profil
HAVING (((tablef_profil.user)=[r_user]));

Sachant que j'ai utilisé ce code dans une autre application, mais là cela ne
veut plus fonctionner et cela fait 2 heures que je cherche sans succès.

Quelqu'un connait-il la solution ?
D'avance merci.

6 réponses

Avatar
Raymond [mvp]
Bonjour.

l'erreur 3061 te dit que tu n'as pas envoyé les valeurs des paramètres
demandés : r_user
il faut les envoyer avant d'ouvrir ton recordset.
tu trouveras des exemples sur:
http://officesystem.access.free.fr/ex_requetes_vba.htm

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


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

Salut,

J'ai un module contenant le code suivant :
Dim g_site As String
Dim g_user As String
Dim g_password As String
Dim g_profil As String
Public Function get_user() As String
get_user = g_user
End Function
Public Function get_profil() As String
get_profil = g_profil
End Function
Public Function set_profil(profil As String) As Integer
g_profil = profil
End Function
Public Function get_password() As String
get_password = g_password
End Function
Public Function set_user(user As String) As Integer
g_user = user
End Function
Public Function set_password(password As String) As Integer
g_password = password
End Function
Public Function get_site() As String
get_site = g_site
End Function
Public Function set_site(site As String)
g_site = site
End Function

Puis j'ai fait un formulaire pour gérer des profils - Login + Password et
un
bouton contenant le code suivant :
Private Sub CONNECT_Click()
Dim myDb As Database
Dim myUser As QueryDef
Dim oUser As Recordset
Dim i As Integer
i = set_user("")
i = set_site("")
i = set_profil("")
Set myDb = CurrentDb
Set myUser = myDb.QueryDefs("requete_user")
Set oUser = myUser.OpenRecordset()
If oUser.RecordCount < 1 Then
MsgBox ("Utilisateur non défini")
Exit Sub
Else
oUser.MoveFirst
If oUser![password] <> (Me.form_password) Then
MsgBox ("Mot de passe érroné")
Exit Sub
Else
End If
End If
oUser.Close
End Sub

Et cela bloque sur le code suivant : Set oUser = myUser.OpenRecordset()
L'erreur que j'ai est l'erreur d'execution 3061 ?????????

La requête est la suivante :
SELECT Count(tablef_profil.user) AS nb, tablef_profil.user,
tablef_profil.password, tablef_perimetre.site, tablef_profil.profil
FROM tablef_perimetre INNER JOIN tablef_profil ON tablef_perimetre.id_site
tablef_profil.id_site
GROUP BY tablef_profil.user, tablef_profil.password,

tablef_perimetre.site,
tablef_profil.profil
HAVING (((tablef_profil.user)=[r_user]));

Sachant que j'ai utilisé ce code dans une autre application, mais là cela
ne
veut plus fonctionner et cela fait 2 heures que je cherche sans succès.

Quelqu'un connait-il la solution ?
D'avance merci.




Avatar
Zoom61
Salut,

J'ai regardé le lien que tu m'as envoyé, j'ai fait les modifications, mais
maintenant j'ai l'erreur 13 sur la même ligne :
Set oUser = myUser.OpenRecordset()

D'avance merci.
Avatar
Raymond [mvp]
c'est quel message ?

remplace :
Dim myDb As Database
Dim myUser As QueryDef
Dim oUser As Recordset
par
Dim myDb As DAO.Database
Dim myUser As DAO.QueryDef
Dim oUser As DAO.Recordset

vérifies que la référence à la librairie microsoft dao3.6 soit bien cochée.

affiche les 3 ou 4 lignes avant l'erreur.
--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


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

Salut,

J'ai regardé le lien que tu m'as envoyé, j'ai fait les modifications, mais
maintenant j'ai l'erreur 13 sur la même ligne :
Set oUser = myUser.OpenRecordset()

D'avance merci.


Avatar
Zoom61
Superbe, cela fonctionne.

Par contre, comment je peux garder dans une variable le user ???
Je pensais qu'avec ce que j'avais écris le user pouvait être rappeler avec
la fonction get_user(), mais lorsque je fais une requête qui fais un tri sur
le user : rien.

D'avance merci.
Avatar
Raymond [mvp]
tu as bien fait composer le user et le mot de passe pour vérifier; donc tu
dois bien avoir le user dans une variable ?

--
@+
Raymond Access MVP
http://OfficeSystem.Access.free.fr/
http://OfficeSystem.Access.free.fr/runtime/
http://users.skynet.be/mpfa/ pour débuter sur le forum


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

Superbe, cela fonctionne.

Par contre, comment je peux garder dans une variable le user ???
Je pensais qu'avec ce que j'avais écris le user pouvait être rappeler avec
la fonction get_user(), mais lorsque je fais une requête qui fais un tri
sur
le user : rien.

D'avance merci.


Avatar
Zoom61
Merci,
C'est moi qui avait oublié de saisir du code.
Encore merci.
@+.