Bonjour a tous,
Je ne suis pas vraiment expérimenté avec les modules de classe donc je me suis dis que vous pourriez m'aider.
Mon problème est donc le suivant :
J'ai crée un module de classe qui simule le fonctionnement d'une base de données très simples. Pour ce faire, j'ai intégré une collection dans le module de classe, et grâce à un suivi des clés de la collection, je peux simuler une mini base de données.
La complication vient du fait que j'ajoute des éléments différents dans la BDD, y compris des objets (par exemple l'objet ListBox d'un UserForm).
Une fois que l'objet a été ajouté avec la méthode Add, il est bien présent dans la collection du module de classe. Toutefois, je n'arrive pas à la renvoyer avec la méthode Item depuis le module de classe. La méthode Item que j'utilise est la suivante :
Comme vous pouvez le constater, j'utilise la ligne de code suivante :
Item = MyCollection.Item(Name)
qui n'est pas adaptée aux objets. Il faudrait donc utiliser:
Set Item = MyCollection.Item(Name)
Mais alors comment renvoyer un élément de la collection qui n'est pas un objet ?
Par ailleurs, je ne suis jamais arrivé à transmettre un objet ListBox à une procédure qui utilise une variable d'accueil de type Variant, donc je ne sais même pas s'il est possible de renvoyer un objet avec une fonction de type variant.
Merci à tous pour votre aide,
Youri
Je ne suis pas vraiment expérimenté avec les modules de classe donc je me suis dis que vous pourriez m'aider.
Mon problème est donc le suivant :
J'ai crée un module de classe qui simule le fonctionnement d'une base de données très simples. Pour ce faire, j'ai intégré une collection dans le module de classe, et grâce à un suivi des clés de la collection, je peux simuler une mini base de données.
La complication vient du fait que j'ajoute des éléments différents dans la BDD, y compris des objets (par exemple l'objet ListBox d'un UserForm).
Une fois que l'objet a été ajouté avec la méthode Add, il est bien présent dans la collection du module de classe. Toutefois, je n'arrive pas à la renvoyer avec la méthode Item depuis le module de classe. La méthode Item que j'utilise est la suivante :
Code:
Public Function Item(ByVal Name As String) As Variant
If Len(Name) = 0 Then
MsgBox alert5, alertbuttons, alertslabel
Exit Function
End If
If MyCollection.Count = 0 Then
MsgBox alert10, alertbuttons, alertslabel
Exit Function
End If
If Not ElementReferenced(Name) Then
MsgBox alert6, alertbuttons, alertslabel
Exit Function
End If
Item = MyCollection.Item(Name)
End Function
Comme vous pouvez le constater, j'utilise la ligne de code suivante :
Item = MyCollection.Item(Name)
qui n'est pas adaptée aux objets. Il faudrait donc utiliser:
Set Item = MyCollection.Item(Name)
Mais alors comment renvoyer un élément de la collection qui n'est pas un objet ?
Par ailleurs, je ne suis jamais arrivé à transmettre un objet ListBox à une procédure qui utilise une variable d'accueil de type Variant, donc je ne sais même pas s'il est possible de renvoyer un objet avec une fonction de type variant.
Merci à tous pour votre aide,
Youri