Newsgroup: it.comp.lang.visual-basic
Titolo: Una "cosuccia" che lista le tabelle e i campi di un database Access (VBA)

Finalmente ci sono riuscito!
E senza troppe connessioni a db!
Prendete questa sub e infilatela in un modulo all'interno del vostro
database access ed eseguitela.
Vi sconsiglio di sciegliere SI quando vi chiede se volete essere informati
con un MsgBox sui vari passaggi che vengono compiuti (potrebbe essere una
cosa lunga, visto che visualizza un msgbox per ogni campo del db... :-( ).
Comunque la lista viene stampata nella finestra immediata (CTRL-G se non la
vedete in giro.)
Ho sclerato MA CI SONO RIUSCITO.
MITICO.
Dimenticavo : l'ho creata sotto Access 2000. Con il 97 non so se funziona.
E ricordate: come Murphy diceva, C'E' SEMPRE UN' ALTRO BUG !
Ciao
Sebastiano
Sub AllTabs()
    Dim fld As Field
    Dim i, j, tot As Integer
    Dim Risposta, TabSys
    tot = 0
    ' Un po' di copyright 8^)
    MsgBox "Questa funzione č stata scritta da PALLARO SEBASTIANO
(
seb...@hotmail.com
) ed č di PUBBLICO DOMINIO", 0, "AllTabs infos..."
    ' Domandina...
    Risposta = MsgBox("Vuoi che un MsgBox indichi passo per passo l'azione
che si sta compiendo?", vbYesNo, "Domandina...")
    If Risposta = vbYes Then
        MsgBox "Totale tabelle trovate : " +
Trim(Str(Access.CurrentDb.TableDefs.Count)) + " (incluse le tabelle di
sistema).", vbOKOnly, "AllTabs infos..."
    End If
    ' Per ora stampo nel DB, ma piů avanti ficco tutto in una tabella
    Debug.Print "Totale tabelle trovate : " +
Trim(Str(Access.CurrentDb.TableDefs.Count)) + " (incluse le tabelle di
sistema)."
    Debug.Print " "
    ' Per ogni tabella del database...
    For i = 1 To Access.CurrentDb.TableDefs.Count - 1
        If Left(Access.CurrentDb.TableDefs(i).Name, 4) <> "MSys" Then
            ' Stampo il nome della tabella
            If Risposta = vbYes Then
                MsgBox "Tabella in analisi : """ +
Trim(Access.CurrentDb.TableDefs(i).Name) + """.", vbOKOnly, "AllTabs
infos..."
            End If
            Debug.Print Access.CurrentDb.TableDefs(i).Name
            ' Per ogni campo che trovo nella tabella...
            For j = 1 To Access.CurrentDb.TableDefs(i).Fields.Count - 1
                ' Stampo il nome del campo
                If Risposta = vbYes Then
                    MsgBox "Trovato il campo """ +
Trim(Access.CurrentDb.TableDefs(i).Fields(j).Name) + """.", vbOKOnly,
"AllTabs infos (" + Trim(Access.CurrentDb.TableDefs(i).Name) + ")"
                End If
                Debug.Print "-----" +
Trim(Access.CurrentDb.TableDefs(i).Fields(j).Name)
            Next j
            Debug.Print " "
            tot = tot + 1
        End If
    Next i
    If Risposta = vbYes Then
        MsgBox "Totale tabelle processate : " + Trim(Str(tot)) + ".",
vbOKOnly, "AllTabs infos..."
    End If
    Debug.Print " "
    Debug.Print "Totale tabelle processate : " + Trim(Str(tot)) + "."
    MsgBox "Grazie per aver degnato di uno sguardo questa funzione. Grazie
anche ai grandi miti che giornalmente mi aiutano in
it.comp.lang.visual-basic.", vbOKOnly, "AllTabs infos..."
End Sub

 (
seb...@hotmail.com
) ed è di PUBBLICO DOMINIO", 0, "AllTabs infos..."
metterci magari "con l'aiuto di xyz", o "usando blocchi di codice di xyz",
no, eh ?
e' tutt'oggi che andiamo avanti...

     ' Per ora stampo nel DB, ma più avanti ficco tutto in una tabella


>     Dim i, j, tot As Integer
in questo modo i e j sono dei Variant; se era quello che volevi, bene;
altrimenti avresti dovuto scrivere
Dim i As Integer, j As Integer, Tot As Integer
Ciao
Faber




 wrote in message
6tSv5.3240$0C2....@news.infostrada.it...


> Vedi thread più sotto sugli stili di programmazione......
questo non riguarda lo stile di programmazione!
lo stile è riferito al *modo* di scrivere il codice (commenti, tabulazioni,
ritorni a capo..), mentre quel tipo di dichiarazione di variabili è riferito
al *contenuto* del codice!
Ciao
Faber