Newsgroup: it.comp.appl.access
Titolo: aiuto!

Ogni tanto aprendo una maschera mi compare une finestra che mi dice che un
altro utente sta modificando i dati e mi chiede se voglio salvare, annullare
o copiare negli appunti.
Il problema è che col db ci lavoro solo io. Cosa può essere che crea un
problema del genere?
ciao e grazie
Alessandro

Alessandro ha scritto:

Succede in genere se lavori su una maschera e del codice ad essa 
associato mette le mani sullo stesso recordset della maschera. Mi spiego:
Il record che viene visualizzato nella maschera si trova in un buffer e 
non viene ricopiato nella sua tabella finchè non chiudi la maschera, ti 
sposti su un altro record oppure lo salvi di forza con un DoCmd.
Se modifichi qualcosa in un controllo della maschera e, al contempo 
metti le mani (poniamo con un bel UPDATE xxx SET yyy=zzz attivato magari 
da un pulsante) alla tabella dalla quale la maschera preleva i dati 
(senza porre alcun lock, ovviamente!) Access si ritrova con due 
modifiche diverse dello stesso oggetto, quindi non sa quale deve tenere 
buono e chiede quindi a te: vuoi tenerlo (salverà la modifica fatta 
tramite i controlli sulla maschera, sovrascrivendo quelli apportati via 
codice), abbandonarlo (terrà buona la modifica apportata via codice alla 
tabella) oppure copiare le modifiche negli appunti e vedere più tardi 
cosa fartene.
Come suggerimento: prima di mettere le mani via codice sulla tabella 
salva il record corrente della maschera:
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
Magari poi finito di rimaneggiare la tabella aggiorna di forza la maschera:
Me.Requery
-- 
       ^    ^
oOo (Il Gatto) oOo


wrote:

prova a reimportare tutto il database in un'altro vuoto nuovo
Saluti.
Emanuele.

Ho provato col tuo suggerimento, ma non cambia assolutamente niente. Ho
scoperto che l'errore č dovuto a docmd.applyfilter, se lo tolgo funziona...
ma chiaramente male.
La cosa piů ridicola č che in origine tutto funzionava: modificando il db ma
senza toccare la maschera mi č comparso l'errore... l'unica modifica che puň
influire č un join su una tabella che prima non era collegata e che contiene
un unico record i cui campi li utilizzo come dati di costo per fare delle
operazioni.
Non capisco... non so prorpio dove sbattere la testa.
Ciao e Grazie
Alessandro

 ma chiaramente male.
Veramente curioso... prova a sostituire DcCmd.ApplyFilter con
Me.Filter = "..."
Me.FilterOn = True
e vedi se cambia qualcosa...
Certo Accessa alle volte fa delle cose che non stanno nè in cielo nè in 
terra... una volta avevo una maschera che da un giono all'altro ha 
cominciato a richiedere DUE pressioni del pulsante Avanti (un semplice 
DoCmd.GotoRecord,,acNext) anzichè una... l'unica soluzione che ho 
trovato è stato creare una nuova maschera e ricopiare controlli e codice 
da quella vecchia... Ha ripreso a funzionare... Mai capito perchè era 
successo... :-\


Purtroppo sono sempre bloccato... ma ho scoperto che il tutto nasce dal
fatto che access non mi aggiorna la tabella nonostante io ci inserisca i
dati correttamente.
Come posso forzarlo? cosa può essere che gli impedisce di aggiornare, ma non
da alcun errore sensato?
Grazie mille
Alessandro

 da alcun errore sensato?
Com'è impostato il lock della maschera? Non è che hai messo "Blocco 
Record: Tutti i Record" e di conseguenza qualsiasi aggiornamento non è 
possibile?
Controlla poi la gestione degli errori, chè magari c'è di mezzo un On 
Error Resume Next e nonostante l'errore ci sia (duplicazione di chiavi, 
violazione integrità referenziale, ecc.) passa inosservato!
