Come faccio a controllare che una tabella è già presente in un database Access?
Io aggiro il problema creandola e verificando poi se viene originato un errore, ma suppongo che esista un metodo migliore.
Come faccio a controllare che una tabella è già presente in un database Access?
Io aggiro il problema creandola e verificando poi se viene originato un errore, ma suppongo che esista un metodo migliore.
Con questa routine d'esempio, puoi verificare tutte le Tbl che compondono un DB. Estrai la parte che ti é utile:
codice:Private Sub Command1_Click() Dim conn As ADODB.Connection Dim rsSchema As ADODB.Recordset Set conn = New Connection conn.Provider = "Microsoft.Jet.OLEDB.4.0" conn.Open App.Path & "\NomeTuoDB.mdb" Set rsSchema = conn.OpenSchema(adSchemaTables) List1.Clear Do While Not rsSchema.EOF List1.AddItem rsSchema("TABLE_TYPE") & " : " & rsSchema("TABLE_NAME") Debug.Print rsSchema("TABLE_TYPE") & " : " & rsSchema("TABLE_NAME") rsSchema.MoveNext Loop Set rsSchema = Nothing conn.Close Set conn = Nothing End Sub![]()
LM
Che libreria usi per accedere ai dati? ADO? DAO?
Chi non cerca trova.
Uso ADO.
Spulciando la documentazione online ho visto che si può fare così:
ma mi chiedo se sia proprio necessario elencarle.codice:Set DBScr = New ADOX.Catalog DBScr.ActiveConnection = strAccess & "database.mdb" For Each Tabella In DBScr.Tables If Tabella.Type = "TABLE" Then If Tabella.Name = "MiaTabella" Then Exit For End If Next Set DBScr = Nothing
No, dovrebbe essere possibile trovare la tabella in questo modo:
Non ho potuto provare ma credo che se la tabella "NomeTabella" non esiste VB genera un errore, da intercettare opportunamente con un bel On Error Resume Next.codice:Dim t As Table Set t = DBScr.Tables("NomeTabella")
Ciao
Chi non cerca trova.