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

chiudere masch senza salv record

341 views
Skip to first unread message

faina

unread,
Mar 29, 2003, 1:19:43 PM3/29/03
to
Ciao, vorrei sottoporvi un problema.
Ho una maschera di inserimento dati in cui Ho creato (con una macro) un
pulsante di chiusura maschera .
Il problema è che se ho inserito parzialmente i dati (non salvandoli),
questi vengono salvati ugualmente al momento che chiudo la maschera. Come
posso ovviare a questo fatto?
Vi ringrazio.
------------------
elimina "Cancella" dal mio indirizzo di posta

Roberto da casa

unread,
Mar 30, 2003, 11:17:59 AM3/30/03
to

"faina" <fainaC...@jumpy.it> ha scritto nel messaggio
news:MPG.18f0022ab...@powernews.iol.it...

> Ciao, vorrei sottoporvi un problema.
> Ho una maschera di inserimento dati in cui Ho creato (con una macro) un
> pulsante di chiusura maschera .
> Il problema è che se ho inserito parzialmente i dati (non salvandoli),
> questi vengono salvati ugualmente al momento che chiudo la maschera. Come
> posso ovviare a questo fatto?
> Vi ringrazio.

Prova così:

1) elimona il pulsante di chiusura maschera impostando a No la proprietà
Pulsante chiusura.
2) Dichiarati in un modulo del database una variabile globale di tipo
Booleano chiamata Pippo.
3) Inserisci nella maschera un pulsnte di comando pigiando il quale
chiuderai la maschera.
4) A fronte dell'evento "Su clic" del pulsante di comando di cui al punto
3), genera il seguente codice VBA:

Pippo = True
DoCmd.Close

5) A fronte dell'evento "Su apertura" della maschera genera il seguente
codice VBA:

Pippo = False

6) A fronte dell'evento "Prima di aggiornare" della maschera genera il
seguente codice VBA:

If Pippo = True Then
If MsgBox("Vuoi salvare il record corrente", _
vbQuestion + vbYesNo, _
"Chiusura maschera") = vbNo Then
Cancel = True
End If
End If

Dovresti però proteggerti anche dalla possibilità che l'operatore possa
chiusere il database, nel qual caso il record digitato a metà verrebbe
comunque registrato. Per fare questo trovi due FAQ FAQ sul Sito Comune (link
qui sotto), una che elimina il pulsante di chiusura di Access ed un'altra
che inibisce i tasti Alt+F4; naturalmente metterai un tasto per la chiusura
del database; a fronte dell'evento "Su clic" di tale pulsante, prima di
chiudere Access imposterai a True Pippo.
Se preferisci, comunque sia, puoi chiedere SEMPRE il consenso per registrare
un nuovo record; anche di questo trovi un esempio nel Sito Comune.

--
Roberto

---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


Steve Huges

unread,
Mar 30, 2003, 1:12:35 PM3/30/03
to
"Roberto da casa" <r.ma...@libero.it> ha scritto nel messaggio
news:XMEha.62198$7y3.1...@twister1.libero.it...

Oppure salvi tutto il record su un'array e lavori su quello, e se alla fine
vuoi scaricare tutto sul database lo fai altrimenti esci e non succede
niente.
Questo è il miglior metodo in assoluto.

Giorgio prx

unread,
Mar 30, 2003, 4:28:09 PM3/30/03
to

"faina" <fainaC...@jumpy.it> ha scritto nel messaggio
news:MPG.18f0022ab...@powernews.iol.it...

Ciao faina
Nell'evento Unload della maschera annulla le variazioni es...

Private Sub Form_Unload(Cancel As Integer)

On Local Error Resume Next
DoCmd.RunCommand acCmdUndo

End Sub

On local error serve quando chiudi la maschera e non ci sono variazioni, in
questo caso acCmdUndo darebbe errore.

Ciao Giorgio.

MA

unread,
Mar 31, 2003, 2:33:31 AM3/31/03
to
[CUT]
Nel solito generoso impeto di aiuto Roberto scrisse:

Per fare questo trovi due FAQ FAQ sul Sito Comune (link
> qui sotto),
[Cut]
Al che la domanda:
Ma se erano tre le domande frequenti, diventavano FAQ FAQ FAQ??

ciao e buongiorno
MAssimiliano

--------------------------------
Inviato via http://usenet.libero.it

Roberto da casa

unread,
Mar 31, 2003, 4:10:28 AM3/31/03
to

"MA" <massimilia...@kksrl.com> ha scritto nel messaggio
news:62Z94Z45Z156Y1...@usenet.libero.it...

> [CUT]
> Nel solito generoso impeto di aiuto Roberto scrisse:
> Per fare questo trovi due FAQ FAQ sul Sito Comune (link
> > qui sotto),
> [Cut]
> Al che la domanda:
> Ma se erano tre le domande frequenti, diventavano FAQ FAQ FAQ??
>

Esatto!!! :-))

> ciao e buongiorno

Buongiorno

> MAssimiliano

Roberto da casa

unread,
Mar 31, 2003, 5:28:04 AM3/31/03
to

"Steve Huges" <hu...@email.it> ha scritto nel messaggio
news:nsGha.44434$i26.1...@news2.tin.it...

Rispetto il tuo punto di vista ma non lo condivido assolutamente.

faina

unread,
Apr 1, 2003, 11:58:18 AM4/1/03
to
In article <XMEha.62198$7y3.1...@twister1.libero.it>,
r.ma...@libero.it says...

Ti ringrazio per la spiegazione così particolareggiata, ma c'è qualcosa
che non funziona: quando premo il pulsante la maschera si chiude ma il
problema si ripresenta. Ho seguito scrupolosamente le tue indicazioni,
l'unico dubbio che ho riguarda la creazione del modulo con una "variabile
globale di tipo Booleano" (????) che ho interpretato con "Dim Pippo As
String", va bene? inoltre, devo dare al modulo un nome particolare?

Ciao

faina.

--

Roberto da casa

unread,
Apr 1, 2003, 12:59:41 PM4/1/03
to

"faina" <fainaC...@jumpy.it> ha scritto nel messaggio
news:MPG.18f3e391b...@powernews.iol.it...

Per quanto riguarda cosa sia una variabile globale leggi cosa dice l'help.

faina

unread,
Apr 6, 2003, 5:18:35 AM4/6/03
to
In article <hskia.3739$mg5.1...@twister2.libero.it>,

Scusa se ti rompo ancora, ho dato un occhiata all'help e, se ho capito
bene, ho inserito nel modulo "Public Pippo As Boolean". Ora il pulsante
funziona e, se voglio, il record non viene salvato. Purtroppo, però, ho
notato che nel momento in cui rientro nella maschera e vado ad inserire
un nuovo record il contatore va al numero successivo. Hai un' idea perchè
questo non avvenga? Ciao

Roberto da casa

unread,
Apr 6, 2003, 11:32:49 AM4/6/03
to

"faina" <fainaC...@jumpy.it> ha scritto nel messaggio
news:MPG.18fa0f953...@powernews.iol.it...
[CUT]

>
> Scusa se ti rompo ancora, ho dato un occhiata all'help e, se ho capito
> bene, ho inserito nel modulo "Public Pippo As Boolean". Ora il pulsante
> funziona e, se voglio, il record non viene salvato. Purtroppo, però, ho
> notato che nel momento in cui rientro nella maschera e vado ad inserire
> un nuovo record il contatore va al numero successivo. Hai un' idea perchè
> questo non avvenga? Ciao
>

E' normale che un campo contatore si comporti così e non puoi intervenire in
nessun modo, visto che non si può intervenire sul valore di un campo
contatore; in realtà un intervento da fare ci sarebbe: dopo aver rinunciato
alla registrazione di un nuovo record dovresti compattare il database: per
compattare un database da codice VBA vai sul Sito Comune (link qui sotto):
nella Sezione General ci trovi due o tre FAQ che trattano l'argomento.
D'altra parte le chiavi primarie servono per rendere i record univoci, per
la qual cosa non ha alcuna importanza se nei valori della chiave primaria ci
sono o meno dei buchi.
Prova a valutare l'alternativa di cambiare il tipo dato della chiave
primaria da Contatore a Numerico e di gestirti tu l'incremento.

0 new messages