... Pague apenas R$67,00 uma única vez e tenha acesso por 1 ano aos vídeos e arquivos exemplos do site ...

Clique aqui e obtenha mais detalhes.


Excluir tabelas específicas

Através da instrução FOR EACH podemos percorrer pelos objetos das diversas coleções existentes do Access, como por exemplo a coleção de formulários, tabelas, consultas, relatórios, controles e outros.

Neste caso, em particular, quero percorrer a coleção de tabelas para excluir todas as que comecem com o prefixo tmp ( tmp_tblCliente, tmp_tblFornecedores, ... ).  Adotei este prefixo tmp para identificar no meu projeto, as tabelas temporárias que preciso excluir com periodicidade.

Acompanhe os comentários do código:

Public sub fncExcluirTabelasTemporarias()
'------------------------------------------------------------
'Cria uma variável que irá retornar com os nomes das tabelas
'------------------------------------------------------------
Dim tbl As TableDef
'---------------------------------------------
'Percorre por cada objeto da coleção de tabelas
'--------------------------------------------
For Each tbl In CurrentDb.TableDefs
    '---------------------------------------------------
    'Se a tabela tiver o prefixo tmp_ ao nome, deletar
    '---------------------------------------------------
    If InStr(tbl.Name, "tmp_") > 0 Then 
        DoCmd.DeleteObject acTable, tbl.Name
    End If
Next
'Atualiza a lista de objetos
Application.RefreshDatabaseWindow
End sub

Outra situação: caso  precise excluir todas as tabelas vinculadas, basta verificar dentro do loop For Each se a propriedade connect de cada tabela está preenchida.  Observe atentamente o código abaixo:

'------------------------------------
'Deletar todas as tabelas vinculadas
'------------------------------------
For Each tbl In CurrentDb.TableDefs
   If Len(tbl.Connect & "") > 0 Then
      '-------------------------------------------------------------------
      'Excluir a tabela vinculada, identificada pela presença de valor na 
      'propriedade connect
      '-------------------------------------------------------------------
      DoCmd.DeleteObject acTable, tbl.Name
   End If
Next

Bom estudo!


 

 


Não há comentário

Envie seu comentário: