Aggiornare tabella mediante query

di
Anonimizzato14130
il
13 risposte

Aggiornare tabella mediante query

Buon giorno, dopo diverso tempo che provo a risolvere il seguente problema mi vedo bloccato su un cavillo che mi sfugge.

Devo aggiornare il campo di una tabella con un dato che proviene da una query.
La query mi estrae correttamente il dato.
Quindi ho fatto una nuova query di aggiornamento includendo la tabella da aggiornare e la query precedente dove vado a prendere il dato che deve essere scritto.
Sulla carta mi pare che il tutto fili liscio ma in realtà non mi lascia eseguire la query e mi da l'errore

"PER L'OPERAZIONE è NECCESSARIA UNA QUEY AGGIORNABILE"

Ho risolto il problema nel seguente modo;
La query che crea il dato che mi serve lo salva in una nuova tabella. E da li con un altra query lo vado semplicemente a copiare nel posto dove mi serve.

Non capisco che cosa sto sbagliando e quell'errore mi ha fermato completamente.
preciso che la query dovrebbe andare a modificare una tabella su un altro file.
Tuttavia quando faccio il mio metodo funziona tutto però non e funzionale.
Grazie in anticipo a chi mi aiuta.

13 Risposte

  • Re: Aggiornare tabella mediante query

    1. Non ci descrivi nei dettagli cosa vuoi fare. Nomi tabelle, nomi campi, nomi query...
    2. Devi fare molta attenzione quando decidi di voler far migrare dati da una tabella a un'altra o da una query verso una tabella. Se non c'è uno scopo ben preciso, oppure non hai proprio scampo, generalmente non è una cosa corretta da farsi. Di solito andrebbe risolto con ulteriori query. Oppure potresti incepparti in un meccanismo a catena dentro il quale rischi di ripetere questa operazione più volte, costringendo Access a un lavoro innaturale...boh, sto rischiando di andare un po' troppo a ruota libera, ma ho vaghi cattivi ricordi di operazioni del genere.

    Spiegaci tutto per bene.
  • Re: Aggiornare tabella mediante query

    Grazie della tua risposta mi spiego meglio devo fare un' database per l'azienda per tenere traccia dei tempi di lavoro.ho tre tabelle su un db divise cosi: tab1 con codice e Id. tab2. con : numero produzione , quantita, tempo, id, e id-lotto. tab3 con : tempo1 tempo2 tempo3
    id-tempo e tempo totale.
    relazioni: ogni codice ha molti id-lotto che ha usa volta ha molti id-tempo.

    funzionamento: si crea un codice nuovo es xp1200. si crea un nuovo lotto es 2301. tale lotto ha i 3 tempi che si ripetono diverse volte su piu giorni es 5 serie di record x la tab3.

    dimmi se fino a qui e tutto chiaro
  • Re: Aggiornare tabella mediante query

    1. Gli indizi sono ancora troppo pochi.
    2. Non vorrei tu avessi già postato qualcosa di simile al riguardo e forse @Alex o qualcunaltro (scusa annaspo nella memoria) dovrebbe averti fatto notare che rischi di entrare nella logica degli Ingredienti e delle Torte che, a loro volta, possono diventare ulteriori ingredienti ecc...la questione non è affatto semplice da gestire.
    3. In me risale a galla il famoso timore dei calcoli e ricalcoli che Excel gestirebbe molto meglio, mentre Access che ha una più spiccata propensione verso l'archiviazione, rischia di lavorare con molta più fatica.
  • Re: Aggiornare tabella mediante query

    Be alla fine non devo fare altro che 3 somme con i dati di tab3 e mettere il risultato sul tempo totale di tab2 non mi pare un grande onero
  • Re: Aggiornare tabella mediante query

    Per caso tu hai mai avuto a che fare con questo tipo di problema? mi riferisco al messaggio di errore del primo messaggio?
  • Re: Aggiornare tabella mediante query

    matteo innocenti ha scritto:


    be alla fine non devo fare altro che 3 somme con i dati di tab3 e mettere il risultato sul tempo totale di tab2 non mi pare un grande onero
    Possiamo stare sicuri che i tempi sono al massimo 3 e non più di 3? Forse qualcosina la possiamo salvare. Continuo davvero a temere che la questione sia più facilmente gestibile da Excel. In Access contano molto di più i record in quanto raccoglitori di dati riga per riga. A te interessa questo aspetto oppure no? POI si passa a procedere con i calcoli...
    La descrizione delle tue tabelle mi appare ancora troppo poco. Devi considerare che gli altri utenti non necessariamente conoscono il tuo campo professionale e non sanno minimamente come procedono le cose. Al di là della descrizione delle tabelle e relativi campi, sarebbe opportuno che tu facessi degli esempi di record e ne descrivessi caratteristiche e problematiche. Questo è il modo più esaustivo per tutti.

    Spero tu sia cosciente di aver proposto un problema che non è proprio poca cosa. Se leggi attentamente il regolamento del forum, vedrai che non è ammesso richiedere di risolvere grandi e complesse questioni, ma piuttosto è meglio spezzettare i problemi a piccole dosi. Se nemmeno tu hai idea da dove cominciare, temo che il tuo thread si addica di più alla sezione "Progettazione database"...tuttavia hai cominciato qui...forse può anche passare...
  • Re: Aggiornare tabella mediante query

    Una Query ACTION può funzionare se contiene una PrimaryKey e se non viene eseguita su Query a loro volta READONLY, come Raggruppate o Incrociate...

    I dati che fornisci sono pochi.
  • Re: Aggiornare tabella mediante query

    Buon giorno nuovamente. grazie intanto per le risposte. purtroppo e difficile spiegare un database per iscritto e quindi lascio perdere. siccome il metodo che ho trovato funziona anche se devo eseguire 3 query anziche 2 va bene lo stesso. Giustamente non voglio caricare i miei problemi a nessuno e ringrazie pet il tempo dedicatomi.
    tengo a precisare che chiedevo se qualcuno sapeva dirmi il motivo del messaggio che mi appare :PER L'OPERAZIONE è NECCESSARIA UNA QUEY AGGIORNABILE
    e da cosa dipende e non certo di risolvermi l inteto db.
    il fatto e che non ho mai inserito una query dentro un altra.
  • Re: Aggiornare tabella mediante query

    Ti ho risposto in modo preciso a questo, e quanto ti ho esposto sono gli unici motivi per cui una Query non risulta aggiornabile..., il che significa che la tua Query di base per qualche motivo che devi scoprire, visto che la complessità è tale da non dare dettagli, è READONLY.
  • Re: Aggiornare tabella mediante query

    Alex grazie della tua risposta pero uso acces da poco e non ho idea di cosa mi hai scritto. potresti dirmi dove vado a settare tali campi della query?
  • Re: Aggiornare tabella mediante query

    OsvaldoLaviosa ha scritto:


    Gli indizi sono ancora troppo pochi

    @Alex ha scritto:


    I dati che fornisci sono pochi
    Non ci hai mai detto quali sono le tabelle che entrano in gioco nella tua query e quali campi include.

    Per me parlare di query che si aggiornano è una impresa vana. Non comprendo alcune cose che vi siete detti, ma in linea generale una query serve per TIRARE FUORI DATI, VEDERLI e "COMMENTARLI", questo vale soprattutto per le query di selezione. Io so che su una query basata su una sola tabella è possibile modificare dati. Se nella query concorrono 2 tabelle si potrà notare che è possibile modificare alcuni campi, altri no. Via via, quante più tabelle concorrono alla formazione di una query, tanto più sarà impossibile modificare dati. Questo discorso dovrebbe far capire che le query servono solo per essere lette (READONLY). Se poi si parla di query di comando, il discorso prende tutta un'altra direzione, ma la filosofia appena descritta resta...non so se ho centrato il problema.
  • Re: Aggiornare tabella mediante query

    OsvaldoLaviosa ha scritto:


    ...
    Per me parlare di query che si aggiornano è una impresa vana. Non comprendo alcune cose che vi siete detti, ma in linea generale una query serve per TIRARE FUORI DATI, VEDERLI e "COMMENTARLI", questo vale soprattutto per le query di selezione. Io so che su una query basata su una sola tabella è possibile modificare dati. Se nella query concorrono 2 tabelle si potrà notare che è possibile modificare alcuni campi, altri no. Via via, quante più tabelle concorrono alla formazione di una query, tanto più sarà impossibile modificare dati. Questo discorso dovrebbe far capire che le query servono solo per essere lette (READONLY). Se poi si parla di query di comando, il discorso prende tutta un'altra direzione, ma la filosofia appena descritta resta...non so se ho centrato il problema.
    Non so bene dove hai letto questi concetti, ma forse servirebbe qualche chiarimento.
    Le query si dividono in 2:
    SELECT
    ACTION

    Le 1° sono di selezione dati, possono comprendere più tabelle, ed è assolutamente falso che in modo RANDOM non rendano Editabili TUTTI i dati, serve dare un dettaglio ed un taglio tecnico alle affermazioni.

    Queste sono le principali cause che rendono READ-ONLY una querry:
    Se le Tabelle sono in JOIN su Campi non Indicizzati e Chiavi(PK e FK), diventano ReadOnly
    Se si usano funzioni di Aggregazione GROUP BY, diventano ReadOnly
    Se usi funzioni di aggregazione First(), Sum(), Max(), Count(), diventano ReadOnly
    Se usi UNION Query, diventano ReadOnly
    Se usi DISTINCT, diventano ReadOnly
    Se usi SUBQUERY, diventano ReadOnly
    Se usi Query Pass-Trought, diventano ReadOnly
    Se usi JOIN in direzioni differenti su Tabelle Multiple(in sostanza nelle Molti-Molti), diventano ReadOnly(ma se sono tabelle con JOIN unidirezionali puoi averne anche N in fila)

    Le 2° sono di UPDATE/DELETE ecc... ma sono altra cosa.

    Quindi, personalmente preferisco documentare tecnicamente... senza generalizzare, perchè rischia di creare un pò di confusione in chi legge, ed è falso che le Query si usino concettualmente solo per la visualizzazione, si usano per quello che servono, anche per l'EDITING dei dati sapendo quali sono i limiti.
  • Re: Aggiornare tabella mediante query

    @Alex ha scritto:


    Non so bene dove hai letto questi concetti
    http://office.microsoft.com/it-it/access-help/modificare-dati-in-una-query-HA010097876.aspx
    Ovviamente io ne ho dato una descrizione pratica e sommaria.

    @Alex ha scritto:


    Se le Tabelle sono in JOIN su Campi non Indicizzati e Chiavi(PK e FK), diventano ReadOnly

    @Alex ha scritto:


    Se usi JOIN in direzioni differenti su Tabelle Multiple(in sostanza nelle Molti-Molti), diventano ReadOnly
    Questi mi sembrano i casi più tipici.
    Interessante comunque la tua descrizione dettagliata.
Devi accedere o registrarti per scrivere nel forum
13 risposte