Newsgroup: it.comp.appl.access
Titolo: Focus

Ciao a Tutti
In una maschera Ordini ho un pulsante di comando che mi chiude una maschera
popup,
sull'azione di chiusura di questo pulsante vorrei inserire anche
l'attivazione del
focus sul campo idprodotto di una sottomaschera .
Ho provato in più modi ma niente ,
questa è la routine su click del pulsante:
On Error GoTo Err_Comando3_Click
       DoCmd.Close
          Forms!OrdiniPiaggio!SottomascheraOrdiniPiaggio!IDProdotto.SetFocus
        Exit_Comando3_Click:
            Exit Sub
        Err_Comando3_Click:
            MsgBox Err.Description
            Resume Exit_Comando3_Click
Ditemi per favore dove sbaglio e qual'è il codice giusto
Grazie
Ciao Giuseppe


Forms!OrdiniPiaggio!SottomascheraOrdiniPiaggio!IDProdotto.SetFocus
Se sottomascheraordinipiaggio č il nome del controllo sottomaschera
contenuto nella maschera ordinipiaggio, allora prova con
Forms("OrdiniPiaggio").SottomascheraOrdiniPiaggio.form.IDProdotto.SetFocus
Antonio

 Ciao Giuseppe
Devi prima spostare il fuoco sulla sottomaschera e solo dopo sul suo
controllo.
Prova con:
DoCmd.Close
Forms!OrdiniPiaggio!SottomascheraOrdiniPiaggio.SetFocus
Forms!OrdiniPiaggio!SottomascheraOrdiniPiaggio!IDProdotto.SetFocus
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


Il codice che mi ha dato Antonio nonostante il nome del controllo sia
quello, non funziona,
mentre quello di Roberto va bene perfettamente .
Un grazie a entrambi per l'impegno e la disponibilità
Pero' volevo ulteriormente migliorare l'azione del pulsante se mi volete
aiutare !   ( te pareva !!!)
Vi spiego: questa maschera popup che contiene il pulsante di chiusura in
questione,
viene aperta anche in un'altra maschera denominata ElencoOrdiniPiaggio che
ha in
comune la SottomascheraOrdiniPiaggio a cui si fa riferimento nell'azione del
pulsante,
ma se io chiudo la Popup aperta  nella maschera ElencoOrdiniPiaggio, mi
viene dato
ovviamente il messaggio che l'oggetto a cui si fa riferimento ( Forms
OrdiniPiaggio)
non è valido.
Praticamente la routine di chiusura e setFocus  dovrebbe capire
dove si trova aperta in quel momento la maschera popup di cui fa parte,se
nella maschera OrdiniPiaggio oppure ElencoOrdiniPiaggio.
Secondo voi come si può fare, magari con istruzione  If .....Then
Un Grazie Ancora
Ciao Giuseppe


Il codice che mi ha dato Antonio nonostante il nome del controllo sia



Il codice che mi ha dato Antonio nonostante il nome del controllo sia


 Ciao Giuseppe
Nel Metodo OpenForm ,che ritengo usi per aprire la maschera popup, usa
l'argomento apriarg solo quando apri la maschera popup dalla maschera
ElencoOrdiniPiaggio; non usare questo argomento quando apri la maschera
dalla maschera OrdiniPiaggio.
Per maggiori chiarimenti cerca sull'help Metodo OpenForm.
Insomma, quando apri la maschera popup da ElencoOrdiniPiaggio, scrivi:
DoCmd.OpenForm "NomeMascheraPopup", , , , , , "Elenco"
mentre quando la apri da OrdiniPiaggio scrivi solo:
DoCmd.OpenForm "NomeMascheraPopup"
A questo punto, come codice VBA generato a fronte dell'evento "Su clic" del
pulsante di comando che hai sulla maschera popup scri:
DoCmd.Close
If Me.OpenArgs = "Elenco" Then
    Forms!ElencoOrdiniPiaggio!SottomascheraOrdiniPiaggio.SetFocus
    Forms!ElencoOrdiniPiaggio!SottomascheraOrdiniPiaggio!IDProdotto.SetFocus
Else
    Forms!OrdiniPiaggio!SottomascheraOrdiniPiaggio.SetFocus
    Forms!OrdiniPiaggio!SottomascheraOrdiniPiaggio!IDProdotto.SetFocus
End If



Ciao Roberto Grazie per l'aiuto ,
Ho eseguito le tue istruzioni  su un'altra maschera con un pulsante di
apertura
per scheda popup che usa solo il metodo OpenForm e  funziona molto bene,
solo che
nella maschera OrdiniPiaggio e ElencoOrdiniPiaggio il pulsante che mi apre
la Popup ,mi sincronizza anche le due maschere e la routine del pulsante
di apertura è la seguente:
  Dim strMsg As String, strTitolo As String
    Dim intStile As Integer
    Dim strNomeDoc As String, strCriteriCollegamento As String
    strNomeDoc = "PopupCodificaPiaggio"
    strCriteriCollegamento = "[IDprodotto] =
Forms![ordiniPiaggio]![SottomascheraOrdiniPiaggio]![IDprodotto]"
      DoCmd.OpenForm strNomeDoc, , , strCriteriCollegamento
         DoCmd.MoveSize (900 * 0.75), (550 * 1.95)
Ho provato in molti modi ma non riesco a trovare il sistema giusto
per inserire le tue istruzioni.
Conto su di te
Ciao Giuseppe

 Ciao Giuseppe
Quella relativa alla maschera OrdiniPiaggio sta bene cosě, mentre nella
maschera ElencoOrdiniPiaggio prova a modificare la OpenForm cosě:
DoCmd.OpenForm strNomeDoc, , , strCriteriCollegamento, , , "Elenco"



 Ciao Roberto
Ho provato a modificare la riga OpenForm come indicato ,ma non funziona
ho anche provato a invertire le routine con i relativi riferimenti , no non
va
mi da sempre questo errore :
*** L'oggetto a cui si fà riferimento nell'espressione è stato chiuso o
eliminato.***
Il problema è solo perchè per attivare il focus della sottomaschera che è
sempre
la stessa ( PopupCodificaPiaggio), bisogna prima "passare" per la maschera
che può essere a volte ElencoOrdiniPiaggio oppure OrdiniPiaggio .
Forms!elencoordinipiaggio!SottomascheraOrdiniPiaggio.SetFocus
Forms!elencoordinipiaggio!SottomascheraOrdiniPiaggio!IDProdotto.SetFocus
Non si può baypassare la prima riga dell'istruzione puntando direttamente
alla sottomaschera ?
Ciao Giuseppe

 Ciao Giuseppe
Scusami Giuseppe, questo problema lo avevamo già risolto con quanto scritto
nel mio messaggio del 15/9/2002 ore 15:22, come da te confermato con il tuo
messaggio del 16/9/2002 delle ore 21:19.
L'intervento consisteva nel generare a fronte dell'evento "Su clic" del
pulsante di chiusura della maschera PopupCodificaPiaggio il seguente codice
VBA:
DoCmd.Close
If Me.OpenArgs = "Elenco" Then
    Forms!ElencoOrdiniPiaggio!SottomascheraOrdiniPiaggio.SetFocus
    Forms!ElencoOrdiniPiaggio!SottomascheraOrdiniPiaggio!IDProdotto.SetFocus
Else
    Forms!OrdiniPiaggio!SottomascheraOrdiniPiaggio.SetFocus
    Forms!OrdiniPiaggio!SottomascheraOrdiniPiaggio!IDProdotto.SetFocus
End If
Ma questa modifica l'hai effettuata oppure no?
Onestamente non ci sto capendo più nulla, con le cose che un giorno ti
funzionano ed un altro giorno no!
Comunque, se non riesci a realizzare ciò che ti ho consigliato puoi sempre
crearti due maschere popup uguali ma con nomi diversi, una aperta dalla
maschera OrdiniPiaggio (e che gli ritorna poi il fuoco alla chiusura) e
l'altra aperta dalla maschera ElencoOrdiniPiaggio (e che gli ritorna poi il
fuoco alla chiusura). Vedi tu, il database ce lo hai in mano tu.



Ti chiedo scusa perchè ho fatto un'pò di confusione , comunque ti volevo
ringraziare per l'aiuto ricevuto e il quesito iniziale del focus era stato
risolto
con le tue istruzioni ,la cosa che volevo fare era di stabilire il focus
dopo la chiusura della scheda popup
,in base a quale maschera era stata aperta .
Ho trovato l'uovo di colombo , mettendo due pulsanti di chiusura nella
scheda popup
con due differenti routine  e rendendo visibile solo il pulsante appropriato
per la maschera aperta.
Di nuovo Grazie e alla prossima
Ciao Giuseppe