Bonjour à vous tous,

Je tente actuellement de faire mes débuts dans le monde VB/VBA et j'éprouve certaines difficultés. J'ai déjà fait quelques prog en Java et je tente de jouer avec les objets en VB. C'est très facile à faire en Java mais mes connaissances limités en VB m'empèche de progresser :-)

Alors voilà...

Je veux créer une instance d'un usager après avoir validé son existance dans une base de données et ensuite le récupérer dans un autre Module.

Voici le code que j'ai jusqu'à date.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
 
************  Module de Classe "cls_user"  **************
 
Private loc_Name As String
Private loc_group As String
 
Public Property Let Name(ByVal vData As String)
    loc_Name = vData
End Property
 
Public Property Get Name() As String
    Name = loc_Name
End Property
 
Public Property Let group(ByVal vData As String)
    loc_group = vData
End Property
 
Public Property Get group() As String
    group = loc_group
End Property
 
*************  Module Validate_User  ***************
 
Public Function ValidateUser() As cls_User
    On Error GoTo ErrorHandler
 
    Dim currentUser As String
    Dim conn As ADODB.Connection
    Dim rs As ADODB.Recordset
 
    ' Get the current logged user.
    currentUser = Environ("USERNAME")
 
    ' Validate if current user is listed in the database.
 
    Set conn = New ADODB.Connection
    Set rs = New ADODB.Recordset
 
    conn.Open "DSN=DbReflection", "grant", "access"
 
    rs.Open "SELECT userName FROM Users", conn
 
    Do While Not rs.EOF
        If rs.Fields("userName") = currentUser Then
            ' Create new Object user here
            Dim loc_user As New cls_User
            loc_user.Name = rs.Fields("userName")
            ValidateUser = loc_user
            Exit Do
        Else
            MsgBox "User """ & currentUser & """ does not have sufficent rights to access database"
            Exit Do
        End If
        rs.MoveNext
    Loop
 
    rs.Close
    conn.Close
 
    Set rs = Nothing
    Set conn = Nothing
 
    Exit Function
 
ErrorHandler:
    MsgBox Err.Description, vbExclamation + vbOKOnly
 
End Function
 
 
************  Module Main_Test_Page  **************
 
Public Sub Main()
    'Un certain code me permatent de valider l'utilisateur et d'ensuite récupérer l'objet créé dans la function Validate_User
 
    'Validate_User.ValidateUser
 
End Sub
J'obtient l'erreur suivante lorsque j'exécute le tout depuis le Module Main_Test_Page avec la commande suivante "Validate_User.ValidateUser" :

"Variable objet ou variable de bloc With non définie"

L'erreur se produit à la ligne "ValidateUser = loc_user" du Module "Validate_User"

Bien entendu, il est fort possible que je n'utilise pas la bonne manière d'effectuer cette opération, mais je capitalise sur ce que je connais (Java) :-)

Un petit coup de main serait fort aprécié.