Newsgroup: it.comp.appl.access
Titolo: Aggiornare controllo sottomaschera su requery altra sottomaschera

Ho una maschera in cui una combo aggiorna due sottomaschere: SOTT1 e SOTT2
Entrambi contengono un campo DATA.
La mia necessità è che il VALORE PREDEFINITO di SOTT2.DATA sia = a 
SOTT1.DATA, ovvero che il campo SOTT2.DATA si imposti = a quello di 
SOTT1.DATA
Al primo UPDATE della COMBO tutto funziona, ma se effettuo un cambio 
nella combo, SOTT1.DATA si aggiorna ma non fa lo stesso SOTT2.DATA. 
Ovviamente ho messo nell'evento COMBO_AFTER_UPDATE sia Me.SOTT1.Requery 
che  Me.SOTT2.Requery .
Dove sto sbagliando???
Grazie a tutti

 Grazie a tutti
Ma le sottomaschere di cui parli sono MONORECORD? Come lo assegni il
valore DATA ai campi SOTT1.DATA e SOTT2.DATA e in quale momento???
-- 
Pablitomf
Lentamente muore chi abbandona un progetto prima di iniziarlo, chi non fa
domande sugli argomenti che non conosce, chi non risponde quando gli
chiedono qualcosa che conosce. (P.Neruda)
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 
La Sott1 è MonoRecord ed è l'ultimo record inserito (ad esempio il 1000 
con data 01/05/04 derivato da una SELECT) e quindi il campo data di 
SOTT1 è già stato inserito. La SOTT2 serve da maschera di inserimento ma 
la condizione deve essere appunto che quel record (ad esempio il 1001) 
non sia precedente al 01/05/04. Per cui volevo impostare quel valore 
come predefinito in modo che l'utente lo possa modificare.
Ciao e grazie

 Ciao e grazie
Non vorrei cambiare il tuo progetto... ma se proprio vuoi che non sia
inferiore alla data maggiore in archivio perchè non eviti quello che hai
fatto fin ora e fai un controllo che la data inserita non sia inferiore
alla stessa?  Puoi impostare un campo d'appoggio nominato ad es.
Data_Massima senza origine dati e lo poni = a Max([tuo_campo_data])... 
Poi sull'evento "Dopo aggiornamento" del campo data  nella maschera di
inserimento fai un bel controllo del tipo
If CvDate([tuo_campo_data])<CvDate(Data_Massima) Then
me.Undo 'così cancelli l'immissione
msgbox "Impossibile inserire una data antecedente all'ultima inserita"
Else : End If


 
La tua soluzione mi va benissimo ma fa parte di quello che mi serve. 
Infatti a me non basta inserire una regola di convalida (> o < di un 
certo valore) ma vorrei anche che il programma impostasse il controllo 
SOTT2.DATA allo stesso valore di SOTT1.DATA, proprio in quanto la data 
non può essere in alcun modo precedente. IL fatto è che se riaggiorno la 
sottomaschera SOTT1, la SOTT2 non si riaggiorna di conseguenza, ed è 
questo il vero problema al di là della convalida del controllo.
Ciao  e grazie
Marco

 Marco
wè, se proprio necessita ( e non capisco pxkè ), necessita, quindi
soluzione!!!!
Suppongo che ci sia una Form Contenitore di Queste SOTTO1 e SOTTO2...
ipotizzo si chiami  PRINCIPALE.
Sul Campo DATA della Form SOTTO1 sull'evento "Dopo Aggiornamento" scrivi:
Forms![PRINCIPALE]![SOTTO2].Form![DATA] = Me.DATA
Funge? E' quello che ti serve?



Sì, e grazie dell'attenzione e delle soluzioni.
Nel frattempo ho trovato il motivo per cui non andava. Mi spiego meglio:
Nelle sottomaschere esiste anche un controllo PROGRESSIVO.
Logicamente Sott2.Progressivo deve essere Sott1.Progressivo +1
quindi nell'origine controllo di Sott2.Progressivo ho messo:
= [Forms]![PRINCIPALE]![SOTTO1].[PROGRESSIVO] +1
e funziona nel senso che se aggiorno la COMBO che filtra SOTT1 mi aggiorna
anche il valore di SOTT2.PROGRESSIVO mediante un Me.sott2.requery.
Per il campo DATA io inserivo il valore
= [Forms]![PRINCIPALE]![SOTTO1].[DATA] nel VALORE PREDEFINITO e al 1°
aggiornamento della maschera me lo prendeva, ma eventuali requery non
avevano effetto.
Mettendo la riga in ORGINE CONTROLLO e formattandola adeguatamente come
CVDATE()  tutto va a posto, anche perché il formato del controllo era "DATA
IN CIFRE".
Ciao e Grazie
Marco