Newsgroup: it.comp.appl.access
Titolo: Gestire i diagrammi di flusso

Devo creare un software per la gestione del manuale della qualità dove nel
database memorizzo con relazioni padre-figlio i vari blocchi di informazioni
riguardanti le procedure dell suddetto. Il problema che mi si presenta è
creare automaticamente un report con il diagramma di flusso che colleghi i
vari blocchi. Come devo fare? Esiste un plug in per acces per questo?
Grazie

 ha scritto nel messaggio
news:ai3dp6$hem$1...@geronimo.keycomm.it...

Secondo me i SW per fare i diagrammi di flusso hanno anche una parte
database da usare invece di access...
Antonio

 ha scritto nel messaggio
news:ai3dp6$hem$1...@geronimo.keycomm.it...

Da un punto di vista concettuale ti direi che dovresti pilotare gli oggetti
di qualche applicativo grafico che li espone.
Ditemi se sbaglio, percé così imparo anch'io qualcosa. Dico bene Antonio
Di più non so
saluti
Giuseppe


Dovresti creare un programma con un altro linguaggio più adatto a questo
genere di problematiche.
Es: Visual C++ il quale tramite ADO accede al tuo DB di Access e visualizza
il flow chart.
Saluti.

 ha scritto nel messaggio
news:ai3dp6$hem$1...@geronimo.keycomm.it...

Se ho capito bene, anche se l'ho scritto per excel, questo dovrebbe andare:
'------------------------------ copiaincolla start
Public Matrice()
Sub CreaDataBase()
If MsgBox("Attenzione!! Continuando con questa operazine" + Chr$(13) +
"tutti i dati ora presenti verranno cancellati!" + Chr$(13) + "Si desidera
continuare?", vbYesNo + vbDefaultButton2 + vbExclamation, "Rigenerazione
Database") = vbYes Then
    Dim Percorso As String
    Percorso = "nome del percorso iniziale"
    CreazioneMatrice
    Leggi Percorso
    AggiungiCelle
End If
End Sub
Private Sub CreazioneMatrice()
Dim Max As Long
Dim Ccl As Long
Max = NCelle("DataBase Disegni", 2)
ReDim Matrice(Max)
For Ccl = 2 To Max
    Matrice(Ccl) = Cells(Ccl, 2).Text
Next Ccl
End Sub
Private Sub AggiungiAMatrice(Stringa As String)
Dim Max As Long
Dim Ccl As Long
Max = UBound(Matrice)
For Ccl = 2 To Max
    If Matrice(Ccl) = "" Then
        Matrice(Ccl) = Stringa
        Stringa = ""
    End If
Next Ccl
If Stringa <> "" Then
    AggiornaMatrice Matrice
    Matrice(Max + 1) = Stringa
End If
End Sub
Private Sub AggiornaMatrice(ArrayA())
Dim Max As Long
Dim Ccl As Long
Max = UBound(ArrayA) + 10
ReDim ArrayB(Max)
For Ccl = 0 To Max - 10
    ArrayB(Ccl) = ArrayA(Ccl)
Next Ccl
ReDim ArrayA(Max)
For Ccl = 0 To Max - 10
    ArrayA(Ccl) = ArrayB(Ccl)
Next Ccl
End Sub
Private Function CercaInMatrice(NomeFile As String) As Boolean
    CercaInMatrice = False
    On Error GoTo Err_CercaInMatrice
    For Ccl = 2 To UBound(Matrice)
        If Matrice(Ccl) = NomeFile Then
            CercaInMatrice = True
            GoTo Exit_CercaInMatrice
        End If
    Next Ccl
    GoTo Exit_CercaInMatrice
Err_CercaInMatrice:
    CercaInMatrice = False
    Resume Exit_CercaInMatrice
Exit_CercaInMatrice:
End Function
Private Sub Leggi(Percorso As String)
Dim NomeFile As String
Dim Ccl As Integer
ReDim NomeDir(2)
ChDir Percorso
NomeFile = Dir(Percorso, vbDirectory)
Ccl = 0
Do While NomeFile <> ""
    If NomeFile <> "." And NomeFile <> ".." Then
        If (GetAttr(Percorso & NomeFile) And vbDirectory) = vbDirectory Then
            Ccl = Ccl + 1
            If Ccl > UBound(NomeDir) Then
                AggiornaMatrice NomeDir()
            End If
            NomeDir(Ccl) = NomeFile
        Else
            If UCase$(Right$(NomeFile, 3)) <> "BAK" Then
                If CercaInMatrice(Percorso & NomeFile) = False Then
                    AggiungiAMatrice Percorso & NomeFile
                End If
            End If
        End If
    End If
    NomeFile = Dir
Loop
For x = 1 To Ccl
    If CercaInMatrice(Percorso & NomeDir(x)) = False Then
        AggiungiAMatrice Percorso & NomeDir(x)
    End If
    Leggi Percorso & NomeDir(x) & "\"
Next x
End Sub
Private Sub ScriviFormula()
    '-----------questa formula è da personalizzare !!!!!!!
    Cells(ActiveCell.Row, 3).FormulaR1C1 =
"=HYPERLINK(C[-1],RIGHT(C[-1],LEN(C[-1])-FIND(" & Chr$(34) & "new\" &
Chr$(34) & ",LOWER(C[-1]),1)-2))"
End Sub
Private Sub AggiungiCelle()
Dim Max As Long
Dim Ccl As Long
Max = NCelle("DataBase Disegni", 2)
Do While Matrice(Max) <> ""
    Cells(Max, 2).Select
    ActiveCell.FormulaR1C1 = Matrice(Max)
    ScriviFormula
    Max = Max + 1
Loop
End Sub
Private Function NCelle(NomeFoglio As String, Colonna As Integer) As Long
    Dim NomeFoglioV As String   'Nome del foglio di origine
    Dim Min As Long     'Partenza per il controllo
    Dim Max As Long     'Contatore del controllo
    Dim Off As Long     'Totalizzatore per le celle piene
    Min = 0             'Imposta la partenza a 0
    Max = 1             'Inizia il controllo dalla cella 1
    Off = 0             'Totale celle piene impostato a 0
    If Colonna > 0 Then 'Colonna deve essere compreso tra 1
        If Colonna < 257 Then 'e 256
            NomeFoglioV = ActiveSheet.Name  'Memorizza il nome del foglio di
partenza
            Sheets(NomeFoglio).Select       'Si sposta sul foglio da
controllare
            Do
                Do Until Trim$(Cells(Off + Max, Colonna).Text) = ""
                    Max = Max * 2   'Moltiplica per due partendo da uno fino
a che non trova
                Loop                'una cella vuota
                Min = Max / 2       'Imposta la partenza all'ultimo valore
Max pieno
                Max = 1             'Riporta il controllo a uno
                Off = Off + Min     'Salva il totale delle celle piene
            Loop Until Trim$(Cells(Off + Min, Colonna).Text) <> ""
        End If
    End If
    NCelle = Off
End Function
'------------------------- copiaincolla end
credo che con qualche leggera modifica possa andare anche in access
--
Claudio(BS)
per l'indirizzo di posta visita:
http://web.tiscali.it/claudio0

 ha scritto nel messaggio
news:AWb19.14059$n04.4...@twister2.libero.it...
