bean_bandit ha scritto:
OsvaldoLaviosa ha scritto:
Io ho capito che "Pippo" è il nome proprio della form. Nella sintassi DoCmd.OpenForm devi scrivere
DoCmd.OpenForm "Pippo"
oppure
VariabileForm1 = "Pippo"
DoCmd.OpenForm VariabileForm1
Sono contesti e sintassi diversi.
Senza parentesi? ho il codice scritto utilizzando (nomevariabile) e funziona, non è corretto perche?
Vorrei capire cosa c'entra il Metodo OpenForm con quello che hai chiesto...?
Tu chiedi un modo per RIFERIRTI ad un Oggetto passando dal Modello Oggetti Indicizzando per Nome sulla Collection Forms, e ti propongono di aprire una form...? Ti sei accorto che nulla ha a che fare con la domanda...?
Il modo Corretto per indirizzarsi su Oggetti o Proprietà sapendo il Nome è quello di accedere al Modello ad Oggetti
https://msdn.microsoft.com/en-us/vba/access-vba/articles/object-model-access-vba-reference
http://codevba.com/msaccess/objectmodeldiagram.xhtml#.WmZutTfSKUk
Appliaction.Forms(VariabileNomeForm) ' Riferimento alla Maschera
Appliaction.Reports(VariabileNomeReport)[/code]
Application puo essere Omesso dal VBA di Access in quanto il riferimento è IMPLICITO.
Per le Proprietà degli Oggetti(qualsiasi oggetto) si accede alla Collection Properties:
Forms(VariabileNomeForm).Properties(NomeProperty).Value ' riferimento alla Proprietà
Es.:
NomeProperty="Visible"
Forms(VariabileNomeForm).Properties(NomeProperty).Value ' Restituisce la proprietà Visible
Equivale a:
Forms(VariabileNomeForm).Visible
Stessa cosa dicasi per i Controlli, si accede alla Collection Controls, che è Membro dell'Oggetto Form o Report(anche altre ma lasciamo stare)
Appliaction.Forms(VariabileNomeForm).Controls(VariabileNomeControllo).Enabled
oppure
NomeProperty="Enabled"
Appliaction.Forms(VariabileNomeForm).Controls(VariabileNomeControllo).Properties(NomeProperty).Value