Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Docmd.close che viene eseguito su form sottostante

38 views
Skip to first unread message

RobertoA

unread,
Apr 28, 2021, 3:17:55 AM4/28/21
to
Dispongo di una form per la classica 'vendita al banco' di articoli
Una delle funzionalita' della form e' la possibilita' di richiamare una
seconda form 'ordinato cliente' per visualizzare gli articoli richiesti,
ed ancora non venduti
Bene, apro la form principale 'vendita al banco' poi scelgo il cliente,
premo il command button per aprire la form secondaria 'ordinato cliente'
e visualizzo gli articoli, dalla form secondaria posso copiare gli
articoli visibili nella tabella usata dalla form principale
Se scelgo questa funzione, inizia la copia, ed alla fine della funzione
di copia articoli c'e' un doCmd.close che nella mia intenzione vorrebbe
far chiudere la form secondaria, facendo apparire la form secondaria che
finora era rimasta sotto
Il problema e' qua, nel doCmd.close nel senso che alcune volte sembra
che il close venga inviato alla form principale piuttosto che venir
eseguito nella form secondaria, facendo chiudere quest'ultima, e
generando una marea di errori
Alcune volte, mica sempre, certe colte funziona tutto come mi aspetterei
La domanda e': se all'interno di una funzione, dentro la form
secondaria, impartisco un doCmd.close , com'e possibile che il comando
di chiusura venga venga eseguito da altra form?



@Alex

unread,
Apr 28, 2021, 3:31:57 AM4/28/21
to
Ovviamente, quando si usa il DOCMD serve essere certi su quale OGGETTO sia il Focus...!

Se metti in modo esplicito il nome dell'oggetto vedrai che non accade:
DoCmd.Close acForm, NomeForm

@Alex

RobertoA

unread,
Apr 28, 2021, 4:04:10 AM4/28/21
to
E fin qua, va bene, prima di chiedere avevo gia' esplicitato come hai
consigliato e funziona correttamente nel senso che il problema descritto
non c'e' piu'
Il punto e' che vorrei capire come potrebbe il focus dell'applicazione
essere stato spostato, senza volerlo, su form sottostante?

Da codice sicuramente no, perche' su form secondaria non esiste nessun
riferimento alla form principale

Da operatore sicuramente no, perche' dopo aver avviato la procedura di
copia su form secondaria stavo li a guardare col naso attaccato al
monitor cosa succedesse

Capisco che il doCmd.close, se non gli dai una destinazione specifica,
se lo becchi la form attiva, ma cos'e' si attivano da sole 'ste form?




@Alex

unread,
Apr 28, 2021, 4:16:28 AM4/28/21
to
Dovresti essere tu a dirci chi o cosa provoca il cambio di Focus...
Se non riesci a spiegartelo... fai debug mettendo dei "trappolini" su tutti gli eventi della form secondaria a valle dell'azione principale usando i Debug.Print e stampando il nome della form attiva... Screen.Activefoem.name così inizi ad individuare dove accade....

@Alex

RobertoA

unread,
Apr 28, 2021, 4:41:36 AM4/28/21
to
Si, il debug visualizzando la finestra attiva non ci avevo pensato
Ora provo

0 new messages