Newsgroup: it.comp.appl.access
Titolo: cospargo il capo di cenere

anche se la cenere non sarà mai troppa!
avete perfettamente ragione, in particolar modo per la grammatica... A parte
gli scherzi mi scuso per la confusione generata e per le conseguenti perdite
di tempo.
Mi rendo conto che soltanto in maniera generica conosco il significato di
"grafo" e che l'oggetto del post era poco adeguato e forse fuorviante.
Sempre per chiarezza e volontà di redenzione provo a spiegare un'altra volta
e in termini, spero, più umani il mio problema.
Credo, e certamente sbaglio, che il caso sia assimilabile alla creazione di
un albero genealogico:
la struttura dei dati è, di fatto, una tabella con due soli campi (quelli
che avevo chiamato nel post Grafo con  Access???, NODO1 e NODO2) e che, per
rimanere nel "campo delle parentele", possiamo indicare come PADRE e FIGLIO.
Da una eventuale tabella popolata nella seguente maniera:
PADRE        FIGLIO
    A                    B
    A                    C
    B                    D
    C                    E
    E                    F
Alla richiesta, ad esempio, con chi è "imparentato" F? la risposta dovrebbe
essere:
PADRE        FIGLIO
    A                    C
    C                    E
    E                    F
Il punto è che non mi rendo neanche conto dell'entità del problema e non so
come affrontarlo (da qui la vaghezza e la confusione del primo post); nel
mio brancolare nel buio mi era sembrato che il tutto andasse ricondotto alla
teoria dei grafi (da qui l'oggetto del primo post) della quale non vi sarà
difficile immaginare quanto io sia pratico!
Scusate ancora e un grazie infinito per la pazienza.
ADR

 ADR
-- 
-- 
MAssimiliano Amendola
www.accessgroup.it
Cisa - Conferenza Italiana Sviluppatori Access


Era abbastanza chiara anche ieri. Ma ci sono un sacco di celiatori.
No credo che con una query tu possa cavartela. E' la struttura ad albero 
binario (o tipo distinta base che dir si voglia) ed il livello di 
profondita' raggiungibile e' virtualmente infinito. Normalmente, almeno 
io, lo risolvo via codice con funzione di tipo ricorsivo.
-- 
ac
y-1=x


Beh visto che ieri era "quasi" giusto ha diritto a un po' di tolleranza.
-- 
ac
y-1=x

 tolleranza. 
Infatti sia sul post di ieri che questo gli ho dato la risposta, che poi coincide con la tua
(per il discorso ricorsività)


 (per il discorso ricorsività)
Non l'avevo vista. "mi cospargo il capo di cenere"
-- 
ac
y-1=x

 wrote in message 
news:4757d514$0$36444$4faf...@reader5.news.tin.it...

[...]
Ma tu vuoi ottenere una sequenza (string, array):   A C E F
o una tabella:
 PADRE        FIGLIO
    A                    C
    C                    E
    E                    F
???
In ogni caso - a prima vista! - il problema mi sembra molto semplice.
Ora però non ho tempo. Ci guarderò stasera.
Ciao
Bruno 

 anche se la cenere non sarà mai troppa!
fai pure ma non hai risolto il problema.
Il subject è sbagliato.
ma neanche tanto sbagliato... se si considera che l'autore è lo stesso di un 
post precedente (di un solo giorno), post che, come meritava, è stato più 
volte stigmatizzato; che lo stesso autore, con il secondo messaggio, 
tentatava soprattutto di rimediare agli errori commessi. Da qui "cospargo il 
capo di cenere", magari lo avrei potuto chiamare pubbliche scuse... tanto 
era rivolto soprattutto a quelli che hanno preso parte alla siscussione di 
ieri e che facilmente avrebbero ricollegato il tutto una volta letto, 
appunto, l'oggetto. :-)
a parte ste sciocchezze grazie per il link... comincio a capire something!!!


 Bruno
Sě, poi ho dimenticato di inviarlo...
La tabella LT_Genealogia contiene i campi [Padre] e [Figlio]
Text(255). Indice che consente duplicati sul campo [Padre]
======================================
Private Sub Genealogia_Click()
Dim db As Database, RS1 As Recordset, RS2 As Recordset, Lista As String
Dim Albero() As String, SearchKey As String, SearchString As String
Dim i As Integer, j As Integer
SearchString = InputBox("Stringa da ricercare")
If SearchString = "" Then Exit Sub
Set db = CurrentDb
Set RS1 = db.OpenRecordset("LT_Genealogia", dbOpenDynaset)
Set RS2 = db.OpenRecordset("LT_Genealogia", dbOpenDynaset)
i = 2
Do Until RS1.EOF
    j = j + 1
    ReDim Albero(1 To j + 1)
    Albero(j) = RS1![Padre]
    Albero(j + 1) = RS1![Figlio]
    Lista = Albero(j) & "  " & Albero(j + 1) & "  "
    SearchKey = RS1![Figlio]
    RS2.MoveFirst
    Do Until RS2.EOF
        RS2.FindFirst "[Padre]='" & SearchKey & "'"
        If RS2.NoMatch Then
            Exit Do
        Else
            i = i + 1
            ReDim Preserve Albero(1 To i)
            SearchKey = RS2![Figlio]
            Albero(i) = SearchKey
            Lista = Lista & Albero(i) & "  "
        End If
        RS2.MoveNext
    Loop
    If InStr(1, Lista, SearchString) Then
        MsgBox Lista & "  "
        Exit Do
    End If
    RS1.MoveNext
Loop
End Sub
==========================================
Da aggiustare secondo le preferenze; metti un REM davanti
all'ultimo Exit Do per vederle tutte.
Ciao
Bruno

 Sì, poi ho dimenticato di inviarlo...


 ADR
Non quanto noi vedendo che continui a non seguire le (poche) regole di 
questo NG; le trovi qui:
www.sitocomune.com
 Sezione ICAA - Come comportarsi in questo NG...
Ciao.
-- 
Sergio MAZZA 

 Sergio MAZZA
mi dispiace di avere, in qualunque modo, creato problemi.
Un saluto e un grosso ringraziamento. 

 Un saluto e un grosso ringraziamento.
Ciao.
-- 
Sergio MAZZA