Newsgroup: it.comp.appl.access
Titolo: Aggiornamento campi con query

Vorrei sottoporvi un problema che ho incontrato spesso.
Per la verità ho sempre ritenuto che la cosa fosse così e basta, ma vedendo
la vostra competenza (non è piaggeria, è reale stima) ho pensato di chiedere
un parere.
Il problema è questo: se visualizzo dei dati con una query che lega due ( o
più) tabelle, non posso aggiornare i dati.
Faccio un esempio concreto: io mi occoupo di contabilità di enti pubblici,
il cui bilancio è costituito da capitoli che hanno uno stanziamento in euro.
Io ho una tabella con i capitoli (codice e descrizione) e una tabella con
gli importi (codice ed importo).
Se creo una query unendo e due tabelle e seleziono codice, descrizione ed
importo, non mi è consentito di modificare gli importi. E quindi non posso
creare una tabella che consenta di inserire/modificare stanziamenti
visualizzando non solo il codice ma anche la descrizione dei capitoli (cosa
molto gradita).
E' proprio così o sbaglio qualcosa?
Ed eventualmente si può aggirare il problema?
Grazie a tutti.
***mauro

 ha scritto nel
messaggio news:Blt%b.27593$gk.11...@news3.tin.it...

Se tra le due tabelle c'è un rapporto uno a molti è proprio così...
Per ovviare usa una struttura a maschera con sottomaschera
Antonio

Bobbygol ha scritto:

Probabilmente non hai impostato correttamente le chiavi primarie e le
relazioni. Vai nella scheda Relazioni e abilita l'integrità referenziale
sulla relazione che collega le due tabelle, poi riuscirai a modificare i
dati anche nella query.
Se non funziona, spiegaci meglio come sono legate le due tabelle, quali
campi sono chiave primaria e come fai la relazione nella query.
Namor
-- 
namor at inwind punto it
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 ha scritto nel messaggio
news:c1msfu$1i7$1...@news.newsland.it...

Ho capito.
Provo a spiegare meglio:
La prima tabella si chiama 'Capitoli' e la seconda 'Budget'
devo legarle collegando due campi: un swich entrata/spesa (ES) ed il numero
di capitolo (NUM)
in entrambe le tabelle i due campi sono parte della chiave insieme ad altri
campi: nella tabella capitoli insieme ad un campo articolo (ART) e nella
tabella budget insieme ai campi programma (PROG) e centro di costo (CCOSTO)
Se entro nella scheda relazione e creo il primo collegamento sul campo ES il
sistema me lo crea, ma mi da come tipo relazione 'non definita' e non mi
permette di applicare l'integrità referenziale.
Se clicco su 'tipo join' posso modificare il collegamento (non lo desidero)
ma non mi cambia null'altro.
Posso fare qualcosa?
Grazie
***mauro

Bobbygol ha scritto:




Per poter applicare l'integrità referenziale nella relazione devi
includere tutti i campi della chiave primaria. Se ne usi solo qualcuno non
puoi applicarla e il risultato è che le query ti restituiscono un
recordset non aggiornabile.
Se vuoi puoi usare dlookup in un campo calcolato per visualizzare il nome
del capitolo, che quindi sarà in sola lettura ma ti consentirà di
aggiornare gli altri campi. Però se non usi tutti i campi della chiave
primaria della tabella capitoli come criterio in dlookup, potrebbe non
restituirti il capitolo corretto perchè potrebbero esserci più capitoli
corrispondenti al criterio di ricerca.
Mi sa che il tuo db non è correttamente normalizzato, sennò non avresti
incontrato questo problema. Per esempio non dovresti avere un'unica
tabella che contenga capitoli e articoli, ma una tabella capitoli e
un'altra con gli articoli di ciascun capitolo, legate da relazione con
integrità referenziale.


 ha scritto nel messaggio
news:c1uskj$erb$1...@news.newsland.it...

Eh già, il mio db è tutt'altro che normalizzato!!
Ma non è il mio: io sto operando su un db di una programma proprietario,
collegando le tabelle e cercando di sfruttare access per fornire agli utenti
forms e reportistica più aderenti alle loro esigenze.
E' possibile tuttavia che dlookup possa risolvermi il problema, perchè il
numero di capitolo è comunque univoco: non l'ho mai utilizzata, ma adesso
vado a provare, aiutandomi con la guida.
Grazie delle indicazioni, davvero dettagliate.
Ciao
***mauro