Newsgroup: it.comp.appl.access
Titolo: raggruppamento con sottogruppi

buongiorno,
 
ho la necessità di aggregare questi dati:
 
classe_attività	cod_descr	edifici e piani in uso	idlocale
ALTRO		001		PTECA.I1	1I035
ALTRO		001		PTECA.I1	1I040
ALTRO		001		PTECA.I1	1I041
ALTRO		001	PTECA.I1	1I042
ALTRO		001	PTECA.I1	1I043
ALTRO		001	PTECA.I1	1I044
ALTRO		001	PTECA.I1	1I045
ALTRO		001	PTECA.I1	1I047
ALTRO		001	PTECA.I1	1I074
ALTRO		001	PTECB.T		036
ALTRO		001	PTECB.T		037
ALTRO		001	PTECB.T		038
ALTRO		001	PTECB.T		038
ALTRO		001	PTECB.T		042
ALTRO		001	PTECB.T		042
ALTRO		001	PTECB.T		042
ALTRO		001	PTECB.T		042
ALTRO		001	PTECC.1		101
ALTRO		001	PTECC.1		102
ALTRO		001	PTECC.1		105
ALTRO		001	PTECC.1		106
ALTRO		001	PTECC.1		109
ALTRO		001	PTECC.1		110
 
in questi:
 
classe_attività,cod_descr,edifici e piani in uso,	idlocale
ALTRO,	001,	PTECA.I1, 1I035; 1I040; 1I041; 1I042; 1I043; 1I044; 1I045; 
1I047; 1I074
ALTRO,	001,	PTECB.T, 036; 037; 038; 042
ALTRO,	001,	PTECC.1, 101; 102; 105; 106; 109; 110	
 
ho scritto quanto segue ma non riesco a venirne a capo
 
Dim RS1 As Recordset, RS2 As Recordset
Dim SourceTable As String, TargetTable As String
 
'-- Definizioni --
SourceTable = "02_pre_att_sicura"
TargetTable = "sicura_attività"
'------------------
 
 
Set RS1 = CurrentDb.OpenRecordset(SourceTable, dbOpenDynaset)
Set RS2 = CurrentDb.OpenRecordset(TargetTable, dbOpenDynaset)
 
RS1.MoveFirst
 
Do Until RS1.EOF
claatt = RS1!classe_attività
coddes = RS1!cod_descr
ediepi = RS1![edifici e piani in uso]
idloca = RS1!idlocale
titatt = RS1!titolo_attività
fatdir = RS1![fattore di Rischio]
RS1.MoveNext
Do While RS1!classe_attività = claatt And RS1!cod_descr = coddes And 
RS1![edifici e piani in uso] = ediepi
idloca = idloca & RS1!idlocale & "; "
RS1.MoveNext
Loop
RS2.AddNew
RS2![edificio_e_piano] = ediepi
RS2![id_locale] = idloca
RS2!classe_att = claatt
RS2!cod_descr = coddes
RS2!titolo_att = titatt
RS2!fattori_di_rischio = fatdir
RS2!stato_att = "attiva"
Loop
 
grazie

Akery formulated the question :

Prima di Loop:
RS2.Update
 
Se ancon non va carico i dati e rifaccio.
 
Bruno

 Se ancon non va carico i dati e rifaccio.
 
Sostituisci i campi Fx con gli orribili nomi che hai dato
ai campi della tabella originale e otterrai una nuova tabella
(TT_NewTable) contenente quanto richiesto.
Ho chiamato T2 la tabella originale.
=============================================
Public Sub CreateNewTable()
Dim SQL As String
 
On Error Resume Next
DoCmd.DeleteObject acTable, "TT_NewTable"
On Error GoTo 0
 
SQL = "SELECT F1, F2, F3, F4 "
SQL = SQL & "INTO TT_NewTable FROM T2 "
SQL = SQL & "GROUP BY F1, F2, F3, F4 "
SQL = SQL & "ORDER BY F2, F3, F4;"
CurrentDb.Execute SQL
 
End Sub
==============================================
 
Bruno


io interrogherei la SourceTable con una query con group by e order by 
senza considerare idlocale
 
quindi farei due cicli
Do Until RS1.EOF
 
query = "SELECT ....  from SourceTable where classe = '"& RS1!classe &"' 
and  descr= '"& RS1!descr &"' and edifici = '"& RS1!edifici &"' "
 
Set RS3 = CurrentDb.OpenRecordset(query, dbOpenDynaset)
 
elenco = ""
 
Do Until RS1.EOF
elenco = elenco & RS3!idlocale & ";"
 
RS3.MoveNext
loop
 
'adesso poi puoi aggiungere un record alla TargetTable inserendo nel 
campo idlocale la variabile elenco magari con left se non vuoi vedere 
l'ultimo punto e virgola
RS2!idlocale = left(elenco, len(elenco)-1)
 
RS1.MoveNext
loop

on 13-01-24, james supposed :

La via più semplice:
============================
Public Sub VBA_Sorting()
    DoCmd.OpenTable ("T2")
    DoCmd.SetOrderBy "F3 ASC, F4 ASC"
End Sub
=============================
 
Bruno

Salve a tutti,
mi chiedevo... se dovessi iniziare adesso a implementare un nuovo 
gestionale quale programma/codice usereste?
Non credo access. Giusto?
 
Diciamo che servirebbe un gestionale che al 90% venga usato da pc, ma 
un'interfaccia web almeno per visualizzare dei dati non dispiacerebbe.
Per le due situazioni si utilizzano soluzioni diverse (Es. Visual Studio 
.NET per la parte web e FileMaker per la parte desktop) o ci sono 
sistemi con cui fare tutto insieme?
 
Se questo newsgroup é ancora in piedi credo che comunque access venga 
utilizzato ancora parecchio.. Vi siete trovati nella situazione di 
dismettere un programma access? Qual é stata la motivazione principale?
 
Grazie mille per le vostre opinioni!

 dismettere un programma access? Qual é stata la motivazione principale?
 
In piedi???
Guarda che qua c'abbiamo anche il videomaker che fa le gag con la 
figlia, che ti credi, gli altri gruppi se le sognano ste robe qua
 

 dismettere un programma access? Qual é stata la motivazione principale?
 
siamo 4 gatti nostalgici ormai.
sul fatto di dismettere applicazioni desktop non mi è ancora capitato. 
Girano ancora tutte una meraviglia...certo che si iniziano a livello 
visivo a notare che sono prodotti "vecchi".
 
Ho invece dismesso da anni tutte le applicazioni che giravano su tablet 
windows (reparto agenti, tecnici esterni etc) rimpiazzandole con 
applicazioni Android.
 
 
BFS
