Newsgroup: it.comp.appl.access
Titolo: recordset non aggiornabile in una form

Perchè la risposta è "recordset non aggiornabile" quando cerco di
inserire un nuovo record in una maschera basata su una query con due
tabelle (clienti e fatture)? Ho avuto alcune risposte, ma non riesco a
capire bene.
Toni.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ha scritto nel messaggio
news:26ab5ffbd1e2a8fe31f...@mygate.mailgate.org...

La risposta di Andrè era chiara, direi.
Probabilmente hai una tabella clienti collegata uno a molti con la tabella
fatture e probabilmente quando fai la query usi entrambe le tabelle: se
cerchi di scriverci sopra, chiedi ad Access di scrivere su due tabelle
contemporaneamente.
Perchè basi la maschera su una query tra clienti e fatture? Se è per vedere
il nome del cliente ti basta usare un DlookUp.
Paolo

 tabelle (clienti e fatture)?
Senza conoscere la query č un po difficile di indovinare cosa fai.
Mostra qui lo statement SQL della query.
--
cu
Karl
*********
Access-FAQ (tedesco): 
http://www.donkarl.com

 Access-FAQ (tedesco): 
http://www.donkarl.com
Ciao, Karl. Intanto grazie per l'interessamento. Ti mando la query.
"SELECT FTTR2002.*, Anagrafi.CL
FROM FTTR2002 INNER JOIN Anagrafi ON FTTR2002.IDCLIENT = Anagrafi.COD
ORDER BY Anagrafi.CL;" Considera che la tabella "anagrafi" è in DBIII
collegata in un altro database.
Ciao. Toni.


 collegata in un altro database.
Hai campi di due tabelle nel Select.
Per questo la query non è aggiornabile.


 
E allora come posso fare per inserire record nuovi nella tabella
fatture? Ho altro database fatti con le due tabelle e funzionano. Un
altro database "ordini" č basato su questa query :SELECT DISTINCTROW
CLIENTI.IDCLIENTE, ORDINI.IDORDINE, ORDINI.IDCLIENTE, ORDINI.IDAGENTE,
ORDINI.[DATA ORDINE], ORDINI.[DATA CONSEGNA], ORDINI.[DATA
REGISTRAZIONE], ORDINI.PAGAMENTO
FROM CLIENTI RIGHT JOIN ORDINI ON CLIENTI.IDCLIENTE = ORDINI.IDCLIENTE;
Come mai funziona? O č un caso?
Ciao.


 Come mai funziona? O è un caso?
Sì, è un altro caso. ;-) Ma hai raggione che il mio statement era un
po porcheria o almeno non sufficiente. La tua seconda query non ha
un Inner Join e per di più ti aiuta il Distinctrow di rendere univoco i
record.
Non ti aiuta per la prima query di paragonarla con un'altra cosi differente.
Ci sono più che una possibilità perché la tua prima query non è
aggiornabile. Nella guida in linea debb' essere un punto che si chiama
"Aggiornare data" (o simile - non ho qui in italiano) sotto quale ce un
punto che si chiama circa "Quando è aggiornabile una query".
Qui trovi elenci con varie situazioni di query e campi non aggiornabile.
Ce un elenco speciale per le relazione 1:n.
Ma la causa puo anche essere la mancanza di un Primary Key nella
tua tabella esterna o che manca (un parte di) un Primary Key dalla
tabella esterna nella query.
Per essere siccuro dove ce il problema prova a importare la tabella
in Access e creare una simile query con questa tabella.
--
HTH


 Access-FAQ (tedesco): 
http://www.donkarl.com
Grazie, Karl. Ora faccio le prove e ti faccio sapere se ho superato lo
scoglio...
Ciao. Toni.


 --
Ho importato la tabella anagrafi invece che collegarla e funziona.
Penso che la causa è proprio il collegamento con una tabella DBIII nella
quale non si può dichiarare una chiave primaria. Come posso risolvere,
allora?


 allora?
Non ci sono indici (idx ecc.) o non hai possibilità/permesso di crearli?
Non hai rivelato la tua versione di Access.
Se parliamo di A00 o AX puoi provare se aiuta lo SP5 di Jet
Non-BDE Paradox and dBase ISAM Drivers
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q263561
Se è necessario forse puoi "automatizzare" il processo d'importazione
con qualche query e codice. Forse anche è meglio di creare un mdb
per questo che ha una tabella (collegata nel frontend) dove sempre
fai un update di record con DBIII prima di usarla.
Dipende dalle tue circostanze - p.e. molti record che cambiano spesso ecc.


 Dipende dalle tue circostanze - p.e. molti record che cambiano spesso ecc.
 
E' proprio questo il punto: i record sono sempre variabili. Non mi da la
possibilità di creare indici per le tabelle collegate. Avevo
pensato anche di importarli ogni volta che mi sarebbero serviti, ma non
so come si fa. Non ho mai pensato ad un
codice del genere. La versione è 97.
Ancora grazie e ciao. Toni.


 codice del genere. La versione è 97.
Non è molto difficile. Vedi <F1> metodo "TransferDatabase"
