ACCESS: Per l'operazione è necessaria una query aggiornabile. (Errore ...

venerdì 17 maggio 2013 - 20.46
Tag Elenco Tags  Access (.mdb)

gianphydnh Profilo | Newbie

Salve,
sono anch'io incappato in questo maledetto messaggio di errore, ho letto il post di BARABAS su un problema simile, ho provato ad adottare la soluzione proposta da DINOXET ma ricevo il seguente messaggio: Espressione JOIN non supportata!

In effetti il mio problema è leggermente diverso perché tento di aggiornare il campo ProgARag della tabella tblRegDecreti utilizzando il risultato del campo calcolato NextDecr nella query qryNextDecrxAnno (campo che serve a trovare la numerazione dell'ultimo decreto registrato nell'anno XXXX e a sommarci 1).

Trascrivo il codice SQL che mi scrive Access (che però non riesce ad eseguire):
UPDATE tblRegDecreti, qryNextDecrxAnno SET tblRegDecreti.ProgARag = [qryNextDecrxAnno]![NextDecr]
WHERE (((tblRegDecreti.ProgARag) Is Null) AND ((tblRegDecreti.IDDecreto)=[Maschere]![frmPre-RegDecreti]![IDDecreto]));

Allego file del database zippato per eventuali test.
Alcune precisazioni: lasciare la maschera precaricata aperta e spostarsi sul record n.7 o 8, dopodiché lanciare la query di aggiornamento (incriminata).

Nelle mie intenzioni la query serve ad assegnare un numero di decreto sequenziale (ma relativo all'anno di riferimento)

Ringrazio anticipatamente

renarig Profilo | Expert

Tu hai fatto una query raggruppata ( con totali ) per trovare il massimo valore nell'anno
poi cercavi di aggiornare la tabella mettendola in Join con la query

Ma le query raggruppate NON SONO MAI AGGIORNABILI
_________________________________________________________________
Poi comunque se nell'anno non avevi nessun valore non ti aggiornava nulla
perche non trovava li massimo valore.
__________________________________________________________________
Ho modificato con:
--- DMax per trovare il massimo valore nell'anno
--- Nz per "driblare" gli anni senza nessun valore
________________________________________________________________
la query "qryNextDecrxAnno" eliminala totalmente

la query "qryNewRegDecr" modificala cosi
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra


Facci sapere

.

gianphydnh Profilo | Newbie

Grazie, non ho parole... non ci sarei mai arrivato da solo!

E visto che sei così bravo pensi sia difficile aggiornare, magari nella stessa query, il campo status facendogli togliere la spunta "Da registrare" e contestualmente apporla, ad es., su "incompleta" e "richiesta fatturazione" (in realtà avrò altre opzioni tipo: registrata, in attesa di istruttoria, etc..).

In sostanza, mi chiedo, in un campo a valori multipli, come si seleziona/deseleziona un determinato valore con una query di aggiornamento, facendo restare inalterate le eventuali spunte ai restanti valori?


756x182 12Kb

renarig Profilo | Expert

>pensi sia difficile aggiornare, magari nella stessa query, il campo status
>facendogli togliere la spunta "Da registrare"
> e contestualmente apporla, ad es., su "incompleta" e "richiesta fatturazione"
> (in realtà avrò altre opzioni tipo: registrata, in attesa di istruttoria, etc..).

I campi multivalore sono una BRUTTISSIMA BRUTTISSIMA cosa
se puoi sostituiscilo subito con 6 normali campi Si/No

otterrai un DB
- piu gestibile,
- piu leggero,
- e soprattutto potrai convertirlo in SQLServer ( per esempio )

Comunque per quello che chiedi non ho trovato di meglio che fare
1 DELETE e 2 INSERT sul campo multivalore
quindi una piccola routine VBA si occupa di lanciare le query in sequenza.

Ho evitato di scrivere le query direttamente con VBA perche sarebbero diventate
di difficile comprensione e modifica se non sei abituato



>In sostanza, mi chiedo, in un campo a valori multipli, come si
>seleziona/deseleziona un determinato valore con una query di
>aggiornamento, facendo restare inalterate le eventuali spunte
>ai restanti valori?
http://office.microsoft.com/it-it/access-help/utilizzo-di-campi-multivalore-nelle-query-HA010149297.aspx

.

gianphydnh Profilo | Newbie

Ti ringrazio,
mi guardo il tutto con calma... e cercherò di tener conto anche della possibilità di eliminarlo proprio il campo multivalore:
il punto è che non so ancora quanti e quali sono i possibili status (e quindi valori) che può assumere la pratica (ma sarà il tempo a dirmelo) e poi non mi è chiaro se effettivamente mi servirà convertirlo in SQLServer:
su questo punto mi consulterò con l'amministratore di rete, e non escludo che ti scoccierò ancora con qualche domandina su come far girare Access su una rete aziendale al fine di essere utilizzato da più operatori contemporaneamente!!

Grazie ancora e ciao
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5