7
votes

Accéder à l'objet Source Subform

Ce que j'essaie d'atteindre est pour une sélection de boîte déroulante (COMBO_SF) pour dicter le formulaire dans la commande de sous-formulaire (SF_Record), j'ai environ 10 formulaires, leurs noms sont dans les données de la boîte déroulante. Je suis nouveau à VBA et je ne suis pas sûr que mon approche a raison:

Private Sub Combo_sf_AfterUpdate()
    Dim strLoadTable As String  

    strLoadTable = "Form." & Me.Combo_sf.Value
    MsgBox strLoadTable

    Forms![frm_Mnu_Manage Configuration Settings]!sf_record.Form.SourceObject = strLoadTable

End Sub


0 commentaires

3 Réponses :


5
votes

Votre approche devrait travailler. Je mettais une liste déroulante nommée cbxsubform sur ma forme principale et ajouté une ligne de code à son AfterupDate () gestionnaire d'événements ... xxx < p> ... et la modification de la sélection dans la liste déroulante commute immédiatement les sous-formes. Êtes-vous sûr que le code pour votre liste déroulante est en train de tirer? (Vous pouvez ajouter un msgbox ou un debug.print pour vérifier.)


1 commentaires

Merci, je pense que la question de mes macros n'a pas été allumée, mais cette information a été très utile merci pour toute votre aide!



4
votes

Ce peut être cette ligne qui vous trébuche:

strLoadTable = "Form." & Me.Combo_sf.Value


0 commentaires

4
votes

Dans cette ligne, il semble que le code tente de modifier la propriété sourceObject d'un objet objet . xxx

Toutefois, < Code> SourceObject est une propriété d'un sous-formulaire Control , pas le formulaire contenu dans ce contrôle. Donc, si la commande de sous-formulaire est nommée sf_record , faites-le de cette façon. xxx

aussi, si la procédure après la mise à jour est exécutée de [frm_mnu_manage Paramètres de configuration] , vous pouvez utiliser me pour se référer au formulaire. xxx

enfin, si me.combo_sf. Valeur est le nom d'un formulaire, vous n'avez pas besoin de préfixer son nom avec "formulaire". . Cela a fonctionné de toute façon dans mon test, mais je voudrais juste laisser tomber "forme". . xxx


0 commentaires