Bonjour,
Est-il possible de réaliser des classes qui hérites d'autres classes?
Si oui avez vous des exemple de code à me fournir merci ;)
Version imprimable
Bonjour,
Est-il possible de réaliser des classes qui hérites d'autres classes?
Si oui avez vous des exemple de code à me fournir merci ;)
bonjour,
le vba n'est pas un langage objet parce qu'il ne répond ni à la notion de polymorphisme, ni à celle d'héritage.
Toutefois, tu peux utiliser des structures de structure de données.
Voir le très bon article de Michel Blavin à ce sujet :
http://sinarf.developpez.com/access/vbaclass/
Bonjour,
Effectivement pas d'héritage, en revanche le polymorphisme est facile à mettre en oeuvre au moyen d'interface et d'implémentation d'interface (cf. mot-clé Implements).
Pour en savoir plus, il y a cette discussion:
Polymorphisme avec VBA: implémentation d'interface
Bonne journée !
_
Merci pour vos réponse, j'essaie de voir ce que cela donne avec le tuto et si d'autres personnes ont des idées ou des exemples de code n'hésitez pas ^^
J'ai résolu mon problème en faisant ceci:
- Je créer une classe "mère"
- Je créer un classe "fils" dans laquelle je créer une instance de la classe mère et je recréer chaque procédure en incluant l'appel à celle de la classe mère.
Ex:
méthode de la classe mère
Dans ma classe mèreCode:
1
2
3
4
5
6
7
8
9 Property Get CHARGER_TOUS() As RecordSet Dim Table As String Dim cmd As New ADODB.Command Dim ReturnValue As New ADODB.RecordSet cmd.CommandText = "MATABLE_CHARGER_TOUS" cmd.CommandType = adCmdStoredProc cmd.ActiveConnection = CurrentProject.Connection Set CHARGER_TOUS = cmd.Execute() End Property
Code:
1
2
3
4 Dim MaTableBase As New MaTableBase Property Get CHARGER_TOUS() As RecordSet Set CHARGER_TOUS = MaTableBase.CHARGER_TOUS End Property
Merci encore pour vos réponses ;)
Bonjour
La technique que tu as mise en œuvre n'est pas à proprement parler un "héritage".
Ici, ce que tu as mis en place, c'est de pouvoir, au travers de la fille, récupérer les valeurs d'une propriété de la mère (pas de mettre une propriété similaire à disposition de la fille)...
Il est, dans le cas que tu fournis ici, plus simple de mettre à disposition de la fille un objet Parent qui pointe vers la mère (c'est moins fastidieux que de répéter toutes les procédures)
Classe cFille
Classe cMereCode:
1
2
3
4
5
6
7
8
9 Private MParent As cMere Property Get Parent() As cMere Set Parent = MParent End Property Sub init(Parent As cMere) Set MParent = Parent End Sub
Utilisation des classesCode:
1
2
3
4
5
6
7
8
9 Private mNom As String Property Get Nom() As String Nom = mNom End Property Sub init(Nom As String) mNom = Nom End Sub
Si tu aimes la lecture, va voir mon tuto sur les classesCode:
1
2
3
4
5
6
7
8 Sub Test() Dim Mere As New cMere Dim Fille As New cFille Mere.init "Maman" Fille.init Mere MsgBox Fille.Parent.Nom End Sub