Bonjours a tous, voici mon problème:
J'ai une collection:
Dans cette collection je souhaite stocker des objets de type "Personnel" qui provienne d'une classe du même nom.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Dim TabUtils as Collection
Dans la logique de mon programme je doit tout d'abord ressortir par une requête la totalité du personnel et ensuite les stocker dans la collection.
Jusqu'a la tout va bien ...
J'ai créer une boucle dans laquelle je recupere les resultat de ma requete champs par champs pour les mettre dans mon objet provisoire.
Le problème intervient a la ligne:
A chaque fois que je rajoute un objet dans la collection, les autre qui y sont deja rentré prenne sa valeur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 TabUtils.Add UserProv, str2
du type:
Item1=UserProv
Item2=UserProv=Item1
Item3=UserProv=Item1=Item2
ect...
Merci par avance pour ce qui voudrons bien me proposer quelques solutions.
Ps: je suis un débutant VB
Voici le code "complet":
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 Private Sub ChargerUtils() 'Déclaration des variables locales Dim UserProv As New Personnel Dim i As Variant Dim str As Variant Dim str2 As Variant 'Instanciation de la connexion et du Recordset Set con = New Connection Set Rec = New Recordset Set TabUtils = New Collection 'definition du pilote de connexion con.Provider = "Microsoft.Jet.Oledb.4.0" 'renseignement de la base à laquelle on va se connecter con.ConnectionString = "D:\DataBase.mdb" 'Ouverture de la connexion con.Open i = 1 'execution de la requete Rec.Open "SELECT * FROM Personnel", con ' requete ok capturer error de ref non existante avec resume next 'Remplissage de la collection tant que le Recordset n'est pas au dernier champs Do While Rec.EOF = False str = "key" str2 = str & i On Error GoTo erreur With UserProv .Nom = Rec.Fields("Nom") .Prenom = Rec.Fields("Prénom") .PASSWORD = Rec.Fields("Password") .G1 = Rec.Fields("G1") .G2 = Rec.Fields("G2") .G3 = Rec.Fields("G3") .G4 = Rec.Fields("G4") .G5 = Rec.Fields("G5") .DROITS = Rec.Fields("Droits") End With 'Déplacement du curseur vers le prochain enregistrement Rec.MoveNext 'Ajout de l'objet Personnel courant dans la collection TabUtils.Add UserProv, str2 i = i + 1 Loop 'Fermeture des variables de connexion et Recordset Rec.Close con.Close Exit Sub erreur: MsgBox Err.Description End Sub
Partager