Newsgroup: it.comp.appl.access
Titolo: Impostare valore variabile da altro codice

Salve a tutti.....
Gradirei sapere se esiste un qualsiasi modo di cambiare/sostituire in
modo permanente il valore di una variabile (formato data) contenuta in
una routine evento di un controllo all'interno di una maschera (es.
maschera1) con il codice di un'altra routine di evento di un pulsante
contenuto in un'altra maschera (es. maschera2).
Es.: Routine controllo in maschera1
omissis
Dim DataScadenza As Date
DataScadenza = #11/1/2012#
Ecco.... come posso dal pulsante presente nella maschera2 cambiare:
#11/1/2012# ??
 
Spero di esermi spiegato bene.
Distinti saluti a tutti
 
M7a1x (quello di marte)

 ...
 
Temo di no - visto le tante risposte.
Non è chiaro cosa vuoi fare e soprattutto perché vuoi farlo.
p.e. "permanente" e "variabile" è una contraddizione.
Prova di descrivere meglio il problema invece del modo
"irregolare" che vuoi usare per risolverlo.
 
 
-- 
Ciao
Karl
*********
Access FAQ:  
http://www.donkarl.com/it
 
 

 - Mostra testo citato -
 
Ciao Karl...  provo a riformulare
 
nel primo post ho inserito un pezzo di una routine evento, dove è
presente la dichiarazione di una variabile tipo data
e l'assegnazione alla stessa di un valore e fino a quì ci siamo; (la
posto nuovamente):
esempio: Maschera1 su evento apertura:
Dim DataScadenza As Date
DataScadenza = #11/1/2012#
Così come è scritta, dentro la routine, il valore di DataScadenza
rimarrà sempre 11/1/2012 oppure per cambiare il suo valore si deve
intervenire manualmente e modificare la routine che la contiene. Io
vorrei farlo in modo non manuale ma da altro codice
A questo punto la mia domanda è: posso da una routine di un controllo
di un'altra maschera (qualsiasi) cambiare il pezzetto della routine di
maschera1 su evento apertura
da (per esempio): #11/112012# a #12/1/2012# ma attenzione, non voglio
assegnare alla variabile "DataScadenza" un valore diverso, voglio
cambiare il pezzo della riga della routine in modo definitvo; il
risultato alla fine è quasi lo stesso, si cambia il valore alla
variabile ma in modo definitivo ovvero fino a quando si vorrà cambiare
nuovamente (da altra routine). Quindi alla prossima apertura della
maschera1
Considera anche banale l'esempio ma parlando più in generale: è
possibile cambiare una riga di un codice di una routine da un'altra
routine?
Le "infinite" risposte giunte a questo quesito mi stanno dando la
certezza che la cosa sia impossibile da realizzare o forse..... non si
sa mai
Spero di essere stato più chiaro.
Grazie per l'attenzione.
 
M7a1x

 ...
 
Tecnicamente è possibile p.e. con il metodo ReplaceLine
(vedi <F1>, anche per il metodo Find), però come già
scritto è "irregolare" perché normalmente non si lavora così.
 
Per cambiare il valore di una variabile non si riscrive
il codice (che dopo si deve ancora salvare) ma si prende
il valore da una fonte aggiornabile, di solito una tabella, p.e.
 
DataScadenza = DLookUp("NomeCampo", "NomeTabella")
 
o tramite un Recordset di DAO o un controllo di una maschera ecc.


 - Mostra testo citato -
 
Grazie 1000 Karl....
Ho visto il metodo ReplaceLine e anche il metodo Find..... quello che
non riesco a tracciare è il modulo della maschera interessata;
entrambi i metodi che mi hai segnalato hanno bisogno obbligatoriamente
(giustamente) del dato "espressione" che dovrebbe essere il modulo che
contiene i dati da sostituire.
E' proprio questo che non riesco a stabilire...
Supponiamo che la riga da sostituire e la riga 5 nel modulo della
maschera1, quale sarà il dato "espressione". Il dato espressione deve
essere una variabile tipo modulo oppure devo fare prima riferimento
alla maschera? Mistero
Saluti

 alla maschera?
 
Se insisti di complicarti la vita... la sintassi sarebbe:
 
Forms!Maschera1.Module.ReplaceLine 5, "TuaNuovaRigaDiCodice"
 
La Maschera1 dev'essere aperta (basta invisibile) per poter
salvare la modifica.
 
Per altri metodi come Find o CountOfLines dove non vuoi salvare
una modifica non è necessario che la maschera è aperta se usi
la sintassi per module di classe:
 
Form_Maschera1.Module.CountOfLines


 - Mostra testo citato -
 
Karl.... mistero risolto:
 
Dim TestoData As String
TestoData = "DataScadenza = #" & DataScadenza & "#"
 
Forms![Maschera1].Module.ReplaceLine 49, DataScadenza
 
Grazie ancora per l'aiuto
 
Saluti
 
M7a1x

 - Mostra testo citato -
 
Ok funziona se il codice non è protetto da password, e se volessi
impostare una password al codice?

 impostare una password al codice?
 
Devi usare un metodo regolare come descritto.
 
Password o MDE/ACCDE sono due delle ragioni perch�
non si usa questa tecnica in una situazione normale.


 Access FAQ:  
http://www.donkarl.com/it
 
 
Karl per il momento va benissimo così!
Ti ringrazio di tutto.
Distinti Saluti
M7a1x