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

Emulazione tasto ESC

83 views
Skip to first unread message

Dino

unread,
Dec 18, 2009, 2:52:44 AM12/18/09
to
Ciao a tutti.Per emulare il tasto ESC ho creato un pulsante di comando
dove sull'evento Click ho inserito
SendKeys "{esc}"

Se nell'evento non inserisco altro codice va tutto bene.Se al
contrario ad esempio inserisco la chiusura della form
con Docmd.close a volte mi chiude la form salvando il
record.Praticamente e' come se saltasse il SendKeys.
Questo mi succede anche se in una Form ho inserito praticamente tutti
i record e voglio annullare l'inserimento.
Da cosa puo' dipendere.

Ho esigenza di crare questo controllo perche' disabilitando "ESC"
voglio dare lo stesso la possibilita' di annullare l'inserimento.

Grazie in anticipo
Dino

Geppo

unread,
Dec 18, 2009, 4:02:45 AM12/18/09
to
Ciao "Dino" <verreng...@alice.it> ha scritto nel messaggio
news:76a95f2d-150f-4939...@c3g2000yqd.googlegroups.com...

> Ciao a tutti.Per emulare il tasto ESC ho creato un pulsante di comando
> dove sull'evento Click ho inserito
> SendKeys "{esc}"
>
> Se nell'evento non inserisco altro codice va tutto bene.Se al
> contrario ad esempio inserisco la chiusura della form
> con Docmd.close a volte mi chiude la form salvando il
> record.Praticamente e' come se saltasse il SendKeys.
> Questo mi succede anche se in una Form ho inserito praticamente tutti
> i record e voglio annullare l'inserimento.
> Da cosa puo' dipendere.

forse il sistema non riesce a gestire il tutto, prova cosi:

sendkeys "{esc}"
doevents
qui scrivi il codice per la chiusura della forma.

> Ho esigenza di crare questo controllo perche' disabilitando "ESC"
> voglio dare lo stesso la possibilita' di annullare l'inserimento.
>
> Grazie in anticipo
> Dino

--
Ciao
Geppo


Dino

unread,
Dec 18, 2009, 4:30:57 AM12/18/09
to
On 18 Dic, 10:02, "Geppo" <c...@tin.it.invalid> wrote:
> Ciao "Dino" <verrengia.d...@alice.it> ha scritto nel messaggionews:76a95f2d-150f-4939...@c3g2000yqd.googlegroups.com...

Ciao Geppo e grazie per la risposta.Ho trovato dove nasce il
problema.Se io inserisco praticamente tutti i dati nei vari records
tranne l'importo finale cliccando sul pulsante dove ho impostato
l'emulazione "ESC" si annulla lìinserimento.Se invece aggiorno
l'importo noto (La famosa matita in alto alla sinistra del Form)che
per un istante sisalva il record e poi mi ritorna il simbolo del
record da salvare.Cliccando su lpulsante emulazione non fa altro che
confermare il salvataggio piuttosto che annullarlo.
L'aggiornamento di quell'importo avviene inserendo in alcuni campi dei
valori prelevati in automatico da una sottomaschera.Evento Dblclick
della sottoform ed vengono inseriti i valori.Vacendo così si aggiorna
l'importo famoso.E' prorpio nel momento del Dblclick che noto la
problematica che ti dicevo prima.
Di seguito se ti puo' servire ti riporto il codice dell'evento
Dblclick della sottoform:

If IsNull([Nome_listino]) Then
MsgBox "ATTENZIONE!!!!LISTINO MANCANTE"

ElseIf IsNull(Forms!Ins_articoli![Data listino]) Then
MsgBox "ATTENZIONE!!!!DATA LISTINO MANCANTE"
Forms!Ins_articoli![Data listino].SetFocus
Forms!Ins_articoli![Comando67].Visible = False

ElseIf IsNull(Forms!Ins_articoli![Prezzo listino]) Then
MsgBox "ATTENZIONE!!!!PREZZO LISTINO MANCANTE"
Forms!Ins_articoli![Prezzo listino].SetFocus
Forms!Ins_articoli![Comando67].Visible = False

Else
Forms!Ins_articoli!Sconto1 = Me.Sconto1
Forms!Ins_articoli!Sconto2 = Me.Sconto2
Forms!Ins_articoli!Sconto3 = Me.Sconto3
Forms!Ins_articoli![Incremento in %] = Me.Incremento_listino_in__
Forms!Ins_articoli![Decremento in %] = Me.Decremento_listino_in__
Forms!Ins_articoli![Comando67].Visible = False
End If

Grazie in anticipo Dino

Fair87

unread,
Dec 18, 2009, 5:15:14 AM12/18/09
to
Dino ha scritto:
>On 18 Dic, 10:02, "Geppo" <c...@tin,it .invalid> wrote:
>> Ciao "Dino" <verrengia.d...@alice,it > ha scritto nel
messaggionews:76a95f=
>2d-150f-4939-9c...@c3g2000yqd.googlegroups,com ...

>>
>> > Ciao a tutti.Per emulare il tasto ESC ho creato un pulsante di comando
>> > dove sull'evento Click ho inserito
>> > SendKeys "{esc}"
>>
>> > Se nell'evento non inserisco altro codice va tutto bene.Se al
>> > contrario ad esempio inserisco la chiusura della form
>> > con Docmd.close a volte mi chiude la form salvando il
>> > record.Praticamente e' come se saltasse il SendKeys.
>> > Questo mi succede anche se in una Form ho inserito praticamente tutti
>> > i record e voglio annullare l'inserimento.
>> > Da cosa puo' dipendere.
>>
>> forse il sistema non riesce a gestire il tutto, prova cosi:
>>
>> sendkeys "{esc}"
>> doevents
>> qui scrivi il codice per la chiusura della forma.
>>
>> > Ho esigenza di crare questo controllo perche' disabilitando "ESC"
>> > voglio dare lo stesso la possibilita' di annullare l'inserimento.
>>
>> > Grazie in anticipo
>> > Dino
>>
>> --
>> Ciao
>> Geppo
>
>Ciao Geppo e grazie per la risposta.Ho trovato dove nasce il
>problema.Se io inserisco praticamente tutti i dati nei vari records
>tranne l'importo finale cliccando sul pulsante dove ho impostato
>l'emulazione "ESC" si annulla l=ECinserimento.Se invece aggiorno

>l'importo noto (La famosa matita in alto alla sinistra del Form)che
>per un istante sisalva il record e poi mi ritorna il simbolo del
>record da salvare.Cliccando su lpulsante emulazione non fa altro che
>confermare il salvataggio piuttosto che annullarlo.
>L'aggiornamento di quell'importo avviene inserendo in alcuni campi dei
>valori prelevati in automatico da una sottomaschera.Evento Dblclick
>della sottoform ed vengono inseriti i valori.Vacendo cos=EC si aggiorna

>l'importo famoso.E' prorpio nel momento del Dblclick che noto la
>problematica che ti dicevo prima.
>Di seguito se ti puo' servire ti riporto il codice dell'evento
>Dblclick della sottoform:
>
>If IsNull([Nome_listino]) Then
>MsgBox "ATTENZIONE!!!!LISTINO MANCANTE"
>
> ElseIf IsNull(Forms!Ins_articoli![Data listino]) Then
> MsgBox "ATTENZIONE!!!!DATA LISTINO MANCANTE"
> Forms!Ins_articoli![Data listino].SetFocus
> Forms!Ins_articoli![Comando67].Visible =3D False

>
> ElseIf IsNull(Forms!Ins_articoli![Prezzo listino]) Then
> MsgBox "ATTENZIONE!!!!PREZZO LISTINO MANCANTE"
> Forms!Ins_articoli![Prezzo listino].SetFocus
> Forms!Ins_articoli![Comando67].Visible =3D False
>
>Else
>Forms!Ins_articoli!Sconto1 =3D Me.Sconto1
>Forms!Ins_articoli!Sconto2 =3D Me.Sconto2
>Forms!Ins_articoli!Sconto3 =3D Me.Sconto3
>Forms!Ins_articoli![Incremento in %] =3D Me.Incremento_listino_in__
>Forms!Ins_articoli![Decremento in %] =3D Me.Decremento_listino_in__
>Forms!Ins_articoli![Comando67].Visible =3D False

>End If
>
>Grazie in anticipo Dino

Sendkey � pericoloso.....nn lo puoi controllare.....
Se proprio ti serve disabilitare ESC x l'eventuale cancellazione
dell'inserimento (immagino su form associate a questo punto), io mi farei una
funzione globale, una cosa del tipo

Public Function TastoESC(NomeForm, Azione) as integer
if Azione = Edit (guardi la sintassi....) then
TastoESC = 0
else
TastoESC = 69
end if
end function

se chiaramente si trova il modo di sapere se una Form � in edit o no.....

in ogni form sull'evento KeyDown (o KeyPress) metti KeyCode = TrovaESC cos�
diventa = 0 (nessuna azione) oppure il valore di esc. Cos� dove ti serve ce
l'hai (tipo il pulsante chiudi predefinito) e dove no lo blocchi con una riga
di codice
Non garantisco la funzionalit� xch� non uso mai form associate per inserire
nuovi record......

--
Questo articolo e` stato inviato dal sito web http://www.nonsolonews.it

Dino

unread,
Dec 18, 2009, 8:25:49 AM12/18/09
to
On 18 Dic, 11:15, Fair87<roby....@gmail.com> wrote:
> Dino ha scritto:>On 18 Dic, 10:02, "Geppo" <c...@tin,it .invalid> wrote:
> >> Ciao "Dino" <verrengia.d...@alice,it > ha scritto nel
>
> messaggionews:76a95f=
>
>
>
>
>
> >2d-150f-4939-9cf3-8de3cf704...@c3g2000yqd.googlegroups,com ...
> Sendkey è pericoloso.....nn lo puoi controllare.....

> Se proprio ti serve disabilitare ESC x l'eventuale cancellazione
> dell'inserimento (immagino su form associate a questo punto), io mi farei una
> funzione globale, una cosa del tipo
>
> Public Function TastoESC(NomeForm, Azione) as integer
> if Azione = Edit (guardi la sintassi....) then
> TastoESC = 0
> else
> TastoESC = 69
> end if
> end function
>
> se chiaramente si trova il modo di sapere se una Form è in edit o no.....
>
> in ogni form sull'evento KeyDown (o KeyPress) metti KeyCode = TrovaESC così
> diventa = 0 (nessuna azione) oppure il valore di esc. Così dove ti serve ce

> l'hai (tipo il pulsante chiudi predefinito) e dove no lo blocchi con una riga
> di codice
> Non garantisco la funzionalità xchè non uso mai form associate per inserire
> nuovi record......
>
> --
> Questo articolo e` stato inviato dal sito webhttp://www.nonsolonews.it- Nascondi testo citato
>
> - Mostra testo citato -

Ciao e grazie per la risp.due domande
nella funzione Ok nome form ma per Azione cosa intendi (o per lo meno
quale azione)
Il significato di Tasto ESC=69
Grazie
Dino

Fair87

unread,
Dec 18, 2009, 9:08:41 AM12/18/09
to
Dino ha scritto:

>On 18 Dic, 11:15, Fair87<roby....@gmail,com > wrote:
>> Dino ha scritto:>On 18 Dic, 10:02, "Geppo" <c...@tin,it .invalid> wrote:
>> >> Ciao "Dino" <verrengia.d...@alice,it > ha scritto nel
>>
>> messaggionews:76a95f=3D
>>
>>
>>
>>
>>
>> >2d-150f-4939-9cf3-8de3cf704...@c3g2000yqd.googlegroups,com ...
>>
>> >> > Ciao a tutti.Per emulare il tasto ESC ho creato un pulsante di coman=

>do
>> >> > dove sull'evento Click ho inserito
>> >> > SendKeys "{esc}"
>>
>> >> > Se nell'evento non inserisco altro codice va tutto bene.Se al
>> >> > contrario ad esempio inserisco la chiusura della form
>> >> > con Docmd.close a volte mi chiude la form salvando il
>> >> > record.Praticamente e' come se saltasse il SendKeys.
>> >> > Questo mi succede anche se in una Form ho inserito praticamente tutt=

>i
>> >> > i record e voglio annullare l'inserimento.
>> >> > Da cosa puo' dipendere.
>>
>> >> forse il sistema non riesce a gestire il tutto, prova cosi:
>>
>> >> sendkeys "{esc}"
>> >> doevents
>> >> qui scrivi il codice per la chiusura della forma.
>>
>> >> > Ho esigenza di crare questo controllo perche' disabilitando "ESC"
>> >> > voglio dare lo stesso la possibilita' di annullare l'inserimento.
>>
>> >> > Grazie in anticipo
>> >> > Dino
>>
>> >> --
>> >> Ciao
>> >> Geppo
>>
>> >Ciao Geppo e grazie per la risposta.Ho trovato dove nasce il
>> >problema.Se io inserisco praticamente tutti i dati nei vari records
>> >tranne l'importo finale cliccando sul pulsante dove ho impostato
>> >l'emulazione "ESC" si annulla l=3DECinserimento.Se invece aggiorno

>> >l'importo noto (La famosa matita in alto alla sinistra del Form)che
>> >per un istante sisalva il record e poi mi ritorna il simbolo del
>> >record da salvare.Cliccando su lpulsante emulazione non fa altro che
>> >confermare il salvataggio piuttosto che annullarlo.
>> >L'aggiornamento di quell'importo avviene inserendo in alcuni campi dei
>> >valori prelevati in automatico da una sottomaschera.Evento Dblclick
>> >della sottoform ed vengono inseriti i valori.Vacendo cos=3DEC si aggiorn=

>a
>> >l'importo famoso.E' prorpio nel momento del Dblclick che noto la
>> >problematica che ti dicevo prima.
>> >Di seguito se ti puo' servire ti riporto il codice dell'evento
>> >Dblclick della sottoform:
>>
>> >If IsNull([Nome_listino]) Then
>> >MsgBox "ATTENZIONE!!!!LISTINO MANCANTE"
>>
>> > =A0 =A0 =A0ElseIf IsNull(Forms!Ins_articoli![Data listino]) Then
>> > =A0 =A0 =A0 =A0MsgBox "ATTENZIONE!!!!DATA LISTINO MANCANTE"
>> > =A0 =A0 =A0 =A0Forms!Ins_articoli![Data listino].SetFocus
>> > =A0 =A0 =A0 =A0Forms!Ins_articoli![Comando67].Visible =3D3D False
>>
>> > =A0 =A0 =A0 =A0 =A0 =A0 =A0ElseIf IsNull(Forms!Ins_articoli![Prezzo lis=
>tino]) Then
>> > =A0 =A0 =A0 =A0 =A0 =A0 =A0MsgBox "ATTENZIONE!!!!PREZZO LISTINO MANCANT=
>E"
>> > =A0 =A0 =A0 =A0 =A0 =A0 =A0Forms!Ins_articoli![Prezzo listino].SetFocus
>> > =A0 =A0 =A0 =A0 =A0 =A0 =A0Forms!Ins_articoli![Comando67].Visible =3D3D=
> False
>>
>> >Else
>> >Forms!Ins_articoli!Sconto1 =3D3D Me.Sconto1
>> >Forms!Ins_articoli!Sconto2 =3D3D Me.Sconto2
>> >Forms!Ins_articoli!Sconto3 =3D3D Me.Sconto3
>> >Forms!Ins_articoli![Incremento in %] =3D3D Me.Incremento_listino_in__
>> >Forms!Ins_articoli![Decremento in %] =3D3D Me.Decremento_listino_in__
>> >Forms!Ins_articoli![Comando67].Visible =3D3D False

>> >End If
>>
>> >Grazie in anticipo Dino
>>
>> Sendkey =E8 pericoloso.....nn lo puoi controllare.....

>> Se proprio ti serve disabilitare ESC x l'eventuale cancellazione
>> dell'inserimento (immagino su form associate a questo punto), io mi farei=

> una
>> funzione globale, una cosa del tipo
>>
>> Public Function TastoESC(NomeForm, Azione) as integer
>> if Azione =3D Edit (guardi la sintassi....) then
>> TastoESC =3D 0
>> else
>> TastoESC =3D 69
>> end if
>> end function
>>
>> se chiaramente si trova il modo di sapere se una Form =E8 in edit o no...=
>..
>>
>> in ogni form sull'evento KeyDown (o KeyPress) metti KeyCode =3D TrovaESC =
>cos=EC
>> diventa =3D 0 (nessuna azione) oppure il valore di esc. Cos=EC dove ti se=
>rve ce
>> l'hai (tipo il pulsante chiudi predefinito) e dove no lo blocchi con una =
>riga
>> di codice
>> Non garantisco la funzionalit=E0 xch=E8 non uso mai form associate per in=
>serire
>> nuovi record......
>>
>> --
>> Questo articolo e` stato inviato dal sito web http :// www .nonsolonews,it
- N=


>ascondi testo citato
>>
>> - Mostra testo citato -
>
>Ciao e grazie per la risp.due domande
>nella funzione Ok nome form ma per Azione cosa intendi (o per lo meno
>quale azione)

>Il significato di Tasto ESC=3D69
>Grazie
>Dino

Questo l'ho provato

Public Function TastoESC(NomeForm As Form) As Integer

If NomeForm.NewRecord Then
TastoESC = 0
Else
TastoESC = 118
End If

End Function


Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

Dim I As Integer

Select Case KeyCode
Case vbKeyEscape
I = TastoESC(Me.Form)
KeyCode = I
If KeyCode = 118 Then
MsgBox "!"
End If
Case Else
End Select

End Sub

Vedi se pu� esserti utile

Dino

unread,
Dec 18, 2009, 12:36:39 PM12/18/09
to
> Vedi se può esserti utile
>
> --
> Questo articolo e` stato inviato dal sito webhttp://www.nonsolonews.it- Nascondi testo citato

>
> - Mostra testo citato -

Gentilissimo.Provo e ti faccio sapere.
Ancora super grazie
Dino

Antonio

unread,
Dec 19, 2009, 11:53:32 AM12/19/09
to

"Dino" <verreng...@alice.it> ha scritto nel messaggio
news:77718713-9f2d-4bc0...@d21g2000yqn.googlegroups.com...

l'emulazione "ESC" si annulla l�inserimento.Se invece aggiorno


l'importo noto (La famosa matita in alto alla sinistra del Form)che
per un istante sisalva il record e poi mi ritorna il simbolo del
record da salvare.Cliccando su lpulsante emulazione non fa altro che
confermare il salvataggio piuttosto che annullarlo.
L'aggiornamento di quell'importo avviene inserendo in alcuni campi dei
valori prelevati in automatico da una sottomaschera.Evento Dblclick

della sottoform ed vengono inseriti i valori.Vacendo cos� si aggiorna


l'importo famoso.E' prorpio nel momento del Dblclick che noto la
problematica che ti dicevo prima.
Di seguito se ti puo' servire ti riporto il codice dell'evento
Dblclick della sottoform:

If IsNull([Nome_listino]) Then
MsgBox "ATTENZIONE!!!!LISTINO MANCANTE"

ElseIf IsNull(Forms!Ins_articoli![Data listino]) Then
MsgBox "ATTENZIONE!!!!DATA LISTINO MANCANTE"
Forms!Ins_articoli![Data listino].SetFocus
Forms!Ins_articoli![Comando67].Visible = False

ElseIf IsNull(Forms!Ins_articoli![Prezzo listino]) Then
MsgBox "ATTENZIONE!!!!PREZZO LISTINO MANCANTE"
Forms!Ins_articoli![Prezzo listino].SetFocus
Forms!Ins_articoli![Comando67].Visible = False

Else
Forms!Ins_articoli!Sconto1 = Me.Sconto1
Forms!Ins_articoli!Sconto2 = Me.Sconto2
Forms!Ins_articoli!Sconto3 = Me.Sconto3
Forms!Ins_articoli![Incremento in %] = Me.Incremento_listino_in__
Forms!Ins_articoli![Decremento in %] = Me.Decremento_listino_in__
Forms!Ins_articoli![Comando67].Visible = False
End If

Grazie in anticipo Dino


Ma per caso l'emulazione del tasto ESC la vuoi fare per effettuare una
specie di annullamento dei dati inseriti nella maschera ed in attesa di
essere scritti nella tabella ? Se � cos�, guarda che puoi ottenere quello
che desideri semplicemente gestendo l'evento form_beforeupdate.

Ciao
Antonio


Dino

unread,
Dec 20, 2009, 4:04:19 AM12/20/09
to
On 19 Dic, 17:53, "Antonio" <antonewsgr...@tiscali.it> wrote:
> "Dino" <verrengia.d...@alice.it> ha scritto nel messaggionews:77718713-9f2d-4bc0...@d21g2000yqn.googlegroups.com...
> l'emulazione "ESC" si annulla lìinserimento.Se invece aggiorno

> l'importo noto (La famosa matita in alto alla sinistra del Form)che
> per un istante sisalva il record e poi mi ritorna il simbolo del
> record da salvare.Cliccando su lpulsante emulazione non fa altro che
> confermare il salvataggio piuttosto che annullarlo.
> L'aggiornamento di quell'importo avviene inserendo in alcuni campi dei
> valori prelevati in automatico da una sottomaschera.Evento Dblclick
> della sottoform ed vengono inseriti i valori.Vacendo così si aggiorna
> essere scritti nella tabella ? Se è così, guarda che puoi ottenere quello

> che desideri semplicemente gestendo l'evento form_beforeupdate.
>
> Ciao
> Antonio- Nascondi testo citato

>
> - Mostra testo citato -

Ciao Antonio e grazie per la risposta.Sì e' proprio così.intendi
utilizzare il sendkeys "{esc}" l'evento form_beforeupdate.
Grazie Dino

Antonio

unread,
Dec 20, 2009, 6:08:21 AM12/20/09
to

"Dino" <verreng...@alice.it> ha scritto nel messaggio
news:aa86e2e5-5f00-4eff...@d20g2000yqh.googlegroups.com...
> l'emulazione "ESC" si annulla l�inserimento.Se invece aggiorno

> l'importo noto (La famosa matita in alto alla sinistra del Form)che
> per un istante sisalva il record e poi mi ritorna il simbolo del
> record da salvare.Cliccando su lpulsante emulazione non fa altro che
> confermare il salvataggio piuttosto che annullarlo.
> L'aggiornamento di quell'importo avviene inserendo in alcuni campi dei
> valori prelevati in automatico da una sottomaschera.Evento Dblclick
> della sottoform ed vengono inseriti i valori.Vacendo cos� si aggiorna
> essere scritti nella tabella ? Se � cos�, guarda che puoi ottenere quello

> che desideri semplicemente gestendo l'evento form_beforeupdate.
>
> Ciao
> Antonio- Nascondi testo citato
>
> - Mostra testo citato -

Ciao Antonio e grazie per la risposta.S� e' proprio cos�.intendi


utilizzare il sendkeys "{esc}" l'evento form_beforeupdate.
Grazie Dino

Appunto... evita di impelagarti nel lanciare un esc col sendkeys, quando
puoi ottenere lo stesso effetto impostando cancel = true nel beforeupdate.


Dino

unread,
Dec 20, 2009, 6:39:54 AM12/20/09
to
On 20 Dic, 12:08, "Antonio" <antonewsgr...@tiscali.it> wrote:
> "Dino" <verrengia.d...@alice.it> ha scritto nel messaggionews:aa86e2e5-5f00-4eff...@d20g2000yqh.googlegroups.com...
> > l'emulazione "ESC" si annulla lìinserimento.Se invece aggiorno

> > l'importo noto (La famosa matita in alto alla sinistra del Form)che
> > per un istante sisalva il record e poi mi ritorna il simbolo del
> > record da salvare.Cliccando su lpulsante emulazione non fa altro che
> > confermare il salvataggio piuttosto che annullarlo.
> > L'aggiornamento di quell'importo avviene inserendo in alcuni campi dei
> > valori prelevati in automatico da una sottomaschera.Evento Dblclick
> > della sottoform ed vengono inseriti i valori.Vacendo così si aggiorna
> > essere scritti nella tabella ? Se è così, guarda che puoi ottenere quello

> > che desideri semplicemente gestendo l'evento form_beforeupdate.
>
> > Ciao
> > Antonio- Nascondi testo citato
>
> > - Mostra testo citato -
>
> Ciao Antonio e grazie per la risposta.Sì e' proprio così.intendi

> utilizzare il   sendkeys "{esc}" l'evento form_beforeupdate.
> Grazie Dino
>
> Appunto... evita di impelagarti nel lanciare un esc col sendkeys, quando
> puoi ottenere lo stesso effetto impostando cancel = true nel beforeupdate.- Nascondi testo citato

>
> - Mostra testo citato -

Come sempre preciso e sintetico
Grazie mille.
NB:Mi permetto di approfittarne della tua pazienza.Volevo che mi dessi
un consiglio sul post appena sopra a questo a riguardo "la
segnalazione di campo gia' esistente" con campo a valore predefinito
"AB"

Grazie ancora e scusa se ne approfitto della tua disponibilita'
Dino

Dino

unread,
Dec 20, 2009, 2:08:12 PM12/20/09
to
> Dino- Nascondi testo citato

>
> - Mostra testo citato -

Eccomi qua' ancora .Ho provato ad impostare cancel = true nel
beforeupdate del form in esame ma non funziona.Prob. non ti ho capito.
Io ho disabilitato ESC da tastiera e vorrei creare un pulsante di
comando dove l'utente sia consapevole dell'annullamento
dell'inserimento.
Con il Sendkeys l'ho trovato,pero' non sempre funziona.Ma il Cancel =
True non posso inserirlo nel pulsante di controllo.Vero?
Grazie
Dino

Antonio

unread,
Dec 20, 2009, 3:06:35 PM12/20/09
to
[CUT]

Eccomi qua' ancora .Ho provato ad impostare cancel = true nel
beforeupdate del form in esame ma non funziona.Prob. non ti ho capito.
Io ho disabilitato ESC da tastiera e vorrei creare un pulsante di
comando dove l'utente sia consapevole dell'annullamento
dell'inserimento.
Con il Sendkeys l'ho trovato,pero' non sempre funziona.Ma il Cancel =
True non posso inserirlo nel pulsante di controllo.Vero?
Grazie
Dino

---------- RISPOSTA -------------
Non so bene cosa vorresti fare e mi sono limitato ad immaginare che tu
voglia simulare l'uso del tasto ESC, visto che battendo il tasto ESC si
riesce ad annullare il valore immesso in un controllo e, pigiandolo una
seconda volta, ad annullare anche lo stato della maschera, ovvero la
condizione di "aggiornamento in corso" che assume la maschera non appena
inizi a scrivere qualcosa in un qualsiasi controllo associato ad un campo di
tabella. Questa particolare condizione la si pu� capire quando sulla parte
sinistra della maschera vedi apparire una matita al posto del solito
triangolino nero. La matita sta ad indicare che � stato modificato qualcosa
e che quindi i dati valorizzati nei controlli della maschera sono in attesa
di essere scaricati sulla tabella (o query) associata.
Bene. A questo punto ci si pu� chiedere: ma se � presente o meno quella
specie di matitina lo posso sapere nel corso di una routine evento ? La
risposta � s�: la propriet� della maschera dirty ti indica proprio questa
cosa. Allora nel programma tu puoi inserire una routine di controllo di ogni
valore immesso nella maschera in un unico punto, all'evento beforeupdate
della maschera, e cos� scatenare l'aggiornamento oppure rifiutarlo se i dati
non sono coerenti.
Un banalissimo esempio:
sub form_beforeupdate (cancel as integer)
if not me.dirty then
msgbox "come sei arrivato qui se non c'� niente da aggiornare ?"
exit sub
end if
if trim (me.cognome) = "" then
msgbox "aggiornamento non permesso senza l'inserimento del cognome"
goto fattoerrore
end if
if non isdate (datanascita) then
msgbox "data di nascita non corretta"
goto fattoerrore
end if
... altre verifiche di contenuti...
' se non hai intercettato nessun errore l'exit sub successivo far�
aggiornare il record
exit sub
fattoerrore:
me.cognome.undo
me.datanascita.undo
me.undo
' ne puoi mettere anche degli altri
cancel = true
end sub

il cancel=true inserito qui sopra fa in modo che l'aggiornamento non venga
effettuato. Uno o due (a anche di pi�) me.undo servono a cancellare il
contenuto del controllo o dell'intera maschera. Giocando opportunamente con
queste propriet� tu puoi scatenare qualsiasi cosa, anche meglio che
simulando il tasto ESC.

Ciao
Antonio


Dino

unread,
Dec 20, 2009, 3:13:07 PM12/20/09
to
On 20 Dic, 21:06, "Antonio" <antonewsgr...@tiscali.it> wrote:
> [CUT]
>
> Eccomi qua' ancora .Ho provato ad impostare  cancel = true nel
> beforeupdate del form in esame ma non funziona.Prob. non ti ho capito.
> Io ho disabilitato ESC da tastiera e vorrei creare un pulsante di
> comando dove l'utente sia consapevole dell'annullamento
> dell'inserimento.
> Con il Sendkeys l'ho trovato,pero' non sempre funziona.Ma il Cancel =
> True non posso inserirlo nel pulsante di controllo.Vero?
> Grazie
> Dino
>
> ----------  RISPOSTA  -------------
> Non so bene cosa vorresti fare e mi sono limitato ad immaginare che tu
> voglia simulare l'uso del tasto ESC, visto che battendo il tasto ESC si
> riesce ad annullare il valore immesso in un controllo e, pigiandolo una
> seconda volta, ad annullare anche lo stato della maschera, ovvero la
> condizione di "aggiornamento in corso" che assume la maschera non appena
> inizi a scrivere qualcosa in un qualsiasi controllo associato ad un campo di
> tabella. Questa particolare condizione la si può capire quando sulla parte

> sinistra della maschera vedi apparire una matita al posto del solito
> triangolino nero. La matita sta ad indicare che è stato modificato qualcosa

> e che quindi i dati valorizzati nei controlli della maschera sono in attesa
> di essere scaricati sulla tabella (o query) associata.
> Bene. A questo punto ci si può chiedere: ma se è presente o meno quella

> specie di matitina lo posso sapere nel corso di una routine evento ? La
> risposta è sì: la proprietà della maschera dirty ti indica proprio questa

> cosa. Allora nel programma tu puoi inserire una routine di controllo di ogni
> valore immesso nella maschera in un unico punto, all'evento beforeupdate
> della maschera, e così scatenare l'aggiornamento oppure rifiutarlo se i dati

> non sono coerenti.
> Un banalissimo esempio:
> sub form_beforeupdate (cancel as integer)
> if not me.dirty then
>    msgbox "come sei arrivato qui se non c'è niente da aggiornare ?"

>    exit sub
> end if
> if trim (me.cognome) = "" then
>    msgbox "aggiornamento non permesso senza l'inserimento del cognome"
>    goto fattoerrore
> end if
> if non isdate (datanascita) then
>    msgbox "data di nascita non corretta"
>    goto fattoerrore
> end if
> ... altre verifiche di contenuti...
> ' se non hai intercettato nessun errore l'exit sub successivo farà

> aggiornare il record
> exit sub
> fattoerrore:
> me.cognome.undo
> me.datanascita.undo
> me.undo
> ' ne puoi mettere anche degli altri
> cancel = true
> end sub
>
> il cancel=true inserito qui sopra fa in modo che l'aggiornamento non venga
> effettuato. Uno o due (a anche di più) me.undo servono a cancellare il

> contenuto del controllo o dell'intera maschera. Giocando opportunamente con
> queste proprietà tu puoi scatenare qualsiasi cosa, anche meglio che

> simulando il tasto ESC.
>
> Ciao
> Antonio

"Alla faccia della sintesi"Complimenti per la spiegazione.Scherzi a
parte grazie per la risposta.Adesso non posso provare
Doamni provo e poi ti lascio il post di conferma omeno.
Grazie ancora Dino

Dino

unread,
Dec 22, 2009, 1:26:32 PM12/22/09
to
> Grazie ancora Dino- Nascondi testo citato

>
> - Mostra testo citato -

Ciao Antonio.Ho provato ad impostare il tutto ma mi da una
problematica.Nel beforeupdate de form sono andato ad inserire per
prova alcuni campi con Undo.Il problema e' che non mi permette di
inserire il record.
Nell'eliminare tale impostazione funziona tutto.Sara' la neve che ho
spalato ma non mi funziona.
Grazie ancora Dino

0 new messages