Newsgroup: it.comp.appl.access
Titolo: problema con query



ciao a tutti
ho una tb cosi' 
composta


















id


padre


figlio






1


giuseppe


paolo






2


carmine


franco






3


giuseppe


mario






4


carmine


luigi
















e vorrei ottenere questa 
      soluzione


















giuseppe


paolo


mario






carmine


franco


luigi
grazie 



Fai una query di selezione dove raggruppi per padre ed ottieni:
Padre1,figlio1 di padre1
Padre1,figlio2 di padre1
Padre2,figlio1 di padre2
Padre2,figlio2 di padre2
Ciao

 ha scritto nel messaggio 
news:e3c5fa6d-c1fc-44dd...@googlegroups.com...

Ciao gfranco
 
a me serve avere
sulla stesso record
 
padre1 figlio1 figlio2
padre2 figlio1 figlio2
 
 
 



 > sulla stesso record
 
Ok sullo stesso record,  pero dicci su quanti campi,
mi spiego meglio 
 
Potresti avere il 1° campo per il Padre
è il 2° campo per tutti i figli in blocco magari separati da una virgola
 
Oppure potresti avere il 1° campo per il Padre
il 2° campo per un figlio
il 3° campo per un altro figlio
eccetera fino all'esaurimento dei figli
 
Facci sapere

 > sulla stesso record
 
Ok sullo stesso record,  pero dicci su quanti campi,
mi spiego meglio
 
Potresti avere il 1� campo per il Padre
� il 2� campo per tutti i figli in blocco magari separati da una virgola
 
Oppure potresti avere il 1� campo per il Padre
il 2� campo per un figlio
il 3� campo per un altro figlio
eccetera fino all'esaurimento dei figli
 
Facci sapere
 
ciao
puoi farmi vedere entrambi?
grazie 
 
 

 ha scritto nel messaggio 
news:7ae604e6-7ad8-408d...@googlegroups.com...

scusa , ma ho anch'io una situazione simile 
 
 

 puoi farmi vedere entrambi?
 
Il tempo è tiranno,
potro farlo Sabato o Domenica
.
 

 puoi farmi vedere entrambi?
 
Per la prima variante vedi l'esempio di Roberto sul sito
http://web.mclink.it/MC5884/
 sezione Queries 2.30.
 
-- 
Ciao
Karl
*********
Access FAQ:  
http://www.donkarl.com/it
 
 
 


grazie
 

 ha scritto nel messaggio 
news:bja46f...@mid.individual.net...

ciao Karl
 
vorrei modificare questa funzione
1-per  utilizzarla anche con tb con nome diverso da Tabella1
2-in piu' vorrei poter escludere eventuali nomi (perch� ho nella tb un campo 
boleano si/no "Esclusa")
 
 
Public Function UnisciValori(MioCampo As Long) As String
Dim rst As DAO.Recordset
Dim strSQL As String
UnisciValori = ""
strSQL = "SELECT * FROM Tabella1 WHERE Numeratore =" & MioCampo & " ORDER BY 
ID;"
Set rst = CurrentDb().OpenRecordset(strSQL)
rst.MoveFirst
Do Until rst.EOF
    UnisciValori = UnisciValori & rst!Descrizione & " "
    rst.MoveNext
Loop
UnisciValori = Left(UnisciValori, Len(UnisciValori) - 1)
Set rst = Nothing
End Function
 
grazie 
 
 

 End Function
 


 ha scritto nel messaggio 
news:bjapjd...@mid.individual.net...

Ciao  Karl e grazie
ho provato in diversi modi ma come aggiungo (Esclusa =0) ho errore
strSQL = "SELECT * FROM TbEmailClienti WHERE Esclusa =0 and IdCliente =" & 
MioCampo & " ORDER BY IDEmailClienti;"
 
in piu'
siccome ho 4 tabelle dove utilizzare quaesta funzione
volevo evitare di creare 4 funzioni 
 
 


per le 4 tabelle
 
function sqlCostruisci(sNomeTabella as string, nIdCliente as long) as string
  sqlCostruisci = "SELECT * FROM " & sNomeTabella & " WHERE Esclusa =0 and IdCliente =" nIdCliennte & " ORDER BY IDEmailClienti;" 
 
end function
 
la richiami 
 
strSQL = sqlCostruisci("TbEmailClienti",MioCampo)
 
 
per il campo Esclusa
prova a crearti una query da visualizzazione struttura e poi vedi come ti scrive Esclusa = 0

 volevo evitare di creare 4 funzioni
 
per le 4 tabelle
 
function sqlCostruisci(sNomeTabella as string, nIdCliente as long) as string
  sqlCostruisci = "SELECT * FROM " & sNomeTabella & " WHERE Esclusa =0 and 
IdCliente =" nIdCliennte & " ORDER BY IDEmailClienti;"
 
end function
 
la richiami
 
strSQL = sqlCostruisci("TbEmailClienti",MioCampo)
 
 
per il campo Esclusa
prova a crearti una query da visualizzazione struttura e poi vedi come ti 
scrive Esclusa = 0
 
ciao pfmarro
eseguendo la query ho come errore sconosciuto,
avendo fatto solo queste modifiche per prova
Public Function UnisciValori(sNomeTabella As String, nIdCliente As Long) As 
String
strSql = "SELECT * FROM (" & sNomeTabella & ") WHERE IdCliente =(" & 
nIdCliente & ") ORDER BY IDEmailClienti;"
l'errore � qui (" & sNomeTabella & ")
 
 
 
 
 

via le parentesi in FORM e metti gli apici. il nome tabella è ina stringa. poi: gli passi un nome esistente?

 ha scritto nel messaggio 
news:54d21130-36c2-41ca...@googlegroups.com...
via le parentesi in FORM e metti gli apici. il nome tabella � ina stringa. 
poi: gli passi un nome esistente?
grazie 
 
 

 potro farlo Sabato o Domenica
[/quote]
Vedo che il 1° metodo è gia stato esaminato ......
 
relativamente al 2° metodo invece  ( Tutto SQL  e senza VBA )
Data la tabella di Base di nome  "Tab"
- id -------- Key --- Contatore  ( questo campo non serve ai nostri scopi )	
- padre	----- Testo
- figlio ---- Testo
 
ti fai una query di nome "Z03" dove raccogli i campi
"padre" , "figlio" e aggiungi un numeratore progressivo dei figli per ogni padre ( chiamiamolo "NPos" )
[code]
SELECT 
T.padre, 
T.figlio, 
"p" & DCount("Tab.figlio","Tab","((Tab.padre='" & [padre] & "') AND (Tab.figlio>='" & [figlio] & "'))") AS NPos
FROM 
Tab AS T
;
[/code]
 
Poi su "Z03"  ti costruisci una query a campi incrociati che abbia
- Padre - come intestazione di riga
- NPos - come intestazione di riga
- figlio - come valore raggruppato
[code]
TRANSFORM Max(Z03.figlio) AS Maxx
SELECT Z03.padre
FROM Z03
GROUP BY Z03.padre
PIVOT Z03.NPos
;
[/code]
 
In verita legato a questo metodo avrei un grosso dubbio ma lo espongo 
come domanda in un thread separato