Newsgroup: it.comp.appl.access
Titolo: valori predefiniti di un record sul successivo

ho una tabella anagrafe
ho una tabella dati
no una maschera "anagrafe" collegata alla tabella anagrafe
nella maschera anagrafe vi è una sottomaschera "dati" collegata alla
tabella dati
relazioni 1 a molti tramite campo CF
inserisco i campi sull'anagrafe
inserisco i campi nel record dati della sottomaschera,
devo inserire un nuovo record nella tabella dati 
a questo punto vorrei:
che nel record successivo dei dati (dello stesso record di anagrafe)  vi
siano come predefinito tutti i valori dei campi del record precedente 
appartenente al record dell'anagrafe per poterli poi modificare se diversi.
c'è modo di farlo?
come?
grazie 
luigi
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 
guardati questo 3D:
"Mantenere stesso valore campo su record diversi" 15/09/2007 20.56 di T_A_O
C'e anche un riferimento ad un link sul sito comune (di roberto dal 
portatile)
Comunque la parolina magica e' DefaultValue
-- 
ac
y-1=x

Alessandro Cara ha scritto:



ho visto, e già utilizzo questa opzione su un altro applicativo, ma è per
controlli singoli, a me servirebbe per l'intera maschera (oltre 40
controlli in formati vari, testi, numerici, SI/NO ecc) e i valori devono
essere uguali al record visualizzato al momento e non all'ultimo inserito.



su current
if not newrecord then
   for each ctrl in controls
	strl.defaultvalue = ctrl
   next
endif
-- 
ac
y-1=x

Alessandro Cara ha scritto:

non funge! 
al nuovo record mi da tutti i campi vuoti
e se ritorno indietro mi da errore 424 sulla riga del codice
strl.DefaultValue = ctrl



La cosa la ho scritta al volo. La logica e' quella.
Il 424 lo da probabilmente poiche' ctrl e' null
Controlla attraverso il debug se passa per la routine e fa le cose 
correttamente (soprattutto il corretto test sul newrecord)
Non ho compreso la storia del se "torno indietro". Su un record 
esistente? Se e' cosi' non ci dovrebbe passare sempre a causa di quella 
if su newrecord
-- 
ac
y-1=x

 strl.DefaultValue = ctrl
aggiungo che, se fosse più semplice, potrei inserire un pulsante di
comando che mi copi tutti i dati dell'ultimo record di quella
sottomaschera in un nuovo record . (con quale codice?)
Una considerazione: ma se nel record vi è un contatore (calcolato o di
default) il valore si duplicherebbe incrementato?
luigi


Alessandro Cara ha scritto:

una volta pigiato sul pulsante di default di nuovo record non copiandomi i
dati sul nuovo record, ho pigiato sulla freccina (sempre di default) per
tornare indietro, e a quel punto che mi da l'errore 424.
l.



Alt! I dati di default da dove li prendi?
Il codice che ho scritto usa i valori di riga corrente (quindi del 
subform "dati") ed inoltre, non lo ho esplicitato, il tutto funziona 
dalla seconda riga in poi e se torni indietro non dovrebbe passare dalla 
istruzione che hai citato (poiche' la riga "non" dovrebbe essere newrecord)
-- 
ac
y-1=x

Alessandro Cara ha scritto:

moment!!!
non sono i dati di default, ma i pulsanti avanti, indietro, nuovo record,
primo record e ultimo record.
i dati sono quelli memorizzati nel record precedente con anche i contatori.



scrivi cosi:
ctrl.DefaultValue = ctrl
-- 
Ciao
Access 


ooops non mi eo affatto accorto della tremenda digitazione
-- 
ac
y-1=x

Alessandro Cara ha scritto:

AAAAHHHHH!   TI HO PESCATO!!!!!!
anche gli dei sbagliano!!!!!!   ha! ha!
non fa niente!  ti perdono e te lo consento! 
luigi
e comunque ti ringrazio  per l'aiuto!
l.


 Per favore vuoi postare l'intera funzione cosi' come la hai scritta?
ok!
il codice completo sull'evento "su corrente" della sottomaschera dati è:
Private Sub Form_Current()
If Cornice191 = 1 Then
tipoausilio.Visible = True
ttempi_aggiuntivi.Visible = True
tmotivo.Visible = True
Else
tipoausilio.Visible = False
ttempi_aggiuntivi.Visible = False
tmotivo.Visible = False
End If
'in nuovo record, valori uguali al record precedente
If Not NewRecord Then
For Each ctrl In Controls
ctrl.DefaultValue = ctrl
Next
End If
End Sub
naturalmente il codice incriminato è l'ultima parte
luigi
