Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [VBA] Chiusura sottomaschera

    Ciao a tutti, ho iniziato a rispolverare il VBA per un piccolo DB ACCESS. Il mio problema è il seguente.

    Ho una maschera principale che fa da "pannello".
    All'interno di questa maschera c'è una sottomaschera che contiene i dati di uan tabella (TAB1).
    All'interno della maschera TAB1 ci sono 2 sottomaschere TAB2 e TAB3.

    Tramite pulsanti, dalla maschera "pannello" riesco a nascondere le sottomaschere TAB2 e TAB3.
    Quello che vorrei fare invece è utilizzare il comando DoCmd.close per le maschere, per ottimizzare la memoria e non tenere tutte le maschere caricate contemporaneamente.

    Al momento il codice è il seguente:

    'Questo funziona
    Forms!SCHEDA_PANNELLO!TAB1!TAB2.Visible = False
    Forms!SCHEDA_PANNELLO!TAB1!TAB3.Visible = False

    'Queste istruzioni invece non funzionano e dovrebbero sostituire le due sopra
    DoCmd.Close acForm, "SCHEDA_PANNELLO!TAB1!TAB2", acSaveNo
    DoCmd.Close acForm, "SCHEDA_PANNELLO!TAB1!TAB3.Form.name", acSaveNo

    Non ricevo errori, ma non ho nemmeno la chiusura delle maschere.

    Ringrazio chiunque possa darmi una mano a capire.

    Ciao

  2. #2
    Nessun indizio su come risolvere queto problema?. La maschera "pannello" riesco a chiuderla con l'evento LOAD ma a me interessa poter chiudere le sototmaschere sottostanti alla sottomaschera TAB1,lasciando la maschera "pannello" e TAB1 visibili

  3. #3
    Temo che quello che vuoi fare tu non si possa applicare.
    Le sottomaschere (come i sottoreport) sono, a tutti gli effetti, controlli della maschera principale e quindi hanno tali caratteristiche, perdendo quelle di form.

    Quindi l'unico modo per chiuderle è chiudere la maschera principale (al pari di un bottone, di un'etichetta o di una casella di testo, per intenderci).

    L'unica cosa che puoi fare è eliminare il riferimento all'oggetto di origine per disaccoppiare il controllo dal form originante.

    codice:
    Forms!SCHEDA_PANNELLO!TAB1!TAB2.SourceObject = Empty
    Forms!SCHEDA_PANNELLO!TAB1!TAB3.SourceObject = Empty
    Quindi puoi rendere invisibili i controlli vuoti come già sai fare.

    Questo, però, non ho idea se possa risolvere il tuo problema perchè non conosco gli impatti sulla memoria dell'applicazione.

    P.S. Non sono un "mostro" di Access, quindi può anche darsi che qualcuno più esperto di me mi contraddisca...
    A tutti i COBOL-isti/CICS-isti/DB2-isti come me: l'adunanza è iniziata; ne resterà soltanto uno.
    È meglio bruciare subito, che spegnersi lentamente.

    Per fare un fumetto di successo ci voglio le tre "A": Azione - Avventura - Atette
    Ratman

  4. #4
    Grazie, cercherò strade alternative

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.