Newsgroup: it.comp.appl.access
Titolo: Aggiornamento record e controlli associati

Ciao sono Arianna
il mio problema è questo:
Ho una maschera (che uso come maschera di Modifica con le classiche
funzioni: salva,elimina,annulla...) che mi rappresenta un record (maschera
singola)...e tutti i miei controlli (caselle di testo) hanno come origine
controllo un campo del mio recordset...io dovrei riuscire ad aggiornare
'esteticamente' il mio dato:
ho fra questi un campo 'Condivisione' che modifico tramite un'altra
maschera...questa mi restituisce il risultato che io vado a 'scrivere' nella
mia casella associata a 'Condivisione'...per veder il risultato devo
necessariamente usare me.requery per vedere il risultato sul controllo (se
io faccio me.Condivisione = "Tutti" la maschera non riflette la modifica, il
record assume "Tutti" ma il controllo associato NO) e il comando
me.Condivisione.requery non ha alcun effetto; però se io faccio il requery
la maschera mi aggiorna e salva il mio record sottostante con tutte le
eventuali modifiche che ho fatto anche erroneamente....
Se io clicco sul pulsante "Annulla" (che mi dovrebbe eliminare tutte le
modifche fatte dopo un salvataggio AVVENUTO tramite un click sul pulsante
"Salva") io non riesco ad annnullare le modifiche che ho fatto e soprattutto
non riesco ad annullare la modifca fatto nel controllo 'condivisione' perchè
il Requery mi ha salvato TUTTO...
In sintesi....Si può aggiornare un controllo associato ad un campo senza
eseguire un requery e senza che un comando di access mi salvi tutto il
record impedendo di annullare le modifiche erroneamente o indesideratamente
fatte??
LO SO CHE POTREBBE ESSERE UNA BANALITA' ma.... adesso non ne riesco a venir
fuori
Ho usato Me.repaint ma non ho visto effetti DESIDERATI..
Spero di essere stata chiara o altrimenti sono disposta ad un eventuale
chiarimento..


Ricapitoliamo, tu vuoi aggiornare un controllo di una maschera che è in
secondo piano? Se è così prova come ti ho detto:
forms("nomeMaschera").Controls("Condivisione") = me!nomecaselladitesto
Ciao.

 chiarimento..
Forse e' meglio.
Io non ho capito cosa devi fare.
Sib

Il mio problema è questo
io devo gestire la condivisione di ogni singolo record in ogni tabella
Il tutto lo gestisco con 2 maschere
una per la modifica, una che mi decide a chi devo condividere il singolo
record
quando sono nella maschera modifica posso eliminare,modificare,
salvare,annullare,stampare,condividere il singolo record. la maschera
modifica mi mostra il mio record, l'utente di appartenenza (Utente
'proprietario') e l'elenco degli utenti a cui è condiviso il dato (che è un
campo memo che contiene tutti i singoli codici utenti dei condivisori
separati da una virgola) opportunamente "Trasformato", quando clicco il
pulsante "Condividi a" mi si apre
una seconda maschera che mi mostra con due caselle di riepilogo tutti gli
utenti e gli utenti a cui è già condiviso il dato; se io modifico la lista
degli utenti di condivisione e confermo la modifica (nella maschera di
condivisione) perchè la nuova condivisione (CHE RIPETIZIONI!!) venga vista
anche sulla maschera
modifica, devo necessariamente fare un requery dopo aver assegnato ai
controlli le nuove impostazioni(Anche se faccio un sql UPDATE non succede
nulla di diverso da quello che c'è e mi ritrovo un record salvato),  MA se
allora l'utente BECCO mi clicca (sulla maschera modifica) sul pulsante
'Annulla' (il che significa che non vuole le modifiche che ha appena fatto
COMPRESA quella della condivisione)io gli ho già salvato il record con le
nuove condivisioni e con
altre possibili modifiche....
Ho pensato ad un controllo non associato che inizializzo all'apertura,
assegno ad una variabile il valore delle condivisioni originali e al momento
del click sull'annulla (se lui mi ha cambiato STRONZAMENTE le condivisioni)
io rimposterei il valore con quello della variabile (variabile che ,
intendiamoci se lui clicca su Salva della maschera viene aggiornata) MAAAAA,
se l'utente sfigato mi clicca sulla BARRA DEGLI STRUMENTI il pulsante Salva
Record io non riesco ad intercettare l'evento e sono fregata...
Capito??
Comunque grazie mille per il tempo che hai perso e te ne sono grata
Spero di essere stata più chiara (anche perchè quando devo spiegarmi faccio
una confusione..)
Ciao e Grazie
By Arianna

Ho ripostato a Sergio MAZZA (ti ho visto dopo)...
Ciao
By Arianna

 ha scritto nel messaggio
news:8rkmlc$e9p$1...@fe2.cs.interbusiness.it...

Forse ho capito;
quando clicchi sul bottone che assegna la nuova condivisione prova con:
- Forms("nomeMaschera").Controls("Condivisione") =
Forms("nomeMaschera").Controls("Condivisione") & "," &
Me!UtentedaCondividere
Con questa istruzione il record diventa "sporco" (Dirty) ma non viene
aggiornato; per annullare la modifica del controllo fai:
if me.dirty then
    me.condivisione.undo
end if
per annullare tutti gli inserimenti (non ancora aggiornati):
if me.dirty then
    me.undo
end if
Ciao.


MI VIENE DA PIANGERE!!!
Allora avevo provato a fare così come mi hai specificato
e avevo provato anche ad aggiornare i controlli alla chiusura della maschera
di condivisione MAAA
il mio controllo prende il valore nuovo MA NON ME LO VISUALIZZA!
Prima di condivisione:
campo IDUtente="1234" (valore assegnato)
me!IDUtente="1234"  (valore visualizzato)
campo ElencoUtenti "1234,2345,3456," (valore assegnato)
me!ElencoUtenti="1234,2345,3456," (valore visualizzato)
Clicco su condivisione
Modifico la condivisione con
strNewCond="1234,2345,3456,4567,5678,8910,"
Chiusura della maschera in modalità dialogo
assegnazione di nuovi valori:
me!ElencoUtenti=strElencoUtenti
RISULTATO
campo IDUtente="1234" (valore assegnato)
me!IDUtente="1234"  (valore visualizzato)
campo ElencoUtenti ="1234,2345,3456,4567,5678,8910," (valore assegnato)
me!ElencoUtenti="1234,2345,3456," (valore visualizzato)
Per fare in modo che il mio controllo visualizzi
"1234,2345,3456,4567,5678,8910," DEVO PER FORZA FARE UN REQUERY che mi salva
il record e mi 'blocca' l'UNDO
Hai capito??
Altrimenti non preoccuparti ho altri 3 giorni per pensarci...
Comunque Grazie Mille^Mille
Ciao
By Arianna

 ha scritto nel messaggio
news:8rseu0$acj$1...@fe1.cs.interbusiness.it...

No, non fare così che sono sensibile alle lacrime di una donna...
Non capisco; in pratica devi "inviare" la nuova stringa dalla maschera
"condivisione" alla maschera "sottostante" e nel controllo chiamato "elenco
utenti"? O no?
Se è così e strano che non funzioni il
forms("Nomemaschera").controls("elencoUtenti") = strElencoUtenti; io
utilizzo la stessa procedura per modificare controlli in altre maschere. Per
curiosità, puoi inviare il codice di chiusura della maschera di dialogo,
dove praticamente tenti di aggiornare elencoUtenti...
Ciao.

Ho trovato il modo:
il mio controllo IDUtente non è visibile
il mio controllo ElencoUtenti è visibile ma è il risultato di una funzione
che mi restituisce i nomi degli utenti e non i codici
il tutto è il risultato di una query
QUERY: SELECT IDUtente, CreaElenco(ElencoUtenti) AS ElencoCondivisori
i due controlli erano associati ai due campi risultanti...
Bene SOLUZIONE TROVATA e sopprattutto FUNZIONANTE:
la mia maschera modifica tratta un solo record alla volta, quindi se io in
un controllo ci metto il risultato di una funzione invece che associarlo ad
un campo, quando io modifico il controllo che rappresenta l'elenco degli
utenti (associato al campo) automaticamente si aggiorna il risultato della
funzione associata al controllo
me.IDUtente.ControlSource=IDUtente (campo query/tabella nascosto)
me.IDElencoUtenti.ControlSource=IDUtenti (campo query/tabella nascosto)
me.ElencoUtenti.ControlSource=CreaElenco(NZ([IDElencoUtenti];"")) (visibile)
Quindi io aggiorno solo me.ElencoUtenti (campo della tabella) e il mio
risultato sulla condivisione me.ElencoUtenti si aggiorna FATIDICAMENTE
AUTOMATICAMENTE senza requery, refresh e quant'altro e il mio UNDO funziona
BENISSIMO
Hai capito?? spero comunque ho un peso in meno (escluso sempre il mio!)
Mannaggia....
Grazie mille comunque sei stato molto di aiuto e molto di compagnia...
A Presto (si spera sempre che non siano problemi tecnici)


 risultato sulla condivisione me.ElencoUtenti si aggiorna FATIDICAMENTE
Comunque Grazie ho visto adesso il tuo Ultimo Tentativo
Ciao e Grazie
Arianna

 No, non fare cosě che sono sensibile alle lacrime di una donna...
Quanto sensibile??? da essere in due a piangere o avere tanta forza da farmi
smettere??
Ciao
By Arianna


Dipende dalle situazioni; se mi conviene farti smettere... Lo faccio.
Altrimenti la spalla č sempre pronta... (mamma mia questa č proprio da
lumacone).
Ciao.


Come mai??? ora piangi tu??
E a proposito della tua risposta....al fatto di sensibilità
("Tanto, tanto, tanto, tanto, tanto, tanto, tanto, tanto, tanto, tanto,
tanto,
tanto, tanto, tanto, tanto, tanto, tanto, tanto, tanto, tanto, tanto, tanto,
tanto, tanto, tanto, tanto, tanto, tanto, tanto, tanto, tanto, tanto, tanto,
tanto, tanto, tanto, tanto, tanto, tanto, tanto, tanto, tanto, tanto, tanto,
tanto, tanto, tanto, tanto, tanto, tanto, tanto, tanto, tanto...")
Ma dimmi... quanto ti hanno fatto soffrire le DONNE??
Ciao
By Arianna

 ha scritto nel messaggio
news:8rsm2l$q2o$1...@fe1.cs.interbusiness.it...

Tanto... Ahhhhhh (sospiro)
Ciao.

 Ciao.
Però è facile dire quanto si è sensibili con un COPIA-INCOLLA
...Molto... Ahhhhhh (vendetta)
Ciao
By Arianna
Ehi non mi hai risposto sul fatto che ieri piangevi tu...!
Ripensandici stanotte non ti do torto perchè anch'io non avevo specificato
che c'era una funzione in mezzo e tuto il lecito resto...Comunque
l'importante che funzioni...non mi importa come...
E' come Montezemolo (se mi ricordo bene il nome) che Domenica disse,
riguardo a Schumacher ed in risposta ad una domanda di una giornalista (e
non proprio alla Ferrari) : "...Non m'importa con chi si ubriaca perchè se
si ubriaca significa che ha vinto...!"
Ri-Ciao
By Arianna


Mi ubriacherei pure io con tutti quei soldi che si porta a casa!
Ciao.