Newsgroup: it.comp.appl.access
Titolo: Impssibile scrivere su query di raggruppamento

Salve Ragazzi,
Ho creato una mascera con origine record su una query che mi raggruppa i 
miei ordini .
Poiche devo cotrollare se mi sono o meno arrivati vari documenti nella 
query ho creato delle caselle di controllo e altre varie robette.
ora ho creato da questa query una machera visualizzazione continua e 
data in subMaschera alla mia maschera Ordini.
Campi master ocllegati ID_Ordine
ma il problema nasce che non posso selezionare nulla su questa subMaschera.
ho provato di tutto mi date una mano?
Grazie

Le query Raggruppate sono ReadOnly.
@Alex

 
Ciao Alex,
grazie intanto della risposta.
Come faccio allora ? ho bisogno di poetr fare una cosa del genere per il 
controllo degli ordini.

Non devi usare la query di Raggruppamento se non per selezionare
l'Ordine.
Per questo io userei una ListBox eventualmente......
Quindi con un Click(o doppio) devi aprire una Form specifica
relativa a quell'Ordine basata non sul Raggruppamento ma
sull'Ordine esteso.
In quella Form potrai apportare le modifiche.
@Alex

Alessandro Baraldi ha scritto:

Scusa ma non ci sto con la testa.
Devo poeter fare cosi.
quando faccio un'ordine nella mia Machera ordini con origine dati su una 
query mi vengono fuori  i senguenti dati
ID_Ordine CodiceArticolo Fornitore  ecc.
1		1	Pinco
1		1	Pinco
1		1	Pinco
1		27	Pallino
1		27	Pallino
questi sono tutti gli articoli che sono nel mio ordine 1
fin qui niente di strano.
Ora poiche dell'ID_Ordine 1 vorrei poter controllare se mi è arrivata 
tutta la merce di Pinco , se lascio cosi dovrei mettere 3 segni di 
spunta su una casella di controllo,invece dovrei poter raggruppare 
dall'Id_Ordine 1 ,separatamente tutti gli ordini Pinco e tutti quelli 
pallino e dirgili con la casella di controllo se è arrivato o meno.
Come si fà?

Mi ripeto, non si può nel modo in cui vuoi farlo tu.
Se dalla tua Maschera vuoi Flaggare tutti gli articoli=Pinco
dell'Ordine 1 devi effettuare una QueryAction in questo modo:
UPDATE NomeTabella
SET Flag=True
WHERE ID_ORDINE=1 AND CodiceArticolo=1
quindi esegui il Requery della Form per aggiornare i dati.
Per questo ti consigliavo una ListBox, perchè usando la proprietà di
Selezione
estesa addiritturapuoi riconoscere o Flaggare tutti quelli
Selezionati.....!
Saluti
@Alex

 WHERE ID_ORDINE=1 AND CodiceArticolo=1
e nel caso di ID_Ordine=1 And CodiceArticolo=2?
cosa faccio devo creare un'altra query?
Per questo ti consigliavo una ListBox?
cosè una casella di riepilogo? non capisco + nulla
ho appena provato a farla ma piuttosto dei Flag mi mette il valore Si/no 
come faccio a spuntarlo.

Personalmente immagino che tu debba ancora acquisire una
sufficiente padronanza del mezzo, quindi dimentica il mio 2°
suggerimento.
Per il primo invece direi che questo tipo di queries è più comodo
costruirle via codice e non nel QBE.
Se tu componi in modo dinamico la Query e la esegui con il metodo
Execute di cui ti consiglio sempre di leggere l'Help che contiene anche
esempi esaustivi:
Sub Execute(Query As String, [Options])
    Membro di DAO.Database
Ciao
@Alex

Alessandro Baraldi ha scritto:

Ciao Alex forse è l'ultima cosa che devo fare, mi fai un'esempio di come 
si fa, non ho capito bene !!!
mi sto scervellando di capire perche i miei dati nella casella di 
riepilogo non mi permette di flaggarli.? questa forse è la soluzione 
migliore ripsetto alla prima.
Aiutami !!!!!!

Non puoi Flaggarli, la ListBox non espone una Combo in modo nativo
però puoi decidere di visualizzare solo quelli non Flaggati, e dopo
averli
selezionati ed avviato il Flag(Automatico dei Selezionati) rimuoverli
dalla Visualizzazione.
Spesso si possono usare anche 2 ListBox, una a Destra che visualizza
quelli Non Flaggati ed una a Sinistra per quelli Flaggati.
Quando Flagghi quelli di Destra riaggiornando le 2 ListBox
andranno a finire in quelli di Sinistra....!
Il tutto si basa su 2 Query SQL come origine delle 2 ListBox
ed una Query Action da effettuare dopo aver gestito il MultiSelect
e costruito il criterio.
Per costruire il criterio della Query di Update devi ciclare la
collection ItemSelected della ListBox ed ottenere una cosa simile:
UPDATE NomeTabella SET NomeCampoFlag=True
WHERE NomeCampoID In (1,3,4,5,6)
Per ottenere la parte numerica "In (1,3,4,5,6)" come ti dicevo
devi ciclare così:
Function DatiAssociati() as string
	Dim varItm As Variant
                Dim inStr as string
	For Each varItm In NomeListNonFlaggati.ItemsSelected
		inStr=instr & NomeListNonFlaggati.ItemData(varItm) & ","
	Next varItm
                instr=Mid$(instr,1,len(instr)-1)
End Sub
Quindi su Click di un pulsante scriverai:
   Dim sSQL as String
   sSQL="UPDATE NomeTabella SET NomeCampoFlag=True " & _
             "WHERE NomeCampoID In (" & DatiAssociati() & ");"
   CurrentDb.Execute sSQL
   Me.NomeListFlaggati.Requery
   Me.NomeListNonFlaggati.Requery
Spero di essere stato chiaro.
Ciao
@Alex

Alessandro Baraldi ha scritto:

grazie alex proverò a fare il tutto ti faccio sapere.... grazie