J'essaie de créer du code pour représenter un document de formulaire en utilisant VBA dans Word 2007. J'ai créé des classes pour représenter Section, QuestionSet et Question.VBA - Comment ajouter une collection à une collection de collections
J'ai donc 15 sections. J'ai créé une fonction pour créer chaque objet 'Section', l'ajoute à la collection 'Sections' puis détruis l'objet, le résultat étant que les objets restent persistants dans la collection (ou quelque chose).
Est-il possible d'utiliser la même méthode pour ajouter des collections à des collections ou devrais-je définir chaque collection de façon explicite?
code dans le module:
Public Sections As Collection
Function DefineSection(ByVal SectionName As String)
Set Section = New clsSection
Section.myName = SectionName
Sections.Add Section, SectionName
End Function
Function DefineQuestionSet(ByVal SectionName As String, ByVal Name As String, ByVal NoOfQuestions As Integer, ByVal IsMutuallyExclusive As Boolean, Optional ByVal DependentOnSection As String)
Dim Qsets As Collection
Set Qsets = New Collection
Set QuestionSet = New clsQuestionSet
QuestionSet.Name = Name
QuestionSet.NoOfQuestions = NoOfQuestions
QuestionSet.MutuallyExclusive = IsMutuallyExclusive
If Not (DependentOnSection) = "" Then
QuestionSet.DependentOnSection = DependentOnSection
End If
Qsets.Add QuestionSet
Sections.Item(SectionName).Add Qsets
End Function
Ensuite, on appelle cela via:
Sub Initilise()
Set Sections = New Collection
DefineSection "PersonalDetails"
DefineQuestionSet "PersonalDetails", "PersonalDetails", 29, False
End Sub
Malheureusement, j'ai changé le code pour l'instant, pour essayer de créer simplement des collections indépendantes - mais J'ai reçu une erreur de la ligne 'Sections.Item (SectionName) .Add Qsets' dans la fonction 'DefineQuestionSet'. – Stevo
Juste pour clarifier, le code ajoute les objets à la collection, puis détruit l'instance de l'objet, mais il reste persistant dans la collection, donc je n'ai pas besoin de garder une trace des objets. Est-ce la même chose pour les collections? créer la collection B, ajouter à la collection parent A, détruire la collection B, mais parce qu'il est ajouté à la collection A, il reste un «élément» dans la collection A. – Stevo
le message d'erreur est l'objet jamais énigmatique 'ne supporte pas cette propriété ou méthode ' – Stevo