Newsgroup: it.comp.appl.access
Titolo: controllo su modifica record

Ciao a tutti,
avrei bisogno di modificare questo comando in quanto vorrei che questo
box mi uscisse solo per i record da modificare e non sempre ad ogni
nuovo inserimento. Praticamente deve essere un allarme che si sta
modificando un record già esistente.
Questa routine evento su "prima di aggiornare" l'ho inserita nelle
proprietà di una sottomaschera.
Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim risp As Integer
risp = MsgBox("Vuoi confermare la variazione?", vbYesNo)
If risp = vbNo Then
DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
End If
End Sub
grazie e buona giornata
carlo

 ha scritto nel messaggio 
news:7c012b9d-3bd4-4627...@s31g2000yqs.googlegroups.com...
Ciao a tutti,
avrei bisogno di modificare questo comando in quanto vorrei che questo
box mi uscisse solo per i record da modificare e non sempre ad ogni
nuovo inserimento. Praticamente deve essere un allarme che si sta
modificando un record gi� esistente.
Questa routine evento su "prima di aggiornare" l'ho inserita nelle
propriet� di una sottomaschera.
Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim risp As Integer
risp = MsgBox("Vuoi confermare la variazione?", vbYesNo)
If risp = vbNo Then
DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
End If
End Sub
grazie e buona giornata
carlo
Risposta:
Creati una variabile che valorizzi solo quando vuoi
Su before update la verifichi e fai quello ch evuoi

 Su before update la verifichi e fai quello ch evuoi
grazie..... ma non ho capito l'aiuto.
mi dai un'altra chance?

 Su before update la verifichi e fai quello ch evuoi
grazie..... ma non ho capito l'aiuto.
mi dai un'altra chance?
Risposta:
stavolta puoi chiamare casa...
Allora l'evento form_beforeupdate avviene sia quando il record � nuovo che 
quando � gi� scritto.
Creati allora una variabile globale
Poi sull'evento dirty della form vedi se era o meno un NewRecord
se s�, allora metti la tua variabile su false e viceversa
Su form_beforeupdate verifichi la variabile.
Occhi che per far questo la variabile non la puoi mettere in un'evento ma lo 
devi mettere sopra a tutto il modulo
dopo Option explicit per capirci, altrimenti la variabile viene svuotata 
allo spirare dell'evento in cui l'hai dichiarata

 End Sub
If Me.NewRecord = False Then 'solo se non � un nuovo record
    If MsgBox("Vuoi confermare la variazione?", vbYesNo) = vbNo Then
      Me.Undo 'annulla tutte le modifiche nel record
      Cancel = True 'evita successivi eventi
    End If
End If
Vedi anche 
www.donkarl.com/it?FAQ4.32
.
-- 
HTH
Karl
*********
Access FAQ: 
www.donkarl.com/it
 

 Access FAQ:
www.donkarl.com/it
Karl sei mitico!!!
ti ringrazio di cuore!!!! ho copiato le tue istruzioni e funziona
tutto perfettamente.
io avrei anche un altro problemino da risolvere ma .... mi sembra di
approffittare della tua cortesia.
se hai tempo puoi guardare il post:
  filtro maschera access 2000
  ciao ho bisogno di una mano in quanto non riesco a far funzionare
questo filtro... ho postato un file con la situazione reale in cui mi
trovo [link] oppure al [link] il file si chiama " filtro
maschera.doc"... altro »
Di carlo  - 13 Nov -
ti ringrazio ancora.
ciao carlo