Newsgroup: it.comp.appl.access
Titolo: Chiusura form

Ho la necessit� di chiudere una form attiva via codice in esecuzione nel 
corso di un evento Exit di una textbox della maschera es...
la maschera � frmMask
sub TextBox_Exit(cancel as Integer)
If condizione vera allora
  Esegue codice
  Passa al controllo successivo
Else
   Apri frmAltraMaschera
    Chiudi frmMask
End if
end sub
esiste un modo per far eseguire la parte dopo else senza che dia errore ?
Grazie
P.S. Sia le form che i controlli sono Non Associati

 P.S. Sia le form che i controlli sono Non Associati
Ciao,
vedi help di docmd.close.
Che errore ?
se è noto e non ti dà problemi puoi sempre mettere nella sub
l'istruzione
On error resume next
Alberto

 P.S. Sia le form che i controlli sono Non Associati
Ciao,
vedi help di docmd.close.
Che errore ?
se � noto e non ti d� problemi puoi sempre mettere nella sub
l'istruzione
On error resume next
Alberto
L'errore �: Errore di runtime 2585 "Impossibile eseguire questa azione 
durante l'elaborazione di un evento di maschera o di report"
Cosa che ha una sua logica ed � perfettamente intercettabile da una routine 
di errore.
Purtroppo ho la necessit� che la maschera venga chiusa, mentre la routine di 
errore evita solo che venga interrotto il programma.
Esiste il modo? Altrimenti dovr� cercare altre soluzioni.
Grazie comunque.

 Grazie comunque.
Ti sta chiudendo il form che hai appena apert.
Nella close mettici il nome del form che vuoi chiudere
--
ac

 ac
In effetti � quello che voglio. Cio� se nel corso dell'evento exit di un 
controllo della maschera corrente si verifica una determinata situazione 
voglio che mi venga chiusa la maschera corrente, anche se l'evento exit del 
controllo non si � ancora concluso.

 controllo non si ï¿œ ancora concluso.
Forse non mi sono spiegato. La chiusura avviene sul form di cui stai 
facendo la apriForm. Se fai docmd.close acform,"nomeformcorrente" non 
dovresi incappare nell'errore che descrivi.
--
ac

 ac
Per provare ho eliminato l'apertura dell'altra maschera .
lasciando l'istruzione:
DoCmd.Close, AcForm,"NomeMascheraCorrente"
Stesso messaggio d'errore

 ac
Per essere sicuro ho creato una form di nome frmTest,
in questa form ho inserito la textbox chiamata Testo0
quindi nell'evento exit di Testo0 ho inserito questo codice:
Sub Testo0_Exit(Cancel As Integer)
Dim i as integer
For i = 1 to 100
    if  i = 10 then
        DoCmd.Close acForm, "frmTest"
    End If
Next
End Sub
Uscendo dal controllo mi da l'errore.
Questo � solo per rendere chiara l'idea di ci� che vorrei
Quello che io vorrei � poter chiudere la maschera anche se il ciclo for next 
non � finito.

 non ï¿œ finito.
per favore puoi mettere il codice nell'evento di afterupdate?
--
ac

 ac
E' una form che ho creato per provare, contiene solo il controllo Testo0 e 
solo il codice per l'evento exit.
Apro la maschera, quando il prompt lampeggia nel controllo (vuoto), premo 
enter, e...mi da errore

 enter, e...mi da errore
Es claro. Ma hai provato a far quello che ho domandato?
Non c'e' ragione per cui quel codice possa provocare l'errore che 
descrivi (soprattutto perche' non c'e' la apertura di altra form)
--
ac

 ac
Codice inserito in afterupdate e se premo enter dopo aver scritto qualcosa 
funziona e non da pi� errore
Ora devo verificare alcune situazioni e soprattutto il perch�, comunque � 
gi� molto cos�.
Grazie infinite per la tua disponibilit�
(Che sia un problema di Access 2003 ?)

 (Che sia un problema di Access 2003 ?)
Non lo so, evito quell'evento come .... non dico chi perche' sembrerei 
di parte.
--
ac