Newsgroup: it.comp.appl.access
Titolo: potete verificarmi questa routine?

Ciao a tutti.
Premessa: ho una maschera aperta ma nascosta con un solo campo che si chiama
"utente" e una maschera aperta e visualizzata "Maschera1" con una marea di
campi e tra questi un campo chiamato "compilatore" ed un altro chiamato
"aggiornato".
Ho creato la seguente routine su "prima di inserire" della maschera1:
Private Sub Form_BeforeInsert(Cancel As Integer)
If IsNull(Forms!Maschera1!compilatore) Then
    Forms!Maschera1!compilatore = Forms!Nascosta!utente
     Me!compilatore.Requery
ElseIf Not IsNull(Forms!Maschera1!compilatore) Then
    Forms!Maschera1!aggiornato = Forms!Nascosta!utente
     Forms!Maschera1!aggiornato.Requery
      End If
      Exit Sub
 End Sub
La prima parte funziona e la seconda no... perchè?
Dovrebbe verificare se il campo compilatore sia nullo e se si, quando inizia
l'inserimento scrivere sul campo stesso il valore preso dal campo utente
della maschera "Nascosta", altrimenti scrivere il valore stesso sul campo
"aggiornato"...
Thanks
Axel_4

 ha scritto nel messaggio
news:9jjv6b$7ih$1...@newsfeed.cineca.it...

Se crivi così cosa succede?
Private Sub Form_BeforeInsert(Cancel As Integer)
If IsNull(Me!compilatore) Then
    Me!compilatore = Forms!Nascosta!utente
Else
    Me!aggiornato = Forms!Nascosta!utente
End If
End Sub
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


............
Succede la stessa cosa di prima, cioč il nome urnte lo mette nel campo
"Compilatore" ma non in quello "aggiornato"...
Ti assicuro che la casella di testo si chiama "aggiornato" e il nome
elemento č "aggiornato".
Non capisco perchč non voglia funzionare...


Secondo me il problema sta nell'evento BeforeInsert che si verifica solo
quando scrivi il primo carattere in un NUOVO record, ovviamente nel nuovo
record tutti i campi sono NULL e quindi l'implicazione č vera. Dovresti
associare il codice ad un altro evento magari legato al campo stesso che
intendi riempire per primo.
Ciao
Arturo


Mi dispiace, ma non riesco a capirlo neppure io.



...................
Intanto grazie a te e Arturo.
Continuando a sbattere la testa sul monitor e seguendo il consiglio di
Arturo...
Private Sub Form_BeforeUpdate(Cancel As Integer)
If IsNull(Me!compilatore) Then
    Me!compilatore = Forms!Nascosta!utente
Else
    Me!aggiornato = Forms!Nascosta!utente
End If
End Sub
Così funzia bene... :)))
La prima volta mette il valore su "compilatore" non appena vado al record
successivo,  quando modifico il valore di un campo già immesso mi mette il
valore dell'utente in "aggiornato"
Visto che ci sono faccio un'altra domandina veloce:
ho la maschera "Maschera1" che contiene tante sottomaschere e mi piacerebbe
che non le caricasse tutte (loro ed i loro dati) all'apertura della
maschera1 (per non rallentare il sistema) ma che venissero caricate solo
alla pressione di un pulsante creato ad hoc.
Visto che con Visible le carica comunque, come faccio?
Thanks for all.
Axel_4

 Visto che con Visible le carica comunque, come faccio?
Mah, a me sembra un'impresa impossibile ...
Puoi provare a stroncare l'origine dei dati nella sottomaschera
e poi riprisitnarla con un pulsante:
Su apertura maschera
Forms!maschera!sottomaschera.Form.Visible = False
Forms!maschera!sottomaschera.Form.RecordSource = ""
Nel pulsante:
Forms!maschera!sottomaschera.Form.Visible = True
Forms!maschera!sottomaschera.Form.RecordSource = "origine_dati"
Ciao
Arturo