Oppure

Loading
16/06/14 16:22
Aangelus
Salve a tutti vorrei cancellare tutte le tabelle che si sono create in un determinato db, premetto che il codice che postero esegue in parte quello che vorrei realmente, nel senso che entra nel database trova qualche tabella e l' elimina, ma il problema è che non esegue l'intero processo lasciandomi tabelle

Dim cnV As New ADODB.Connection
Dim tbV As ADOX.Table
Dim xcV As New ADOX.Catalog

cnV.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\MIODATAB.mdb" '; Persist Security; Info = False; """

xcV.ActiveConnection = cnV

For Each tbV In xcV.Tables

If tbV.Name <> "MSysAccessObjects" And tbV.Name <> "MSysACEs" And tbV.Name <> "MSysObjects" And tbV.Name <> "MSysQueries" And tbV.Name <> "MSysRelationships" Then
xcV.Tables.Delete tbV.Name
End If

Next tbV
cnV.Close

suggerimenti ? grazie in anticipo
Ultima modifica effettuata da Aangelus 16/06/14 16:24
aaa
24/06/14 14:58
gibra
Puoi usare OpenSchema per recuperare tutte le informazioni sul database:

Utilizzo del metodo OpenSchema di ADO in Visual Basic
support.microsoft.com/kb/186246/…

Il tuo modo 'empirico' di determinare le tabelle di sistema non è corretto.

Grazie ad OpenSchema puoi invece determinare con precisione quali sono le tabelle di sistema, in cui nel recordset aperto puoi filtrarle così:

If rsSchema!TABLE_TYPE = "ACCESS TABLE" Then
    Debug.Print "Tabella di sistema: " & rsSchema.Fields("TABLE_NAME").Value
End If


Le tabelle le puoi eliminare utilizzando direttamente la connessione:

cnV.Execute "DROP TABLE " & sNomeTabella

Però tieni presente che oltre alle tabelle possono esservi dei vincoli nelle Relazioni, Indici, Chiavi esterne, ecc.
che non ti permettono di eliminare una tabella senza prima aver eliminati questi vincoli.

Qual'è il vantaggio di usare ADO rispetto ad ADOX ?
Che se devi eseguire queste azioni in computer 'esterni', ADOX potrebbe non essere installato, ed il codice falirebbe miseramente.
Mentre ADO è già instalato a partire da Windows 2000 e successivi.

aaa
30/06/14 18:02
Aangelus
Ciao gibra grazie del consiglio come sempre molto utile, volevo farti dei complimenti speciali per gli approfondimenti in più che hai utilizzato COMPLIMENTI :k:
aaa