Newsgroup: it.comp.lang.visual-basic
Titolo: Crisi profonda......

Ciao utilizzo VB 6.0
Vorrei sapere come ottenere informazioni su di un file *.MDB in modo da
ottenere le informazioni sul numero e nome delle tabelle presenti nel
database.
E' possibile utilizzare ADO per fare cio'???
Ciao e grazie

 wrote in message
news:pabP6.5214$8Y1....@news2.tin.it...


 ha scritto nel messaggio
news:pabP6.5214$8Y1....@news2.tin.it...

Mi sembra che con ADO non si possa,
ma con ADOX si.
Guarda la documentazione a riguardo.
Ciao
Franco L.

 ha scritto

sara' possibile anche con ado. con dao qc tipo:
Private Sub cmdStructure_Click()
    On Error GoTo errman
    If DbName = "" Then Exit Sub
    Dim db As Database, td As TableDef, prp As Property, fld As Field,
idx As Index
    Dim J As Long, vval, txt
    Set db = OpenDatabase(DbName)
    List1.Clear
    List1.AddItem UCase(DbName)
    List1.AddItem "==========================="
    For Each td In db.TableDefs
        If Left(td.Name, 4) <> "MSys" Then
            List1.AddItem "TABLE: " & td.Name
            If chkTProp = 1 Then
                For Each prp In td.Properties
                    vval = ""
                    vval = prp.Value
                    txt = IIf(vval <> "", prp.Name & ": " & prp.Value,
prp.Name)
                    List1.AddItem "---" & txt
                Next
            End If
            If chkFields = 1 Then
                For Each fld In td.Fields
                    List1.AddItem "------FLD: " & fld.Name
                    If chkFProp = 1 Then
                        List1.AddItem "---------Type: " & fld.Type &
Chr(9) & "(" & TipoCampo(fld.Type) & ")"
                        List1.AddItem "---------Size: " & fld.Size
                        List1.AddItem "---------Required: " &
fld.Required
                    End If
                Next
            End If
            If chkFields = 1 Then
                For Each idx In td.Indexes
                    List1.AddItem "------IDX: " & idx.Name
                    If chkIFlds = 1 Then
                        For Each fld In idx.Fields
                            List1.AddItem "---------" & fld.Name
                        Next
                    End If
                Next
            End If
            List1.AddItem "==========================="
        End If
        Status.Panels(3) = List1.ListCount: DoEvents
    Next
    db.Close
    Exit Sub
errman: MsgBox Error: Exit Sub
End Sub
Public Function TipoCampo(FldType)
    Select Case FldType
        Case 1: TipoCampo = "BOOLEAN"
        Case 2: TipoCampo = "N-BYTE"
        Case 3: TipoCampo = "N-INTEGER"
        Case 4: TipoCampo = "N-LONGINT"
        Case 5: TipoCampo = "N-CURRENCY"
        Case 6: TipoCampo = "N-SINGLEPREC."
        Case 7: TipoCampo = "N-DOUBLEPREC."
        Case 8: TipoCampo = "DATE/TIME"
        Case 9: TipoCampo = "UNDEF"
        Case 10: TipoCampo = "TEXT"
        Case 11: TipoCampo = "OLE"
        Case 12: TipoCampo = "MEMO/HYPER"
        Case 13: TipoCampo = "UNDEF"
        Case 14: TipoCampo = "UNDEF"
        Case 15: TipoCampo = "N-IDREPLICA / GUID"
        Case 16: TipoCampo = "N-BIG INTEGER"
        Case 17: TipoCampo = "VARBINARY"
        Case 18: TipoCampo = "CHAR"
        Case 19: TipoCampo = "N-NUMERIC"
        Case 20: TipoCampo = "N-DECIMAL"
        Case 21: TipoCampo = "N-FLOAT"
        Case 22: TipoCampo = "TIME"
        Case 23: TipoCampo = "TIMESTAMP"
        Case Else: TipoCampo = "_UNDEF_"
    End Select
End Function

Questo é un messaggio di risposta standard e quindi impreciso, viene inviato
in genere a chi si é da poco affacciato al NG e potrebbe non contenere le
risposte in maniera diretta...
1)  Controlla il subject! Subject tipo: "Aiutooooo", "!!!", "Non ci sto più
dentro", "Sto impazzendo" sono subject che vengono filtrati da quasi
tutti... (Escluso il sottoscritto ancora per un po') e quindi non vengono
nemmeno letti dal 90% dei partecipanti (forse meno, ma comunque tanti)
2) Prima di postare sul NG sarebbe bene seguire un certo iter:
    a) Cercare nell' Help (alias MSDN ove possibile)
    b) Cercare nei vecchi post... Se ne hai pochi... non c'é problema, qui
ci sono quelli degli ultimi 6 anni (circa):
 
http://groups.google.com/advanced_group_search
    c) Cercare sul sito comune 
http://www.it_lang_vb.net
...Comunque almeno i post vecchi, MSDN e il subject sono vitali...
Per quello che riguarda il tuo problema:
Dim pippo as new adodb.connection
Dim pluto as adodb.recordset
pippo.open connectionstring
set pluto = pippo.openschema adSchemaTables
Ti ritornerà un recordset con questi campi:
     TABLE_CATALOG
      TABLE_SCHEMA
      TABLE_NAME
      TABLE_TYPE
                        Ciao
                                Allanon

 wrote in message
news:pabP6.5214$8Y1....@news2.tin.it...
