Newsgroup: it.comp.appl.access
Titolo: Inserimento simultaneo di un record in rete ...

Ho sviluppato per l'azienda dove lavoro un programmino che ha funzionato
senza problemi per più di un anno.
Da un mese a questa parte è stato messo in rete su 3 PC (dopo aver diviso il
database come da manuale).
Ebbene, mi sono resa conto che purtroppo Access non gestisce autonomamente i
conflitti d'aggiornamento tra recordsets...
Lavorando simultaneamente capita che il programma si blocchi su uno dei PC
dando errori tipo "Pagina bloccata da utente..." etc.
Ho preso nota dei vari codici d'errore (spero siano solo questi): 3260,
3218, 3187, 3624, 3186; il problema è che non so bene come gestirli.
Pensavo d'intercettarli con una On error e poi fare qualcosa, ma non so bene
cosa!!!
Pensate che sia la strada giusta?
Non è molto che frequento il sito comune, ma oltre che molto bravi siete
tutti simpaticissimi, confido in voi...
UN MEGA SMACK A CHI MI AIUTA!!!!!!

Pensate che sia la strada giusta?
Si!:-)
F1 e vai bene!
Saluti.
Luciano

 dando errori tipo "Pagina bloccata da utente..." etc.
...
In effetti, se non si fa attenzione ad applicare le giuste impostazioni,
qualunque programma (seppur creato per funzionare in rete, come Access) puo'
dare la sensazione di non gestire bene la situazione. Ovviamente non e'
cosi'. Come spunto riporto di seguito quanto dice l'help in linea di Access
in proposito del blocco dei record durante l'accesso simultaneo allo stesso
record da parte di piu' utenti, parti da questo e vai avanti.
Ciao, Sib
####### Help alla vode "Blocco Record" ##########
È possibile utilizzare la proprietà BloccoRecord per determinare come i
record sono bloccati e quel che succede quando due utenti cercano di
modificare un file allo stesso momento. Durante la modifica un record può
essere automaticamente bloccato, in modo da impedirne la modifica prima del
termine da parte di altri utenti.
· Maschere. Specifica il modo in cui i record vengono bloccati nella tabella
o nella query sottostante durante l'aggiornamento di dati contenuti in un
database multiutente.
· Report. Specifica se i record contenuti in una tabella o in una query
sottostante sono bloccati mentre un report viene visualizzato in anteprima o
viene stampato.
· Query. Specifica se i record contenuti in una query, in genere una query
di comando in un database multiutente, sono bloccati durante l'esecuzione
della query stessa.
#######################################
--
------------------------------------------------------
il sito comune di it.comp.database.access:
http://members.xoom.it/it_db_access
------------------------------------------------------
4000 anni fa', il saggio egizio Ptahhotep scrisse:
"... perche' non esistono saggi per nascita."
------------------------------------------------------
Saturiamo ECHELON:
bomba saddam attentato medio oriente

Se non sbaglio le impostazioni di cui mi parli sono quelle per gestire il
blocco quando s'inseriscono dati nelle maschere in multiutenza.
Il mio problema purtroppo è un pochino più radicale.
Una delle opzioni (abbastanza importante) del programmino che ho fatto,
trasferisce dati tra due tabelle usando del codice di Visual Basic.
Se due utenti lanciano contemporaneamente l'opzione si verificano problemi
su Rst.update...
L'errore più frequente è il 3260, ma purtroppo talvolta si verificano anche
gli altri codici di cui ti parlavo (in corrispondenza anche di un Rst.edit).
Sono molto contenta di essere riuscita a programmare quest'opzione e mi
piacerebbe metterla a punto anche per la rete.
Il problema è che nell'help di Access non ho visto esempi concreti di come
ovviare ai miei problemi coi recordset, si dice solo appunto che
l'aggiornamento concorrente genera un errore. Come ti dicevo purtroppo ne ho
riscontrati più di uno.
Forse facendo una On error .... e poi usando l'istruzione Resume.
Mi piacerebbe avere ulteriori riscontri (conferme o sculacciate)..
Bye, Sonia

 Mi piacerebbe avere ulteriori riscontri (conferme o sculacciate)..
Forse. Io non ho mai usato codice per fare l'operazione che hai descritto,
probabilmente e' giusta la via che hai prospettato.
Ciao, Sib


In effetti per me č un problema usare una query d'accodamento perchč non si
tratta di un semplice trasferimento dati tra due archivi.
Purtroppo i dati della prima tabella devono subire delle elaborazioni prima
di essere trasferiti al secondo.
Credo che anche se si potesse fare con una query sarebbe piů macchinoso
anche da rileggere in seguito.
Comunque sei molto gentile, ti meriti un MEGA SMACK!!!
SONIA :)))

Sonia ha scritto nel messaggio ...

Devi fare l'operazione controllando prima se qualche utente ha bloccato la
risorsa, poi se la risorsa č libera la fai bloccare al primo che arriva,
tutti gli altri dovranno ricevere un messaggio ch eli avvisa del blocco
......
Se non ti č chiaro fammelo sapere ..ora vado di fretta.
ciao

"Beh, in effetti non mi è molto chiaro dal punto di vista "applicativo".
Potresti darmi un esempio di codice per bloccare la risorsa e/o verificare
se è già bloccata da altri utenti?
Grazie, Sonia. "