Como saber se uma Tabela existe através de código VBA

Reading time: 2 minutes

Como saber se uma Tabela existe através de código VBA

Em nossas aplicações, as vezes é necessário saber se algum objeto existe ou não para que possamos tomar uma decisão. Este é o objetivo deste artigo. Como saber se uma Tabela existe através de código VBA

Principalmente para projetos complexos que exigem uma grande quantidade de tabelas, relatórios e formulários.

Vamos mostrar 2 formas de como podemos resolver isso.

Vamos ao passo a passo.

Para isso devemos criar uma Função em um Módulo do VBA. Vá em seu teclado e aperte ALT + F11 para criarmos este módulo.

Depois de criado crie a seguinte função abaixo:

Public Function fncExisteTabela(strNomedaTabela As String) As Boolean
     Dim rs As DAO.Recordset
     On Error Resume Next
     Set rs = CurrentDb.OpenRecordset(strNomedaTabela)
     fncExisteTabela = Not  Err.Number = 3078
     Set rs = Nothing 
End Function

O grande detalhe desta função está na linha On error Resume next no início do código. Nela o VBA prossegue com a execução, mesmo havendo erro e nenhuma mensagem é exibida .

Caso a tabela não exista, será emitido uma msg de erro 3078 que será armazenado no objeto Err.

Depois de criar esta função, podemos criar um formulário por exemplo e clicar na ação do clique do botão a seguinte expressão.

Uma outra função que podemos utilizar é quando ela percorre todas as tabelas do banco de dados, a medida que é passada por um parâmetro para um evento de um formulário, por exemplo.

Ao clicar no botão, a função recebe o nome da Tabela e percorre todas as tabelas. Assim que ela encontra ela retorna True ou False.

Public Function fncExisteTabela(strNomedaTabela As String) As Integer
     Dim db As Database
     Dim i As Integer
     Set db = DBEngine.Workspaces(0).Databases(0)
     fncExisteTabela = False
     db.TableDefs.Refresh
     For i = 0 To db.TableDefs.Count - 1
        If strTableName = db.TableDefs(i).Name Then
           fncExisteTabela = True
           Exit For
        End If
     Next i
     Set db = Nothing
End Function
accessfacil.com
Private Sub Comando0_Click()
       If fncTabelaExiste("tblClientes") Then
             MsgBox "Existe"
       Else
             MsgBox "Não Existe"
       End If
End Sub

Neste caso, você pode alterar o nome da tabela da função. No meu exemplo criei uma tabela chamada “tblClientes” e assim que eu clico no botão do formulário acima, receberei uma mensagem de “Existe”.

Caso você tenha algum dúvida, coloque aqui nos comentários para que possamos ajudar.

Nos vemos no próximo artigo

Um forte abraço!

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *