Newsgroup: it.comp.appl.access
Titolo: recordset non aggiornabile.... perchè ?

Sono un utilizzatore MOLTO dilettante di Access e so poco o nulla di
programmazione ( solo antiche esperienze con Visual Basic per MsDos )
Ho provato a farmi, per uso personale, un archivio pazienti, senza
utilizzare VBA.
La maschera ("Principale" ) legge i dati anagrafici da una tabella e le
visite effettuate dal paziente in un'altra.
Fin qui tutto Ok
In questa maschera ho poi creato un pulsante che apre un'altra maschera
("Esami") nella quale per ogni singolo paziente sono elencati gli esami
effettuati e registrati in una apposita tabella .... e stranamente funziona
!!
Poichč non tutti i pazienti hanno esami registrati, ho pensato, vicino al
pulsante di inserire una casella di testo nella quale far comparire il
numero totale di esami effettuati a quel paziente.
Ho quindi, con la procedura guidata, creato una query di selezione che
effettui il conteggio degli esami registrati per quel paziente  e la ho
chiamata "ContaEsami".
Dopo aver inserito in "Origine Record" della maschera "Principale" una query
che correla con una relazione uno a molti la tabella anagrafica con la query
"ContaEsami", ho impostato la proprietŕ Origine Controllo della casella di
testo in questione al campo conteggio di IDAnag .
In effetti succede quel che desideravo e cioč compare il numero complessivo
di esami registrati nella tabella ESAMI per il paziente selezionato.....
...MA...      non posso piů inserire un nuovo paziente e se cerco di
modificare qualcosa in quello visualizzato non mi č consentito e compare
brevemente nella riga bassa il messaggio "recordset non aggiornabile"
qualcuno puň aiutarmi ?
Grazie
M&C


Il recordset che Access crea quando si esegue una query, come una tabella
reale contenente dati, agisce allo stesso modo. Nella maggior parte dei casi
è possibile inserire ed eliminare righe in un recordset e aggiornare le
informazioni.
A volte, tuttavia, Access non è in grado di comprendere che cosa deve essere
modificato. Ne consegue che ci sono query in cui tutti i campi sono
aggiornabili, altre in cui solo alcuni campi risultano aggiornabili ed
infine (ed è il tuo caso) altre in cui nessun campo può essere aggiornato.
I casi di parziale o totale non aggiornabilità dei campi di una query sono
una diecina: tra questi c'è il tuo: non può essere aggiornato qualunque
campo in una query che includa una query con totali fra le origini delle sue
righe (e una query che effettua un conteggio è assimilabile a una query con
totali).
Ciò premesso, ipotizzando che sia la tabella Anagrafe che quella Esami
contengano il campo IDAnag, non creare né la query ContaEsami e neppure la
query che correla la tabella Anagrafe con la query ContaEsami. Come "Origine
record" della maschera "Principale" torna a mettere la tabella Anagrafe.
La casella di testo in cui ti deve comparire il numero di esami per quel
paziente deve essere NON associata e nel suo "Origine controllo" scrivi:
    =DCount("[IDAnag]"; "Esami"; "IDAnag=" & IDAnag)
--
Roberto
---------------------------------------------
il sito comune di it.comp.appl.access:
http://members.xoom.it/it_db_access/
---------------------------------------------

 Ciň premesso, ipotizzando che sia la tabella Anagrafe che quella Esami


 ...
A volte e` sufficiente impostare la proprieta` "Tipo Recorset" a
"Dynaset (aggiornamenti non coerenti)".
    Paolo