Newsgroup: it.comp.appl.access
Titolo: Maschere e sottomaschere

Ho letto che se ne è parlato qualche thread fa e infatti ho proprio
preso spunto da lì...ma.
Il problema è il seguente: ho una maschera con 12 (dico 12)
sottomaschere, che vengono visualizzate ognuna tramite un bottone, che
contemporaneamente rende invisibili le altre... funziona tutto
benissimo, solo che quando richiamo questa maschera, ci impiega un bel
po' di tempo per caricarsi (so che è dovuto al caricamento di tutte le
sottomaschere)...
Roberto aveva parlato di cambiare le proprietà della sottomaschera ad
ogni click (control source, ecc,,) 
Solo che dopo alcune prove, ricerca di esempi e scorsa del Help sono
rimasto fermo...
Avrei bisogno di una dritta...
Grazie Max

 ha scritto nel messaggio
news:3b2fcd37...@News.CIS.DFN.DE...

Se hai creato 12 sottomaschere puoi provare a cambiare l'origine del
controllo sottomaschera impostandogli tu la sottomaschera che vuoi:
Es.
'--------------
Me![nomeComtrollosottomaschera].SourceObject = "sottomaschera2"
'--------------
Ciao.

 ha scritto nel messaggio news:3b2fcd37...@News.CIS.DFN.DE...

Anch' io ho il tuo stesso problema.
Attenderò la 'dritta' assieme a te.
Ti sarei grato se intanto mi indicassi il thread
con i consigli di Roberto a cui ti riferisci .
Grazie
--
Leo_duca


Prego
Max

 ha scritto nel messaggio
news:3b2fcd37...@News.CIS.DFN.DE...

Fermo restando ciò che ha scritto Sergio Mazza, visto che sono stato
chiamato in causa, ripropongo alcuni concetti su cui è basata la soluzione
che detti (non mi ricordo più a chi) qualche tempo fa.
Un controllo sottomaschera inserito in una maschera (nel tuo caso nella
maschera principale) puoi intenderlo come un contenitore che può contenere
un numero indefinito di sottomaschere (da zero a enne).
Un controllo sottomaschera ha, tra le altre, 3 proprietà: Oggetto origine,
Collega campi secondari e Collega campi master.
Fermo restando che è bene che leggi l'help circa queste tre proprietà, la
proprietà Oggetto origine contiene il nome della sottomaschera che vuoi
visualizzare nel controllo sottomaschera; per quanto riguarda le altre due
proprietà riporto qui di seguito un estratto dell'help:
=========================
È possibile utilizzare assieme le proprietà CollegaCampiSecondari e
CollegaCampiMaster per specificare il modo in cui Microsoft Access collega i
record di una maschera o di un report ai record di una sottomaschera, di un
sottoreport o di un oggetto incorporato, come un grafico. Se si impostano
tali proprietà, Microsoft Access aggiorna automaticamente i record correlati
della sottomaschera quando si passa a un nuovo record di una maschera
principale.
=========================
Inoltre un controllo sottomaschera, come tutti i controlli di una maschera,
ha anche le proprietà Sinistra, Da margine superiore, Larghezza ed Altezza.
Agendo con del codice VBA su queste quattro proprietà, cambierai il
posizionamento e le dimensioni del controllo sottomaschera. L'unità di
misura dei valori da impostare in queste 4 proprietà è il Twip, che equivale
a 1/1440 di pollice o se preferisci 1/567 di centimetro.
Ciò premesso, se l'unico controllo sottomaschera inserito nella maschera
principale si chiama Pippo; se vuoi posizionarlo 1 cm a sinistra e 3 cm in
basso rispetto il vertice in alto a sinistra della maschera principale; se
vuoi che sia alto 3 cm e largo 5 cm; se vuoi che contenga una form chiamata
Pluto; se il controllo della maschera principale che mette in sincronismo la
maschera con la sottomaschera Pluto di chiama Paperino; se il campo della
tabella che è origine record della form Pluto in base al quale deve esistere
il sincronismo tra maschera e sottomaschera si chiama Topolino; se vuoi
impostare le 7 proprietà del controllo Pippo pigiando un pulsante di
comando: a fronte dell'evento "Su clic" del pulsante di comando genera il
seguente codice VBA:
Me!Pippo.Left = 567
Me!Pippo.Top = 1701
Me!Pippo.Height = 1701
Me!Pippo.Width = 2835
Me!Pippo.SourceObject = "Pluto"
Me!Pippo.LinkChildFields = "Topolino"
Me!Pippo.LinkMasterFields = "Paperino"
Naturalmente se le dimensioni ed il posizionamento del controllo Pippo sono
quelli stabiliti nella struttura della maschera, non dovrai impostare le
relative proprietà.
A queto punto devi solo scegliere 12 eventi (ad esempio 12 eventi "Su clic"
di 12 pulsanti di comando) e generare altrettanti codici VBA, uno per ogni
form da visualizzare all'interno del controllo sottomaschera Pippo.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

Ciao.
Grazie sono riuscito a risolvere il problema e posto di seguito il
codice (semplicissimo tra l'altro)
Tramite un bottone chiamato "Aprisubfrm":
e il controllo sottomaschera chiamato "subfrm", la sottomaschera da
visualizzare "Sottomaschera" e il controllo per collegare i campi
master e secondari  "IDcontrollo"
Private Sub Aprisubfrm_Click()
Me![Subfrm].SourceObject = "Sottomaschera"
Me![Subfrm].LinkMasterFields = "IDcontrollo"
Me![Subfrm].LinkChildFields = "IDcontrollo"
End Sub
Naturalmente deve essere ripetuto per ogni sottomaschera
In più all'apertura della maschera si visualizza una sottomaschera
predefinita
Private Sub Form_Open(Cancel As Integer)
'in questo caso ha solo scopo estetico
Me![Subfrm].SourceObject = "Sottomascherainiziale"
End Sub
Sul mio db funziona tutto...
Spero di essere stato utile a qualcuno...
Max



NAturalmente la soluzione di Roberto è più completa...
Grazie
Max