Newsgroup: it.comp.appl.access
Titolo: help su controllo

ciao a tutti,
magari e' una cosa banale, ma non sono riuscito a trovare la
soluzione:dato il controllo idcliente in form , ho la necessita' di
visualizzare un messaggio al momento in cui si cambia il valore al
campo, mentre quando il campo non ha dati, il messaggio non deve
essere visualizzato.Ovvero, il messaggio deve esserci quando si cambia
il capo idcliente che e' l'intestatario della fattura (quindi c'e'
gia' un valore) , mentre al momento in cui si fa una nuova fattura non
deve esserci. Ho trovato questa soluzione, ma mi visualizza il
messaggio sia che il campo fosse popolato o no.
Private Sub IDCLIENTE_BeforeUpdate(Cancel As Integer)
If Me.Dirty = True Then
Dim STRMESSAGE As String, STRTITLE As String
Dim lresponse As Long
STRMESSAGE = "ATTENZIONE: SI STA MODIFICANDO L'INTESTATARIO DELLA
FATTURA. PROCEDERE?"
STRTITLE = "MODULO GESTIONE FATTURE"
lresponse = MsgBox(STRMESSAGE, vbYesNo + vbExclamation, STRTITLE)
If lresponse = vbNo Then
Cancel = True
Me.Undo
End If
End If
End Sub
il fatto che appaia il messaggio sia che si cambi l'intestatario sia
che si inserisca per la prima volta puo' essere "confondente" per
l'utente.Avete qualche suggerimento?
Grazie anticipate
 
ciao, Davide
--
CANTO DI UN PESCATORE SOLITARIO: 
Amo soltanto l'amo purchè non esca l'esca. (Boris Makaresko)


if Me.IDCliente <> "" then
  if MsgBox("Attenzione ...", ...) = vbno then
    cancel = true
  end if
end if

"Davide" <lak...@NOSPAMtiscali.it> ha scritto nel messaggio
news:1g2kvu013qmrs9in4...@4ax.com...

Invece di:
 If Me.Dirty = True Then
prova con:
 If Me.NewRecord = True Then
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 If Me.NewRecord = True Then
prima di tutto grazie a entrambi per l'interessamento:dal suggerimento
di Roberto (che e' il piu' veloce da fare) mi dava il problema
opposto: cioe' a nuovo cliente appariva il messaggio di attenzione,su
modifica del vecchio, nulla. Empiricamente ho mutato l'ordine logico,
assegnando If Me.NewRecord = False Then...
adesso funziona, ma vorrei capire qual'e' il percorso logico
dietro...avete idea? 
Private Sub IDCLIENTE_BeforeUpdate(Cancel As Integer)
If Me.NewRecord = False Then
Dim STRMESSAGE As String, STRTITLE As String
Dim lresponse As Long
STRMESSAGE = "ATTENZIONE: SI STA MODIFICANDO L'INTESTATARIO DELLA
FATTURA. PROCEDERE?"
STRTITLE = "MODULO GESTIONE FATTURE"
lresponse = MsgBox(STRMESSAGE, vbYesNo + vbExclamation, STRTITLE)
If lresponse = vbNo Then
Cancel = True
Me.Undo
End If
End If
End Sub



[CUT]
Non sono sicuro di capire cosa tu voglia sapere: resta il fatto che puoi
usare la proprietą NewRecord di una maschera per determinare se il record
corrente č nuovo; detta proprietą assume il valore True se il record
corrente č nuovo e il valore False nel caso contrario.
Quanto al resto del codice, non credo ti servano particolari delucidazioni,
visto che lo hai scritto tu.


corrente è nuovo e il valore False nel caso contrario.
perfetto cosi'...sono alle prime armi e non conoscevo NewRecord...:-)
grazie ancora e buona domenica a te e a tutti i partecipanti.
