Ribadisco che non si controlla se una SubForm è o meno aperta…!
Se serve si controlla se la Form Madre è aperta, l'oggetto SubForm è diverso dall'oggetto Form… e quando una maschera può avere più utilizzi serve differenziarli…
Deve essere aperta come Form e non come subForm…
Daccordo con voi ma a me serve solo per il requery della sottomaschera.
Mi spiego meglio. Ho una maschera “RicercaPolizza” che a sua volta ha una sottomaschera “LISTAPOLIZZARICERCA” .
Ora nella maschera “RicercaPolizza” c e una combobox per digitare il testo da ricercare nella sottomaschera “LISTAPOLIZZARICERCA” che a sua volta fa il requery.
Se apro la maschera “RicercaPolizza” fuori dalla maschera di spostamento deve fare questa requery della sottomaschera:
Forms!Ricerca_Polizza!LISTAPOLIZZARICERCA.Requery
se invece la stessa maschera la apro all'interno della maschera di spostamento deve fare questa requery:
[Forms]![menu]![SottomascheraSpostamento]![LISTAPOLIZZARICERCA].[Form].Requery
Ho questa funzione
Public Function Aperta(ByVal strMaschera As String) As Boolean
'Restituisce True se la Maschera è aperta
Aperta = False
If SysCmd(acSysCmdGetObjectState, acForm, strMaschera) <> 0 Then
If Forms(strMaschera).CurrentView <> 0 Then
Aperta = True
End If
End If
End Function
che richiamo con il comando
If Aperta("MENU") Then [Forms]![menu]![SottomascheraSpostamento]![LISTAPOLIZZARICERCA].[Form].Requery
If Aperta("ricerca_polizza") Then Forms!Ricerca_Polizza!LISTAPOLIZZARICERCA.Requery
e cosi funziona.
Il problema e che ("MENU") e il nome dalla maschera di spostamento che è comune a tutte le maschere collocate al suo interno.
Io dovrei modificare l indirizzo di puntamento. Cioè dirgli se e aperta la maschera “MENU” dove è presente la maschera “RicercaPolizza” fai questo requery:
[Forms]![menu]![SottomascheraSpostamento]![LISTAPOLIZZARICERCA].[Form].Requery
se è aperta la maschera “RicercaPolizza” al di fuori della maschera “MENU” allora fai questo requery:
Forms!Ricerca_Polizza!LISTAPOLIZZARICERCA.Requery
Scusatemi di nuovo del disturbo.
Grazie