Ciao,
come ha evidenziato OsvaldoLaviosa la sintassi nella nelle macro è diversa e il mio esempio è chiaramente su routine evento per il codice VBA
Rimane valida e intatta la logica e se vuoi lavorare con le macro devi allora saper come scrivere i parametri in tal sistema.
per esempio il Me. che contiene loggetto sottostante dove il codice viene eseguito, lo devi sostituire, in questo caso, con il nome della Form etc…
quindi nella codizione where avrai una cosa di questo tipo , come ti hanno già suggerito:
[ID_Personale] = Forms![NomeForm]![ID_Personale] And [ID_Malattie] = Forms![NomeForm]![ID_Malattie]
Adesso sta a te impostare su Forms![NomeForm] il nome corretto della maschera e sottomaschera e ciò che ti segnalava OsvaldoLaviosa
Se sono utili qui trovi alcuni riferimento al linguaggio macro:
Azione di macro EseguiMacro - Supporto tecnico Microsoft
Creare una macro di interfaccia utente - Supporto tecnico Microsoft
Personalmente odio le Macro e penso di averci si e no lavorato mezza volta e mi sembra anticamente con la Autorun o una cosa del genere … no no no … le macro anche no! ;-)
Sempre in merito a quanto ti hanno già suggerito … sei sicuro di avere una sub form oppure hai semplicemente creato la Maschera Suddivisa ?
Edit:
ad ogni modo personalmente userei semplicemente la routine evento sul click del pulsante Stampa e in questo caso puoi seguire l'esempio che ti segnalavo. Ma se non conosci il linguaggio Vba posso capire che avrai qualche problema.
Personalmente, se posso , ti consiglio di andare verso il Vba e via via abbandonare l'interfacccia Macro. In generale ottieni molta più flessibilità e controllo del progetto che male non fa.