Newsgroup: it.comp.appl.access
Titolo: Eliminare la contol box dell'applicazione

Ho realizzato un'applicazione che, all'avvio, mostra solamente una
custom menu bar tramite la quale l'utente sceglie cosa fare; all'avvio
quindi non viene visualizzata alcuna form se non quella standard di
background.
Poiche' alla voce EXIT della mia menubar e' associata una funzione
particolare, devo evitare che l'utente esca cliccando sulla X della
controlbox dell'applicazione.
Che voi sappiate, esiste un sistema per inibire la X oppure anche
tutta la control box ??
Ripeto che la c.b. in questione non e' associata ad una form,
altrimenti l'avrei gia' risolto attraverso le impostazioni della form
stessa.
Grazie dell'aiuto.
Jack

 wrote in message
IM12OV2TUthdm924o=MKEBf...@4ax.com...

Sito comune
il sito comune di it.comp.appl.access:
http://members.xoom.it/it_db_access/
sezione Tips & Tricks
Rimuovere il pulsante di chiusura (X), il menu e i pulsanti di
ridimensionamento di Access. (97)
Autore : Antogal
Marco

 Jack
Non mi risulta si possa fare (a meno, forse, di usare le API9); io la cosa
io l'ho risolta così :
All'apertura carico una maschera nascosta in cui vi è un check box chiamato
CanClose che ha per valore predefinito False. Su evento scaricamento della
forma (Form_Unload) c'é questa riga di codice :
If Not Me.CanClose Then Cancel = True
che annulla la chiusura della maschera nel caso in cui il check box abbia
valore False (ossia il suo valore predefinito); questo è il caso quando
l'utente clicca sulla X dell'applicazione.
Quando invece l'utente va a cliccare sul tasto Exit della menu bar richiamo
un funzione che va semplicemente ad impostare il valore True sulla Check Box
della maschera nascota e chiude l'applicazione.
Attenzione però : se l'utente ha un po' di maschere aperte e clicca sulla X
non avviene l'uscita ma probabilmente vengono chiuse tutte le maschere
restanti : per evitare quindi che l'utente lasci "qualcosa a metà" il
controllo CanClose e la relativa riga di codice la inserisco su tutte le
maschere (in maniera che l'utente non chiuda nessuna maschera quando clicca
sulla X dell'applicazione).
La cosa è un po' macchinosa ma funziona egregiamente.
Ciao
Dario da PD

 Autore : Antogal
Si ma l'utente ha la possibilità sempre di premere Alt-F4 e di ottenere lo
stesso effetto...
Sbaglio ?
Ciao
Dario da PD

Dario da PD ha scritto:

Ciao
credo di si, anche se non ho mai provato.
Marco

 wrote in message

anch'io faccio cosi', nei casi in cui e' necessario.
visto che questa domanda e' frequente, ti andrebbe di scriverci una piccola FAQ
e mandarmela all'indirizzo del sito comune?
direi che ti basta sistemare quello che hai gia' scritto :-)
-- 
Federico
--------------------------------------
Sito Comune di it.comp.appl.access
http://members.xoom.it/it_db_access
mailto:
it_db_...@usa.net
--------------------------------------
Tutte le richieste che mi arrivano
in privato, vengono cestinate.
--------------------------------------
Rimuovi paperino. per e-mail
--------------------------------------

La routine che c'e' nel sito comune vale se si ha a che fare con una
form attiva, cioe' se all'avvio della procedura viene richiamata dallo
startup o da una macro AutoExec una form iniziale.
Il mio problema e' che all'avvio non richiamo nessuna form, mostrando
esclusivamente una menubar custom in luogo di quella standard di
Access. Poiche' devo tenere un log delle operazioni effettuate dagli
utenti, nel quale ci deve essere anche i dati della disconnessione
dalla procedura, devo fare in modo che l'utente esca solo cliccando
sulla apposita voce del menu (exit) che lancia la procedura di
registrazione finale e chiusura del log. purtroppo alcuni utenti
insistono nell' uscire dalla procedura utilizzando la X, con il
risultato che mi ritrovo diversi records del log incompleti (con la
successiva impossibilita' di verificare quando un utente ha terminato
l'applicazione).
Ho provato a girare tutto il giorno sulla rete, ma non ho trovato
risposta.
Il problema a mio avviso e' che l'oggetto Application non ha tra i
parametri settabili la control box.
Un alternativa sarebbe quella di utilizzare una form (con la barra di
menu) dichiarandola popup e modal, ma il risultato sarebbe quello di
impedire l'accesso anche alla menubar ...
Boh ??
Comunque grazie.
Jack

 direi che ti basta sistemare quello che hai gia' scritto :-)
'mmazza, l'onore è tale che non posso rifiutarmi...
Fra qualche giorno ti invio tutto...
Ciao
Dario da PD

 l'applicazione).
E' la stessa cosa che faccio io.
Utilizzo anch'io un log con tutti gli accessi dei vari utenti con registrato
la data e ora di login e logout.
Aggiungo inoltre che la maschera nascosta che uso all'avvio la utilizzo
anche per registrare altre informazioni, quali ad esempio l'utente
attualmente collegato, questo perché, alcune volte, se memorizzavo l'utente
in una variabile globale ad un certo punto la "perdeva" (in particolare
quando si verificava qualche errore nel programma non intercettato - mea
culpa che non li intercetto sempre tutti). E' capitato anche a qualcun'altro



Il problema si verifica se la registrazione avviene su tabelle locali,
nel mio caso tutte le tabelle sono su un db remoto in MSSQL per cui
alla peggio mi rimane un record privo delle informazioni di logout in
caso di terminazione anomala da parte di un utente.
All'avvio rilevo i dati utente/terminale/ora, li scrivo sulla tabella
log e su una variabile locale, al momento del logout con questi dati,
che costituiscono fra l'altro la chiave del record, mi posiziono sul
record di log giusto e lo completo con le info di uscita. Per ogni
altra applicazione del db scrivo invece un record su una seconda
tabella di log di dettaglio.
Alla fine mi ritrovo un record "di testata" con le informazioni di
logon e logoff, e n records "di dettaglio" che mi riportano tutte le
mosse dell'utente (volendo si potrebbero registrare anche tutte le
variazioni effettuate consentendo quindi una sorta di rollback).
Ciao.
Jack