Newsgroup: it.comp.appl.access
Titolo: read only ?

Una query (miaQuery) seleziona una serie di record da mandare in stampa.
 
Esiste un flag booleano (DaStampare) per decidere se il singolo record 
va stampato o no.
 
Una maschera continua mi mostra la videata dei record in cui, vicino al 
nome della persona, seleziono o deseleziono il flag di stampa. In 
aggiunta, in fondo alla maschera ho messo due pulsanti del tipo "annulla 
tutto" e "stampa tutto".
 
Non riesco a far funzionare il codice di questi pulsanti, che e' cosi':
 
==============================
Private Sub cmdAzzeraTutto_Click()
'
Dim mydb As Database
Dim myrs As Recordset
'
Set mydb = CurrentDb()
Set myrs = mydb.OpenRecordset("select DaStampare from [miaQuery]")
'
myrs.MoveFirst
'
Do While Not myrs.EOF
    myrs.Edit
    myrs!DaStampare = False
    myrs.Update
    myrs.MoveNext
Loop
'
Set myrs = Nothing
Set mydb = Nothing
'
End Sub
==============================
 
Ossia creo un recordset limitato al flag da modificare, poi faccio 
passare tutti i record dal primo all'ultimo forzando il contenuto a "falso".
 
Il codice si ferma al primo elemento, alla riga di edit. Dice che il 
database o l'oggetto e' in sola lettura.
 
Io so che nella dichiarazione del recordset posso aggiungere una 
clausola di limitazione di aprire il recordsett in sola lettura, questo 
suggerisce che di defauilt il il recordsett e' aggiornabile.
 
Allora perche' a me dice che e' in sola lettura?
 
grazie
 
-- 
Guillotin n'avait coupï¿œ trop peux

 Allora perche' a me dice che e' in sola lettura?
 
Per 99,x% vedi sopra.
 
I tipi predefiniti/standard di DAO recordset sono aggiornabili:
tabella per tabelle locali, dynaset per tabelle collegate
 
Per essere sicuro puoi sempre specificarlo con:
 
...OpenRecordset("select DaStampare from [miaQuery]", dbOpenDynaset)
 
-- 
Ciao
Karl
*********
Access FAQ:  
http://www.donkarl.com/it
 
 
 

 ...OpenRecordset("select DaStampare from [miaQuery]", dbOpenDynaset)
 
L'avevo gia' provato, il codice lo accetta, ma non cambia nulla.


Strano,    sembrerebbe essere tutto corretto,  eppure non va!
 
Alla domanda di Karl 
<cit> Hai controllato se [miaQuery] è aggiornabile? </cit>
 
tu rispondi
<cit> Si' si', la query e' aggiornabile e la maschera funziona, selezionando e 
deselezionando i singoli record. Non riesco a fargli i pulsanti globali. </cit>
 
Quindi tu hai controllato indirettamente sulla maschera che la query [miaQuery] sia aggiornabile.
Controlla direttamente anche aprendo la query [miaQuery] 
 
Altro dettaglio:
la query NON aggiornabile potrebbe essere invece quella del recordset
<cit> ..... OpenRecordset("select DaStampare from [miaQuery]") </cit>
e qui sono piu sospettoso perche vedo che non hai ripreso il campo Key !!!
 
Salvati questa query 
--  select DaStampare from [miaQuery]
e verifica che anche questa sia veramente aggiornabile 
 
.

 Controlla direttamente anche aprendo la query [miaQuery]
 
No no, avevo gia' provato anch'io, sia la maschera sia la query erano 
aggiornabili. Solo che poi nel codice, dove io x semplificare scrivo 
[miaQuery], in realta' avevo messo il nome di una Query quasi uguale a 
miaQuery, ed era questa seconda query che era non aggiornabile.
 
Non c'era nessun problema interessante, e' stata una banale disattenzione.
 
scusate e grazie a tutti,
