MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


3 participantes

    [Resolvido]Excluir a tabela de erro se ela existir

    avatar
    giba_
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 123
    Registrado : 01/02/2011

    [Resolvido]Excluir a tabela de erro se ela existir Empty Excluir a tabela de erro se ela existir

    Mensagem  giba_ 30/3/2011, 17:51

    Mestres, tenho a seguinte duvida: tenho um sisteminha que importa em txt (rotina já concluida) toda vez que ocorre a importação o access gera a tabela 2_BSB_ImportErrors, já pesquisei e não localizei uma ideia de como fazer a seguinte regra após um click em um botão

    Se a tabela 2_BSB_ImportErrors existir
    a mesma devera ser deleta (DoCmd.DeleteObject acTable, "2_BSB_ImportErrors")
    caso contrario não devera ser feito nada

    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Excluir a tabela de erro se ela existir Empty Re: [Resolvido]Excluir a tabela de erro se ela existir

    Mensagem  criquio 30/3/2011, 21:02

    Acabei de montar aqui. Veja se funfa:

    Dim obj As AccessObject, dbs As Object, tbl As String
    Set dbs = Application.CurrentData
    tbl = "Tabela 2_BSB_ImportErrors inexistente"

    For Each obj In dbs.AllTables
    If obj.Name = "2_BSB_ImportErrors" Then
    tbl = "2_BSB_ImportErrors"
    End If
    Next obj

    If tbl = "T2_BSB_ImportErrors" Then
    DoCmd.DeleteObject acTable, tbl
    Else
    MsgBox tbl
    End If



    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    giba_
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 123
    Registrado : 01/02/2011

    [Resolvido]Excluir a tabela de erro se ela existir Empty Re: [Resolvido]Excluir a tabela de erro se ela existir

    Mensagem  giba_ 31/3/2011, 12:20

    bom dia! obrigado pela ajuda
    gostaria,se possivel é claro, que explique o código com alguns comentários para que futuramente eu possa adaptar em outras situações
    avatar
    giba_
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 123
    Registrado : 01/02/2011

    [Resolvido]Excluir a tabela de erro se ela existir Empty Re: [Resolvido]Excluir a tabela de erro se ela existir

    Mensagem  giba_ 31/3/2011, 12:51

    acabei de testar e funcionou corretamente

    gostaria que me explique como deve adaptar o codigo para as excluir todas tabelas que apresentam erro,

    o nome das tabelas mudam de acordo com o estados ex: 2_AL_ImportErrors, 2_TO_ImportErrors, 2__RJ_ImportErrors e etc

    neste caso tenho 28 que correspondem aos estados do nosso brasil,

    isso pode ser feito em apenas um click?
    avatar
    giba_
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 123
    Registrado : 01/02/2011

    [Resolvido]Excluir a tabela de erro se ela existir Empty Re: [Resolvido]Excluir a tabela de erro se ela existir

    Mensagem  giba_ 31/3/2011, 12:55

    Me corrijam se eu estiver errado !!!

    Private Sub Comando0_Click()

    Dim obj As AccessObject, dbs As Object, tbl As String
    Set dbs = Application.CurrentData

    tbl = "Tabela 2_AL_ImportErrors inexistente"

    For Each obj In dbs.AllTables

    If obj.Name = "2_AL_ImportErrors" Then
    tbl = "2_AL_ImportErrors"
    End If

    Next obj

    If tbl = "2_AL_ImportErrors" Then
    DoCmd.DeleteObject acTable, tbl
    MsgBox "A tabela foi excluida"
    Else
    MsgBox tbl

    End If

    tbl = "Tabela 2_RJ_ImportErrors inexistente"

    For Each obj In dbs.AllTables

    If obj.Name = "2_RJ_ImportErrors" Then
    tbl = "2_RJ_ImportErrors"
    End If

    Next obj

    If tbl = "2_RJ_ImportErrors" Then
    DoCmd.DeleteObject acTable, tbl
    MsgBox "A tabela foi excluida"
    Else
    MsgBox tbl

    End If

    End Sub
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Excluir a tabela de erro se ela existir Empty Re: [Resolvido]Excluir a tabela de erro se ela existir

    Mensagem  criquio 31/3/2011, 13:01


    'Declaro obj como um objeto do Access, dbs como um objeto e tbl como uma string
    Dim obj As AccessObject, dbs As Object, tbl As String
    'Configuro dbs como um objeto de dados da aplicação corrente
    Set dbs = Application.CurrentData
    'Defino a variável tbl com a mensagem que aparecerá caso tabela não exista
    tbl = "Tabela 2_BSB_ImportErrors inexistente"
    'Para cada objeto dentro do conjunto de tabelas do projeto...
    For Each obj In dbs.AllTables
    'Se o o nome do objeto tabela for "2_BSB_ImportErrors" então...
    If obj.Name = "2_BSB_ImportErrors" Then
    'Variável tbl mudará para o nome da tabela
    tbl = "2_BSB_ImportErrors"
    'Fim da condição
    End If
    'Analisa próxima tabela
    Next obj

    'Caso exista a tabela a ser excluída, tbl terá o nome dessa tabela. Se isso for verdadeiro então...
    If tbl = "T2_BSB_ImportErrors" Then
    'Manda a tabela para o raio que a parta
    DoCmd.DeleteObject acTable, tbl
    'Caso contrário...
    Else
    'Exibe a mensagem configurada na primeira instância da variável tbl
    MsgBox tbl
    'E fim de papo.
    End If


    Esse é o esquema explicado para o código que eu postei. Para o caso de várias tabelas, levando em consideração que ambas tem a mesma terminação no nome, poderemos usar a instrução Right para capturar e comparar os últimos caracteres do nome e fazer tudo de uma única vez. Aguarde que vou verificar.


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    giba_
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 123
    Registrado : 01/02/2011

    [Resolvido]Excluir a tabela de erro se ela existir Empty Re: [Resolvido]Excluir a tabela de erro se ela existir

    Mensagem  giba_ 31/3/2011, 13:38

    valeu pela explicação, estou aguardando o retorno (estarei estudando a instrução Right para entender melhor a sua sugestão)
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Excluir a tabela de erro se ela existir Empty Re: [Resolvido]Excluir a tabela de erro se ela existir

    Mensagem  criquio 31/3/2011, 13:52

    Segue alterações para várias tabelas:

    Dim obj As AccessObject, dbs As Object, tbl As String
    Set dbs = Application.CurrentData
    tbl = "Não existem tabelas a serem deletadas"

    For Each obj In dbs.AllTables
    If Right(obj.Name, 12) = "ImportErrors" Then
    tbl = obj.Name
    DoCmd.DeleteObject acTable, tbl
    End If
    Next obj

    If tbl <> "Não existem tabelas a serem deletadas" Then
    tbl = "Tabelas foram deletadas com sucesso."
    End If
    MsgBox tbl


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    giba_
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 123
    Registrado : 01/02/2011

    [Resolvido]Excluir a tabela de erro se ela existir Empty Re: [Resolvido]Excluir a tabela de erro se ela existir

    Mensagem  giba_ 31/3/2011, 14:25

    Funcionou perfeitamente, valeu pela ajuda e explicações
    por mim esta resolvido.
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Excluir a tabela de erro se ela existir Empty Re: [Resolvido]Excluir a tabela de erro se ela existir

    Mensagem  criquio 31/3/2011, 15:28

    Valeu e obrigado pelo retorno. Abaixo deixo mais uma método que adiciona na mensagem uma lista das tabelas excluídas. Acredito que não vá interessar para o seu caso em particular, mas talvez seja útil futuramente:

    Dim obj As AccessObject, dbs As Object, tbl As String, LTab As String
    Set dbs = Application.CurrentData
    tbl = "Não existem tabelas a serem deletadas"
    LTab = "LISTA DE TABELAS EXCLUÍDAS" & vbCrLf

    For Each obj In dbs.AllTables
    If Right(obj.Name, 12) = "ImportErrors" Then
    tbl = obj.Name
    LTab = LTab & vbCrLf & tbl
    DoCmd.DeleteObject acTable, tbl
    End If
    Next obj

    If tbl <> "Não existem tabelas a serem deletadas" Then
    tbl = LTab
    End If
    MsgBox tbl, , "Status"


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    giba_
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 123
    Registrado : 01/02/2011

    [Resolvido]Excluir a tabela de erro se ela existir Empty Re: [Resolvido]Excluir a tabela de erro se ela existir

    Mensagem  giba_ 31/3/2011, 15:35

    Todo conhecimento é sempre bem vindo, obrigado pela ajuda
    VALEU !!!!!!
    gabrielpn06
    gabrielpn06
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 180
    Registrado : 17/01/2017

    [Resolvido]Excluir a tabela de erro se ela existir Empty Re: [Resolvido]Excluir a tabela de erro se ela existir

    Mensagem  gabrielpn06 28/11/2017, 13:30

    Bom dia, descuple reavivar um topico dado por resolvido.

    Como ficaria o codigo no caso de somente o ultimo caracter mudar?

    Ex.: 'STATUS_CONC_LINHAS CANCELADA$'_ImportarError
    'STATUS_CONC_LINHAS CANCELADA$'_ImportarError1
    'STATUS_CONC_LINHAS CANCELADA$'_ImportarError2
    'STATUS_CONC_LINHAS CANCELADA$'_ImportarError3 e assim por diante.

    Desde ja agradeco!

    Conteúdo patrocinado


    [Resolvido]Excluir a tabela de erro se ela existir Empty Re: [Resolvido]Excluir a tabela de erro se ela existir

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 05:54