Newsgroup: it.comp.appl.access
Titolo: usare un WorkSpace equivale all'azione di un'altro utente?

Ciao a tutti.
Riapro un 3D che non ha avuto nessuna risposta 'decente', forse per la 
troppa carne al fuoco.
Mi trovo ad avere un errore 'strano', in una maschera con vari campi 
(calcolati da codice VBA) nel momento in cui, da VBA, tento di cambiare un 
valore (in una casella di testo associata) Access mi dice:
I dati sono stati cambiati !
ferma l'esecuzione del codice con riga gialla sulla istruzione incriminata e 
... comunque se premo F5 il codice prosegue, cambia i dati in maniera esatta 
e tutto pare funzionare.
Siccome per ricalcolare il valore di alcuni campi, sono costretto ad 
interrogare varie tabelle, e lo faccio tramite l'apertura di un WorkSpace e 
quindi di un OpenDatabase e infine un OpenRecordset su una query creata al 
volo.
Mi chiedevo se questo metodo, facesse credere ad Access che un'altro utente 
si è loggato e quindi mi venga attivato un blocco a livello di record o di 
pagina.
Io uso DAO e i Recordset sono di tipo Dynaset.
Capisco che la domanda è complessa, e che i fattori che giocano a produrre 
questo errore, siano dipendenti dal codice, ma ho seguito il manuale delle 
Giovani Marmotte ed ho aperto WorkSpace, DB e RS ... ho estratto il dato 
...ed ho annullato i riferimenti con Set RS as Nothing, ecc. ecc.
Inoltre NON MODIFICO i dati del recordset sottostante alla maschera ....
Ho di nuovo messo troppa carne sul fuoco e rischio di mangiare solo fumo 
.... ma non riesco a sintetizzare di più.
spero che mi siate d'aiuto (eheh)
Ivan 

 Ivan
La via più semplice è sempre la migliore, secondo me stai prendendo
la strada sbagliata, il problema è che non si capisce cosa devi
fare, lasciamo per ora perdere il modo in cui lo fai(che per me è errato
ma posso aver tratto una idea sbagliata per incomprensione) facci
capire in che scenario ti muovi e cosa devi ottenere in modo chiaro
e sintetico.
@Alex
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 @Alex
il TARGET : calcolare un cedolino paga, in maniera esatta.
premesse     : ricalcolare i cedolini dal 2002 ad oggi secondo le regole 
competenti ad ogni periodo.
io sono a questo punto: carico un vecchio cedolino, calcolato con un vecchio 
programma, e cerco di ricalcolarlo tenendo conto di tutte le regole 
competenti al periodo in questione. Questo giustificherebbe l'adozione del 
'MIO' programma, al posto di un vecchissimo gestionale 'DOS' ( eleaborato da 
me ed un consulente del lavoro).
Il punto nodale di tutto è proprio questo 'ricalcolo'.
Creo una riga su una tabella temporanea con tutti i dati del vecchio 
cedolino, e poi (tramite VBA) ripercorro tutti i calcoli, al fine di testare 
la bontà del nuovo metodo.
Per un certo numero di ricalcoli non si è presentato nessun problema, ma ad 
un tratto sono incappato nell'errore dell'oggetto del 3D.
Il fatto è che non sembra un ERRORE ma un avvertimento implicito di Access 
(un pò come le cancellazioni o le modifiche, ma da Opzioni non ho trovato il 
modo di evitarlo).
Stamattina ho rivoltato il problema: ho raddoppiato tutti i controlli nella 
maschera e con un Tag 'Doppio' li identifico e li ricalcolo. Questo non crea 
problemi al recordset e pare funzionare. Un volta che avrò i 
campi(controlli) ben calcolati, non so come 'sbatterli' in un nuovo record, 
ma troverò il modo.
Ti ringrazio per l'attenzione .... e grazie per l'attenzione che dedichi al 
NG.
Ivan 

 Ivan
Senti IVAN se le tabelle sono nel BE ma le hai anche lincate nel FE
quanto stai facendo non è buono.
Lascia perdere la parte di apertura di una nuova sessione si Database
ma riferisciti direttamente alle Tabelle Linkate presenti in CurrentDb.
E' assurdo quanto stai facendo dal momento che le tabelle sono linkate.
Io ad esempio utilizzo quel sistema quando devo gestire il Login
di un Utente all'apertura.
Poichè di norma elimino le Linked table sempre alla chiusura mi connetto
cia ODBC al BE per verificare il Login, ma poi Linko le tabelle
e non userò più nella mia sessione quel metodo.
Spero di essere stato più chiaro.
Ciao


 @Alex
ciao Ivan 

 ciao Ivan
