Mizio1961 ha scritto:Nel caso tu abbia creato una barra personalizzata col pulsante di chiusura DB a me funziona in questo modo:
Public Sub FrmClose
Dim FrmObj as object
FrmObj = ThisComponent.currentController.frame
FrmObj.Close(True)
End sub ' FINE
In pratica, da quello che ho capito fino ad ora il DB aperto viene visto come un frame e quindi deve essere trattato come tale.
Così la barra personalizzata in cui si trova il pulsante è di proprietà del frame DB e quando lo premi l'oggetto corrente che viene trovato da ThisComponent.currentController.frame è proprio lui.
Così il successivo richiamo del metodo Close chiude il DB (True sta per salva prima di chiudere)
Quello che mi rimane oscuro è l'obbiettivo di chiudere il DB da macro visto che la stessa cosa la puoi fare premendo la X classica della finestra in cui è aperto il DB
Posso avere spiegazione per curiosità?
Se è risolto il problema ricordati di scrivere [RISOLTO] davanti al titolo chiusura con macro
Saluti
Intanto ti ringrazio..
In realtà con questa macro che dici viene chiusa la finestra corrispondente al formulario corrente, dove è presente il bottone per uscire.
Ma la finestra del database (per intenderci quella di base che contiene gli elenchi di tutte le tabelle, query, formulari, ecc..) non viene chiusa.
Il motivo della macro per chiudere il database da bottone è presto detto:
quello che mi è stato richiesto è di realizzare una interfaccia grafica che permetta un accesso user-friendly ad un database con varie operazioni (filtri, ordinamenti, stampa di elenchi).
Per uscire dal database ho quindi pensato di fornire all'utente un bottone sempre accessibile da questa interfaccia (un formulario); questo bottone dovrebbe permettere un'uscita COMPLETA dall'applicazione.
Utilizzando il bottone "chiudi" (la X in alto a destra) l'utente avrebbe dovuto premerlo sul formulario e successivamente sulla finestra del db.
So che può sembrare una banalità ma quando ci sono utenti "de coccio" è meglio semplificare tutto il più possibile...
Ah giusto per dire, un altro problema che avevo riscontrato sempre dopo la chiusura del db:
con l'installazione di OO viene automaticamente attivato il "quickstart".
Con questo benetto quisckstart che gira, chiudendo un database, rimane il file temporaneo che quindi non permette di riaprirlo da un'altra postazione.
Dopo averlo capito ho quindi dovuto disabilitare il quickstart..