Discussione:
aprire maschera secondaria come popup ma senza perdere il focus della primaria
(troppo vecchio per rispondere)
lucio
2008-10-09 04:01:32 UTC
Permalink
salve,
vorrei che mentre lavoro nelle mie maschere primarie (clienti,
fornitori, prodotti) tramite un evento TIMER si apra (qualora si
verifichino determinate situazione) si apra una maschera MA NON VOGLIO
INTERROMPERE IL LAVORO CHE STO FACENDO SULLA MASCHERA PRIMARIA. Ho
creato un una maschera nascosta che con un evento timer ogni 30
secondi verifica se (tramite query) determinati valori sono cambiati.
Se sono cambiati si apre una maschera popup che mi lancia un avviso.
IL PROBLEMA è CHE OGNI VOLTA CHE TIMER APRE LA MASCHERA POPUP AVVISO
attiva il focus sul su questa maschera secondaria , interrompendo
continuamente il mio lavoro. COME POSSO RISOLVERE ? grazie a tutti
Mimeacc
2008-10-09 10:03:20 UTC
Permalink
"lucio" <***@gmail.com> ha scritto nel messaggio news:4aa8bc1a-26be-4107-8bff-***@u65g2000hsc.googlegroups.com...
salve,
vorrei che mentre lavoro nelle mie maschere primarie (clienti,
fornitori, prodotti) tramite un evento TIMER si apra (qualora si
verifichino determinate situazione) si apra una maschera MA NON VOGLIO
INTERROMPERE IL LAVORO CHE STO FACENDO SULLA MASCHERA PRIMARIA. Ho
creato un una maschera nascosta che con un evento timer ogni 30
secondi verifica se (tramite query) determinati valori sono cambiati.
Se sono cambiati si apre una maschera popup che mi lancia un avviso.
IL PROBLEMA è CHE OGNI VOLTA CHE TIMER APRE LA MASCHERA POPUP AVVISO
attiva il focus sul su questa maschera secondaria , interrompendo
continuamente il mio lavoro. COME POSSO RISOLVERE ? grazie a tutti


Ciao Lucio,
non è che stai aprendo la maschera popup con l'opzione acDialog? è proprio
quella che interrompe l'esecuzione del codice della maschera principale.
Mimeacc
Lucio Lovato
2008-10-19 09:05:48 UTC
Permalink
ciao miceacc,
no sto usando una macro, hai idea del codice che devo usare se voglio
farlo con vba, oppure
come fare con la macro ?
grazie
lucio



In data 09 ottobre 2008 alle ore 12:03:20, Mimeacc
Post by lucio
salve,
vorrei che mentre lavoro nelle mie maschere primarie (clienti,
fornitori, prodotti) tramite un evento TIMER si apra (qualora si
verifichino determinate situazione) si apra una maschera MA NON VOGLIO
INTERROMPERE IL LAVORO CHE STO FACENDO SULLA MASCHERA PRIMARIA. Ho
creato un una maschera nascosta che con un evento timer ogni 30
secondi verifica se (tramite query) determinati valori sono cambiati.
Se sono cambiati si apre una maschera popup che mi lancia un avviso.
IL PROBLEMA è CHE OGNI VOLTA CHE TIMER APRE LA MASCHERA POPUP AVVISO
attiva il focus sul su questa maschera secondaria , interrompendo
continuamente il mio lavoro. COME POSSO RISOLVERE ? grazie a tutti
Ciao Lucio,
non è che stai aprendo la maschera popup con l'opzione acDialog? è proprio
quella che interrompe l'esecuzione del codice della maschera principale.
Mimeacc
Mimeacc
2008-10-19 18:49:45 UTC
Permalink
Post by Lucio Lovato
ciao miceacc,
no sto usando una macro, hai idea del codice che devo usare se voglio
farlo con vba, oppure
come fare con la macro ?
grazie
lucio
In data 09 ottobre 2008 alle ore 12:03:20, Mimeacc
Post by lucio
salve,
vorrei che mentre lavoro nelle mie maschere primarie (clienti,
fornitori, prodotti) tramite un evento TIMER si apra (qualora si
verifichino determinate situazione) si apra una maschera MA NON VOGLIO
INTERROMPERE IL LAVORO CHE STO FACENDO SULLA MASCHERA PRIMARIA. Ho
creato un una maschera nascosta che con un evento timer ogni 30
secondi verifica se (tramite query) determinati valori sono cambiati.
Se sono cambiati si apre una maschera popup che mi lancia un avviso.
IL PROBLEMA è CHE OGNI VOLTA CHE TIMER APRE LA MASCHERA POPUP AVVISO
attiva il focus sul su questa maschera secondaria , interrompendo
continuamente il mio lavoro. COME POSSO RISOLVERE ? grazie a tutti
Ciao Lucio,
non è che stai aprendo la maschera popup con l'opzione acDialog? è proprio
quella che interrompe l'esecuzione del codice della maschera principale.
Mimeacc
Ciao Lucio,
non sono sicurissimo di aver capito bene cosa ti serve, però prova così:
da codice VB, nell'evento TIMER, puoi aprire la maschera senza l'opzione
acDialog ed in sola lettura

DoCmd.OpenForm "tuaFormAvviso", acPreview, , , acFormReadOnly
Forms![TuaFormLavoro].SetFocus

In questo modo si apre la maschera di avviso, ma va istantaneamente in
secondo piano e tu ti trovi sempre nel campo dov'eri prima; naturalmente per
andare a vedere il contenuto della maschera di avviso devi cliccarci sopra,
ma mi pare sia quello che vuoi fare.

Spero di aver compreso bene, altrimenti scusami.

Mimeacc (non mice.... mi chiamo Michele ma se ci aggiungi "mice", plurale di
mouse, mi trasformi in una nidiata di topolini..... ;-))
lucio
2008-10-24 06:23:30 UTC
Permalink
Post by Mimeacc
Post by Lucio Lovato
ciao miceacc,
no sto usando una macro, hai idea del codice che devo usare se voglio
farlo con vba, oppure
come fare con la macro ?
grazie
lucio
In data 09 ottobre 2008 alle ore 12:03:20, Mimeacc
Post by lucio
salve,
vorrei che mentre lavoro nelle mie maschere primarie (clienti,
fornitori, prodotti) tramite un evento TIMER si apra (qualora si
verifichino determinate situazione) si apra una maschera MA NON VOGLIO
INTERROMPERE IL LAVORO CHE STO FACENDO SULLA MASCHERA PRIMARIA. Ho
creato un una maschera nascosta che con un evento timer ogni 30
secondi verifica se (tramite query) determinati valori sono cambiati.
Se sono cambiati si apre una maschera popup che mi lancia un avviso.
IL PROBLEMA è CHE OGNI VOLTA CHE TIMER APRE LA MASCHERA POPUP AVVISO
attiva il focus sul su questa maschera secondaria , interrompendo
continuamente il mio lavoro. COME POSSO RISOLVERE ? grazie a tutti
Ciao Lucio,
non è che stai aprendo la maschera popup con l'opzione acDialog? è proprio
quella che interrompe l'esecuzione del codice della maschera principale.
Mimeacc
Ciao Lucio,
da codice VB, nell'evento TIMER, puoi aprire la maschera senza l'opzione
acDialog ed in sola lettura
DoCmd.OpenForm "tuaFormAvviso", acPreview, , , acFormReadOnly
Forms![TuaFormLavoro].SetFocus
In questo modo si apre la maschera di avviso, ma va istantaneamente in
secondo piano e tu ti trovi sempre nel campo dov'eri prima; naturalmente per
andare a vedere il contenuto della maschera di avviso devi cliccarci sopra,
ma mi pare sia quello che vuoi fare.
Spero di aver compreso bene, altrimenti scusami.
Mimeacc (non mice.... mi chiamo Michele ma se ci aggiungi "mice", plurale di
mouse, mi trasformi in una nidiata di topolini..... ;-))
venerdì 24/10/2008 ore 08.10
ops,
allora michele hai capito bene, l'unica cosa che non torna e che se la
maschera attivata dal timer viene attivata mentre sono sulla form
"clienti" (1), dovrei con il tuo codice fare in modo di ritornare alla
1 ma se sono in quel momento sulla form "fornitori" (2) il codice mi
rimanderebbe il focus alla (1) come posso risolvere questo ?

grazie

lucio
Mimeacc
2008-10-24 16:53:16 UTC
Permalink
allora michele hai capito bene, l'unica cosa che non torna e che se la
maschera attivata dal timer viene attivata mentre sono sulla form
"clienti" (1), dovrei con il tuo codice fare in modo di ritornare alla
1 ma se sono in quel momento sulla form "fornitori" (2) il codice mi
rimanderebbe il focus alla (1) come posso risolvere questo ?

<<<<<>>>>>>>>>>>>>>
Se sono solo queste due ti basta una condizione:

'apre la maschera in popup
DoCmd.OpenForm "tuaFormAvviso", acPreview, , , acFormReadOnly
'se è aperta la maschera clienti riporta il focus su di essa
If CurrentProject.AllForms("clienti").IsLoaded Then
Forms![clienti].SetFocus
'altrimenti lo riporta su fornitori
Else
Forms![fornitori].SetFocus
End If

Ciao
Michele

Geppo
2008-10-19 19:41:40 UTC
Permalink
Post by Lucio Lovato
ciao miceacc,
no sto usando una macro, hai idea del codice che devo usare se voglio
farlo con vba, oppure
come fare con la macro ?
grazie
lucio
potresti provare in questo modo, nella form in cui stai lavorando sotto
Post by Lucio Lovato
============inzio============<
private sub form_load()

me.timerinterval = 30000 'scatena l'evento timer ogni 30 secondi

end sub
Post by Lucio Lovato
===========fine==============<
=========inizio===============<
private sub form_timer()

if not currentproject.allforms("NomeDellaFormPopup").isloaded then
docmd.openform "NomeDellaFormPopup"
docmd.openform me.nome
screen.activecontrol.setfocus
end if

end sub
Post by Lucio Lovato
========fine=================<
--
Ciao
Geppo
Loading...