Ridimensiona la forma nell'accesso MS cambiando dettaglio .Height
-
21-12-2019 - |
Domanda
Voglio che l'utente sia in grado di modificare l'altezza del modulo mentre è nella vista modulo facendo clic su un pulsante:
Private Sub btnChangeHeight_Click()
booTall = Not booTall
If booTall Then
lngHeight = 12400 ' (twips)
Else
lngHeight = 1200
End If
Me.Detail.Height = lngHeight
Me.Repaint
Debug.Print Me.Detail.Height
End Sub
.
Le modifiche all'altezza - Debug.Print
lo dice, e viene visualizzata una barra di scorrimento verticale quando booTall
è True
. Ma la forma non cambierà la sua dimensione verticale sullo schermo.
Ho anche provato questo, senza successo (assicurandosi che il mio pulsante fosse sull'intestazione del modulo):
Me.Detail.Visible = booTall
.
La soluzione sembrerebbe dipendere dalle proprietà per il modulo e la sezione del dettaglio della forma: ridimensionabile , altezza automatica , forse può crescere , ecc . Ma ho giocato con quelli e niente funziona.
Comprendo i comandi sovrapposti e altre cose possono prevenire le regolazioni dell'altezza, quindi ho ridotto il modulo a un layout minimo. Sto usando la versione di accesso 2007/2010.
Alcune informazioni aggiuntive: Quello che sto effettivamente lavorando è di due sottoscherme, (a) sopra e (b) sotto, che può essere crollato indipendentemente fuori vista o espanso. Questo è per un modulo decisionale con molti dati su di esso. Ho pensato che se ho collassato l'altezza di (a) o (b), la proprietà CanShrink
di Detail
causerebbe la modifica della dimensione complessiva del modulo. Infatti, penso di averlo fatto alcuni anni fa usando Access 2003. Per quanto riguarda l'utilizzo di Maximize ... stiamo configurando questo modulo come riutilizzabile, più istanze possono essere aperte.
Soluzione
"... Cambia l'altezza del modulo mentre è nella vista modulo facendo clic su un pulsante"
Utilizzare il metodo .Move
del modulo per modificare le dimensioni del modulo.Questo campione disattiva l'altezza del mio modulo tra 4044 e 8000 Twip.
Private Sub btnChangeHeight_Click()
Dim lngHeight As Long
If Me.WindowHeight = 4044 Then
lngHeight = 8000
Else
lngHeight = 4044
End If
Me.Move Me.WindowLeft, Height:=lngHeight
End Sub
. Altri suggerimenti
Ho avuto un problema simile e ho trovato che anche se ho nascosto i campi (controlli) Non volevo vedere l'altezza del dettaglio non si restringeva abbastanza.Ho trovato se ho spostato i controlli che volevo nascondermi (così impostato sia. Proprietà sconsigliabili e .top) quindi dettaglio. Il dettaglio si ridurrebbe a ciò che volevo.È come se fosse anche un accesso nascosto rifiutato di ignorare i controlli nascosti