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
3 Réponses :
Votre approche devrait em> travailler. Je mettais une liste déroulante nommée cbxsubform code> sur ma forme principale et ajouté une ligne de code à son
AfterupDate () code> gestionnaire d'événements ...
msgbox code> ou un
debug.print code> pour vérifier.) P> p>
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!
Ce peut être cette ligne qui vous trébuche:
strLoadTable = "Form." & Me.Combo_sf.Value
Dans cette ligne, il semble que le code tente de modifier la propriété Toutefois, < Code> SourceObject code> est une propriété d'un sous-formulaire Control em>, pas le formulaire contenu dans ce contrôle. Donc, si la commande de sous-formulaire est nommée sf_record em>, faites-le de cette façon. P> aussi, si la procédure après la mise à jour est exécutée de enfin, si sourceObject code> d'un objet code> objet code>.
[frm_mnu_manage Paramètres de configuration] code>, vous pouvez utiliser
me code> pour se référer au formulaire. P>
me.combo_sf. Valeur code> est le nom d'un formulaire, vous n'avez pas besoin de préfixer son nom avec "formulaire". Em>. Cela a fonctionné de toute façon dans mon test, mais je voudrais juste laisser tomber "forme". Em>. P>