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.

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top