VBA Access: Deletando tabelas e querys programaticamente

Quando estamos criando múltiplas tabelas atualizáveis dinamicamente no MS Access e as disponibilizando para consultas externas como no próprio Access, Excel, Word ou Powerpoint, por vezes precisaremos checar se os seus respectivos nomes já não existem e em caso positivo deletá-las.

Uma funcionalidade para tal execução no próprio MS Access, através do nome da tabela, é a que descrevo abaixo:



    Function CheckTable(nTable As String)
        ' André Bernardes             06/06/2008 07:23    bernardess@gmail.com

        Dim db As Database
        Dim i As Integer

        Set db = DBEngine.Workspaces(0).Databases(0)

        db.TableDefs.Refresh

        For i = 0 To db.TableDefs.Count - 1
            If nTable = db.TableDefs(i).Name Then
                DoCmd.DeleteObject acTable, nTable      ' Table Exists.

                Exit For
            End If
        Next i

        Set db = Nothing
    End Function

Para deletarmos Querys, utilizaríamos:

Function CheckQuery(nQuery As String)
    ' Author:                     Date:               Contact:
    ' André Bernardes             30/04/2009 11:26    bernardess@gmail.com
    ' .

    Dim db As Database
    Dim i As Integer

    Set db = DBEngine.Workspaces(0).Databases(0)

    db.QueryDefs.Refresh

    For i = 0 To db.QueryDefs.Count - 1
        If nQuery = db.QueryDefs(i).Name Then
            DoCmd.DeleteObject acQuery, nQuery      ' Query Exists.

            Exit For
        End If
    Next i

    Set db = Nothing
End Function

Nenhum comentário:

Postar um comentário

diHITT - Notícias