Newsgroup: it.comp.appl.access
Titolo: record selezionati in caselle di riepilogo HELP!!!!

Salve a tutti,
sono alle prime armi e mi chiedevo se e come è possibile creare una tabella
o query selezionando i record manualmente da una casella di riepilogo,
quindi senza uno o più criteri precisi ma secondo la scelta del momento (un
pò quello che succede con i preventivi).
GRAZIE anticipato a chiunque risponderà
             DAN

 ha scritto nel messaggio
news:a7a9u1$hkc$1...@serv1.albacom.net...

Se di fatto ti intressa filtrare un report o una maschera con la selezione
multipla effettuata in una casella di riepilogo, vai sul Sito Comune (link
qui sotto), nella Sezione Reports c'è una FAQ intitolata "Come si può
filtrare un report in base alla selezione multipla effettuata su una casella
di riepilogo?".
Naturalmente alla stessa maniera puoi filtrare una maschera (basta
sostituire la DoCmd.OpenReport con una DoCmd.OpenForm).
Comunque puoi usare la routine della suddetta FAQ per caricare in una
variabile pubblica chiamata strLista, la lista degli ID selezionati dalla
casella di riepilogo, quindi usare tale variabile con la funzione IN nei
criteri di una query di selezione (così come nella FAQ viene fatto per i
criteri di filtraggio del report); se poi vuoi, tale query di selezione la
puoi convertire in una query di creazione tabella.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 Saluti da me Daniele D&#8217;Andrea da Cagliari
Forse sei nuovo del NG e non lo sai, ma esiste una regola fondamentale del
nostro NG che non consente ai frequentatori del NG di dialogare in privato;
questa volta ti rispondo, ma la prossima volta lo farò solo se il nostro
dialogo avverà sul NG.
Naturalmente pubblicherò questo tuo messaggio e la mia relativa risposta sul
NG; se avrai bisogno di ulteriori chiarimenti sulla mia soluzione, ti prego
di farlo sul NG.
Se la tabella che contiene i dati si chiama Tabella1 ed ha la seguente
struttura:
Codice            Numerico
Descrizione     Testo
Prezzo            Numerico (o Valuta)
Se i dati che selezionerai sulla casella di riepilogo li vuoi registrare in
una tabella chiamata Tabella2 che ha la stessa struttura di Tabella1.
Creati una maschera (Maschera1) con visualizzazione a a Maschera singola e
che non abbia origine record.
In Maschera1 inserisci una casella di riepilogo non associata chiamata
Elenco, che abbia come origine riga Tabella1; imposta a Estesa la proprietà
Selezione multipla della casella di riepilogo.
In Maschera1 inserisci anche un pulsante di comando e a fronte del suo
evento "Su clic" genera il segiente codice VBA:
Dim rst As Recordset
Dim varItem As Variant
'Se non ci sono voci selezionate
'non ci sono attività da effettuare
If Me!Elenco.ItemsSelected.Count = 0 Then Exit Sub
'Cancella tutti i record da Tabella2
DoCmd.SetWarnings False
DoCmd.RunSQL "DELETE * FROM Tabella2;"
DoCmd.SetWarnings True
'Apri un recordset su Tabella2
Set rst = CurrentDb.OpenRecordset("Tabella2")
'Per ogni riga selezionata nella
'casella di riepilogo,
'crea un record su Tabella2
For Each varItem In Me!Elenco.ItemsSelected
   rst.AddNew
   rst!Codice = Me!Elenco.Column(0, varItem)
   rst!Descrizione = Me!Elenco.Column(1, varItem)
   rst!Prezzo = Me!Elenco.Column(2, varItem)
   rst.Update
Next varItem
'Chiudi il recordset
Set rst = Nothing
'Deseleziona tutte le righe
'della casella di riepilogo
Dim Cont As Integer
For Cont = 0 To Me!Elenco.ListCount - 1
    Me!Elenco.Selected(Cont) = False
Next Cont
A questo punto apri Maschera1, seleziona sulla casella di riepilogo le righe
che ritieni opportuno, pigia il pulsante di comando per effettuare la
registrazione in Tabella2 dei record selezionati.
Spero che sia ciò di cui avevi bisogno; tieni conto che il codice di cui
sopra fa riferimento alle librerie DAO, che devono pertanto far parte dei
riferimenti del tuo database.
