Newsgroup: it.comp.lang.visual-basic
Titolo: reperire nome tabelle e campi

buongirono a tutti
avrei la necessita che dato un file access 2000 in una combo siano elencate
tutte le tabelle presenti
di conseguenza, selezionata una tabella in una seconda combo vengano
elencati tutti i nomi campi presenti in tale tabella
Grazie
Buona giornata
Marco G.

 buongirono a tutti
buon girono anche a te :)

se usi dao, il codice qui sotto provava ad aggiungere un indice via dao,
passando prima per quello che serve a te.
ciao, j.
Option Explicit
Dim db As Database
Private Sub cmdAddIndex_Click()
    Dim td As TableDef
    Dim idx As Index
    Set td = db!test
    With td
        Set idx = .CreateIndex("idx_prova")
        With idx
            .Fields.Append .CreateField("codice")
        End With
        .Indexes.Append idx
        .Indexes.Refresh
    End With
End Sub
Private Sub cmdRefresh_Click()
    lstTables.Clear
    lstIndexes.Clear
    lstFields.Clear
    Label1 = ""
    Dim td As TableDef
    Set db = OpenDatabase("mdb97")
    For Each td In db.TableDefs
        lstTables.AddItem td.Name
    Next
End Sub
Private Sub Form_Load()
    Dim td As TableDef
    Set db = OpenDatabase("mdb97")
    For Each td In db.TableDefs
        lstTables.AddItem td.Name
    Next
End Sub
Private Sub lstindexes_Click()
    'On Error GoTo errman
    lstFields.Clear
    Dim f As Field, tdn As String, idxn As String
    tdn = lstTables.List(lstTables.ListIndex)
    idxn = lstIndexes.List(lstIndexes.ListIndex)
    Label1 = tdn & " - " & idxn
    For Each f In db.TableDefs(tdn).Indexes(idxn).Fields
        lstFields.AddItem f.Name
    Next
    Exit Sub
errman:    MsgBox Err & " - " & Error
End Sub
Private Sub lstTables_Click()
    On Error Resume Next 'tabelle senza indici
    lstIndexes.Clear
    Dim idx As Index, tdn As String
    tdn = lstTables.List(lstTables.ListIndex)
    For Each idx In db.TableDefs(tdn).Indexes
        lstIndexes.AddItem idx.Name
    Next
End Sub

 ha scritto nel messaggio
news:9v2rqv$ch3vb$1...@ID-51318.news.dfncis.de...


 
http://www.microsoft.com/office/IT/SmartTag.doc
i due link direi puntino allo stesso doc.
soprattutto, l'ho scorso e non capisco cosa c'entri con la domanda.
j.


Guarda su msdn il metodo openschema di ado (naturalmente se utilizzi ado)
per darti un'idea ti posto una funzione che ho fatto io, serve per controllare se in un db esiste
una tabella di cui so il nome
Ciao.
' ***********************************************************************
' Controlla se nel database appartenente alla connessione passata
' esiste la tabella specificata
' ------------------------
' cntData       = connessione al database ado su cui fare il controllo
' strT          = nome della tabella da cercare
' ------------------------
' searchTable   = True  - Tabella trovata
'                 False - Tabella non trovata
Public Function searchTable(cntData As ADODB.connection, ByVal strT As String) As Boolean
    Dim rstTabelle As ADODB.recordset
    Dim i As Long
 
    searchTable = False
    Set rstTabelle = cntData.OpenSchema(adSchemaTables)
 
    If rstTabelle.EOF() Or rstTabelle.BOF() Then Exit Function
 
    Do
        If rstTabelle!TABLE_NAME = strT Then
            searchTable = True
            Exit Do
        End If
        rstTabelle.MoveNext
 
    Loop Until rstTabelle.EOF()
End Function