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


    Compactar e reparar BD para executar consulta

    avatar
    rubens.meirelles
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1
    Registrado : 02/12/2014

    Compactar e reparar BD para executar consulta Empty Compactar e reparar BD para executar consulta

    Mensagem  rubens.meirelles 29/1/2016, 13:51

    Prezados,
    Sou novo aqui no fórum, estou com uma dúvida. Utilizo o ACCESS 2013. Criei um formulário onde preencho três campos: Data Inicial, Data Final e Tipo de Atualização (aqui tenho uma lista com três opções).  Criei um botão e nele inseri um procedimento que, de acordo com a seleção do Tipo de Atualização, o sistema executa um tipo de consulta, as datas são as mesmas para as três consultas.  O procedimento funciona da maneira que eu quero, porém o que está acontecendo é que, após a execução de qualquer uma das consultas, eu só consigo executar uma outra se eu compactar e reparar o banco. Segue abaixo o código que estou utilizando:

    Private Sub Cmd_Atualizar_Graf_Lin_Click()
    If IsNull(DtInicGrafLin) Or IsNull(DtFinGrafLin) Or IsNull(Cmb_Tipo_Atua) Then
       MsgBox "Informe a data inicial e final e o tipo de atualização."
       Me.DtInicGrafLin.SetFocus    
       Else    
       If IsNull(DtInicial_Agenda) And IsNull(DtFinal_Agenda) Then
           Me.DtInicial_Agenda = Me.DtInicGrafLin
           Me.DtFinal_Agenda = Me.DtFinGrafLin
           Me.Dt_Ini_ASO = Me.DtInicGrafLin
           Me.Dt_Fim_ASO = Me.DtFinGrafLin
       
               If Me.Cmb_Tipo_Atua = "Total de agendamentos" Then
               DoCmd.OpenQuery "D_GERA_TOTAL_AGENDAMENTOS"                        
                   Else        
                   If Me.Cmb_Tipo_Atua = "Agendamentos por Empresa" Then
                   DoCmd.OpenQuery "D_GERA_TOTAL_AGENDAMENTOS_empresas"
                     
         Else                    
                       If Me.Cmb_Tipo_Atua = "Agendamentos Nacional" Then
                       DoCmd.OpenQuery "D_GERA_TOTAL_AGENDAMENTOS_NACIONAL"
                       
                       End If
                   End If
               End If
        End If
    End If
    End Sub

    Criei um botão para limpar os campos preenchidos na tentativa que pudesse funcionar, mas também não deu certo:
    Private Sub Cmd_Novo_Click()
    Me.Dt_Ini_ASO = ""
    Me.Dt_Fim_ASO = ""
    Me.DtInicGrafLin = ""
    Me.DtFinGrafLin = ""
    Me.Cmb_Tipo_Atua = ""
    End Sub

    Também utilizei esse link, aqui do fórum para tentar criar um botão para compactar e reparar o banco, e nada: https://www.maximoaccess.com/t3873-resolvidocompactar-banco-de-dados
    Criei um módulo e utilizei esse código:
    Public Function CompactDb()
    On Error Resume Next
    CommandBars. _
    FindControl(ID:=2071). _
    accDoDefaultAction
    End Function
    E no botão chamei a função abaixo:
    'Call CompactDb

    Também tentei esse commando, mas nada.
    Dim ws As Object
    Set ws = CreateObject("WScript.shell")
    ws.SendKeys "%AGO"
    Set ws = Nothing
    End Sub

    Alguém tem alguma ideia do que pode estar ocorrendo? Ou teriam um comando para compactar e reparar o banco nessa versão do ACCESS.

    PS: Desculpe pelo post extenso.

      Data/hora atual: 6/5/2024, 15:21