Newsgroup: it.comp.appl.access
Titolo: Ridimensionare una sottomaschera

Ciao
ho una maschera che ne contiene altre tre.
Spiego una sottomaschera sola poi le altre due
sono uguali.
E' una sottomaschera visualizzazione maschera
continua che contiene solo etichette nell'intestazione,
solo caselle di testo nel corpo e caselle di testo
che mi fanno somme, conteggi e altro in piè di
sottomaschera .
Nella maschera ho altre caselle di testo che mi sommano
con =sum(forms!maschera!sottomaschera1!controllo) +
.......   il valore contenuto nelle caselle in piè di sottomasch
Al momento ho dimensionato le sottomaschere ad 1/3
della maschera. All'interno delle sottomascehre però ho
molto spazio inutile e volevo compattare il tutto.
Se compatto il tutto in visualizzazione struttura poi,
se aumentano i record della sottomaschera, compare
la barra di scorrimento verticale perchè non vedo tutti
i record. Volevo che se aumentavano i record della
sottomaschera questa si adattasse automaticamente
al numero di record.
Visto che tutto si può fare,qualcuno ha  mica idea d
i come si fàccia?
Ciao
TT

 ha scritto nel messaggio
news:egfhc.137333$Kc3.4...@twister2.libero.it...

Avevo inviato al sito comune un db di esempio sull'utilizzo del quarto
argomento del metodo MoveSize che fa proprio quello che dici tu.Ma non me lo
hanno pubblicato.Io ridimensionavo una Popup.
In attesa di una pubblicazione questo è il codice che ti puoi studiare ed
adattare.
Nel mio esempio da una frm principale frmDitte selezionavo una ditta e con
una qry da VBA mi estraevo i prodotti della ditta.
Dato che il n° dei prodotti è diverso a seconda della ditta il n° di record
da rappresentare nella popup è diverso.Intervenendo sul quarto argomento di
MoveSize
ridimensiono la popup.
intDitta è una variabile globale dichiarata in un modulo che mi serve per
fare la qry sulla popup  e la assegno dalla frmDitte.La base dati del db è
NorthWind.
SunRex
Option Compare Database
Option Explicit
'Dichiarazione della variabile per contare i record.
Dim intNumRec As Integer
'Dichiarazione della costante per l'altezza occupata
'dal singolo record nella maschera che ha la proprietà
'Visualizzazione Predefinita impostata a Maschere continue.
Const intAltezza As Integer = 400
Private Sub Form_Open(Cancel As Integer)
Dim strSQL As String
'Assegna alla caption della maschera il nome della ditta.
Me.Caption = "Prodotti associati alla ditta   " & strDitta
'Comando SQL per estrarre i record dei prodotti relativi alla ditta.
strSQL = "SELECT * FROM Prodotti WHERE IDFornitore = " & intDitta & ";"
Set db = CurrentDb
Set rsProdotti = db.OpenRecordset(strSQL)
'Non abbiamo bisogno di testare se il recordset contiene effettivamente
record
'perchè lo abbiamo fatto sull'evento doppio click della frmDitte quindi
siamo sicuri
'che il recordset conterrà almeno un record
'Andiamo al primo record e poi all'ultimo e.....
rsProdotti.MoveFirst
rsProdotti.MoveLast
'...con la propietà RecordCount ci contiamo i record
'e li assegnamo alla variabile locale IntNumRec
    intNumRec = rsProdotti.RecordCount
'Quindi con il metodo MoveSize regoliamo l'altezza della maschera.
'Per fare ciò impostiamo il quarto argomento del metodo MoveSize
'con il calcolo (intAltezza * intNumRec) + 800.
'intAltezza è l'altezza di un singolo record
'800 è l'altezza dell'intestazione della maschera e della barra del titolo.
    DoCmd.MoveSize 1440, 2400, , (intAltezza * intNumRec) + 800
'Assegnamo alla maschera il comando SQL.
Me.RecordSource = strSQL
'Chiudiamo l'rsProdotti.
rsProdotti.Close
Set rsProdotti = Nothing
End Sub

 ha scritto nel messaggio
news:XWnhc.115111$rM4.4...@news4.tin.it...

Ciao, grazie per la risposta.
Mi dispiace molto ma non ho acora provato.
Il codice è molto interessante. C'è un problema però
Partiamo dal fatto che la maschera è compressa, tutte le 3 sottomasch
sono una attaccata all'altra.
Questo ingrandisce una maschera. OK
Se io ingrandisco la prima devo spostare la seconda che sta sotto,
ingrandisco la seconda e devo spostare la terza e poi ingrandisco la terza.
La maschera principale credo si ingrandisca da sola, ma dammi la conferma
Come faccio a sapere dove posizionare la seconda e la terza?
supponendo che si faccia riferimento all'angolo superiore sx.
So che ci sono HWND o RECT ma non so come funzionano.
Grazie 1000
Ciao