Visualizzazione dei risultati da 1 a 5 su 5

Hybrid View

  1. #1
    Quote Originariamente inviata da nman Visualizza il messaggio
    Potresti fare un ciclo su tutte le tabelle escludendo le tabelle di sistema (nome che inizia con MSys) e la tua "Tabella1"

    Tutte le tabelle le trovi nella "collezione" TableDefs
    codice:
    Private Sub EliminaTabelle()
    Dim DBx As DAO.Database
    Set DBx = DBEngine(0)(0)
    
    Dim tbx As DAO.TableDef
    
    For Each tbx In DBx.TableDefs
        On Error Resume Next
            If Left(tbx.Name, 4) <> "MSys" And tbx.Name <> "tabella1" Then
                DoCmd.DeleteObject acTable, tbx.Name
            End If
        On Error GoTo 0
    Next
    
    End Sub
    NB: il "On Error Resume Next" lo ho messo perché in caso di
    clik ripetuto sullo stesso pulsante andresti a un errore
    in quanto tenta di eliminare una tabella inesistente
    ..... Il TableDefs si aggiorna alla prossima apertura del DB

    Facci sapere

    .
    Che dire... Per adesso grazie! Lunedì provo e vi faccio sapere...

  2. #2
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Quote Originariamente inviata da emmeastudio2016 Visualizza il messaggio
    ......Lunedì provo ......
    Permettimi di perfezionare,

    Quel "On Error Resume Next" non mi piace,
    ma pero possiamo forzare l'aggiornamento del TableDefs

    poi avevo dimenticato la chiusura degli oggetti

    cosi dovrebbe funzionare meglio:
    codice:
    Private Sub EliminaTabelle2()
    
    Dim DBx As DAO.Database
    Set DBx = DBEngine(0)(0)
    Dim tbx As DAO.TableDef
    
    DBx.TableDefs.Refresh
    
        For Each tbx In DBx.TableDefs
            If Left(tbx.Name, 4) <> "MSys" And tbx.Name <> "tabella1" Then
                DoCmd.DeleteObject acTable, tbx.Name
            End If
        Next
    
    DBx.Close
    Set DBx = Nothing
    
    '  Magari qui aggiungi un bel
    '    Me.NomePulsante.Enabled = False
    '  cosi ti assicuri che non venga premuto decine di volte
    
    End Sub

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.