Ho bisogno di avere un elenco delle tabelle contenute in un DataBase per verificare che ci siano quelle che mi servono ed in caso di mancanza crearle.
Esiste una funzione che mi dia questo risultato?
Grazie
GuidoG![]()
Ho bisogno di avere un elenco delle tabelle contenute in un DataBase per verificare che ci siano quelle che mi servono ed in caso di mancanza crearle.
Esiste una funzione che mi dia questo risultato?
Grazie
GuidoG![]()
Ti copioincollo una mia prova:
Set cnn = New ADODB.Connection
With cnn
.CursorLocation = adUseClient
.Provider = "Microsoft.Jet.OLEDB.4.0;"
.Open "Data Source=" + Me.txtDb + ";"
'Collegamento ad un foglio excel
'cnn.ConnectionString = "MSDASQL.1;Persist Security Info=False;Extended Properties=""DSN=File di Microsoft Excel;DBQ=C:\svil\Excel\Cartel1.xls;DefaultDir=C:\ svil\Excel;DriverId=790;MaxBufferSize=2048;PageTim eout=5;"""
End With
'cnn.Open
If Combo1.ListIndex = 0 Then
Set rsSchema = cnn.OpenSchema(adSchemaTables, Array(Empty, Empty, Empty, "TABLE"))
'ottiene i fogli contenuti dentro excel
'Set rsSchema = cnn.OpenSchema(adSchemaTables, Array(Empty, Empty, Empty, Empty))
ElseIf Combo1.ListIndex = 1 Then
Set rsSchema = cnn.OpenSchema(adSchemaColumns, _
Array(Empty, Empty, Empty))
Else
Set rsSchema = cnn.OpenSchema(adSchemaProcedures, Array(Empty, Empty, Empty, Empty))
End If
Ecco un esempio di elenco nomi tabelle e relativi campi:
Option Explicit Dim cn As ADODB.Connection Dim rs As ADODB.Recordset Dim rs1 As ADODB.Recordset Private Sub Form_Load() Set cn = New ADODB.Connection Set rs = New ADODB.Recordset cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" _ & "c:\TuoDatabase.mdb" _ & ";Persist Security Info=False" rs.CursorType = adOpenKeyset rs.LockType = adLockOptimistic Set rs = cn.OpenSchema(adSchemaTables) Do Until rs.EOF If rs!table_type = "TABLE" Then Debug.Print "Nome tabella: " & rs!Table_name Call ElencaCampi(rs!Table_name) End If rs.MoveNext Loop rs.Close cn.Close End Sub Sub ElencaCampi(Tabella As String) Dim x As Integer Set rs1 = New ADODB.Recordset rs1.Open ("select * from " & Tabella), cn For x = 1 To rs1.Fields.Count Debug.Print "--------->" & rs1.Fields(x - 1).Name Next rs1.Close End SubCiauz
Chico
Ringrazio Sentitamente
GuidoG![]()