MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Compactação de Banco de Dados

    Compartilhe

    Maurício Bruno
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 207
    Registrado : 25/05/2015

    [Resolvido]Compactação de Banco de Dados

    Mensagem  Maurício Bruno em Qua 13 Set 2017, 16:35

    Boa Tarde!

    Já pesquisei em todos os lugares e olhei todos os tópicos relacionados a compactação e não encontrei uma solução.

    Tenho uma projeto que é utilizado multiusuários onde utilizado o código abaixo, porém, quando utiliza este comando para compactar o banco de dados ele apresenta um erro "Não é possível compactar o banco de dados aberto (...)"

    Código:
    DoCmd.RunCommand acCmdCompactDatabase

    Gostaria de uma orientação e uma ajuda para compactar tanto o Back Front como o Back End com a aplicação aberta.
    avatar
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 9552
    Registrado : 04/11/2009

    Re: [Resolvido]Compactação de Banco de Dados

    Mensagem  JPaulo em Qui 14 Set 2017, 14:07

    Só testei no Ms Access 2010;

    Código:
    Private Sub SeuBotao_Click()
    'www.maximoaccess.com
    'Testado no Ms Access 2010
    Dim frm As Form
    Dim rpt As Report
    On Error Resume Next
    For Each frm In Forms
       DoCmd.Close acForm, frm.Name, acSaveNo
    Next frm
    For Each rpt In Reports
       DoCmd.Close acReport, rpt.Name, acSaveNo
    Next rpt
        SendKeys "%F{TAB}{TAB}{ENTER}"
    End Sub

    Mas....
    Em ambiente multiusuário, a operação de compactação não é bem-sucedida se outro usuário abriu o banco de dados.

    Os front-ends você pode ter o compactar ao fechar, o back-end já não o pode fazer enquanto os usuários estiverem ligados.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]

    Sucesso e Bons Estudos
    Success and Good Studies

    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]

    Maurício Bruno
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 207
    Registrado : 25/05/2015

    Re: [Resolvido]Compactação de Banco de Dados

    Mensagem  Maurício Bruno em Qui 14 Set 2017, 14:22

    JPaulo,

    O código não funcionou.

    Eu trabalho em uma rede de multiusuários, office 2010 e 64 bits, precisava de algo para os Administradores fizessem a compactação e reparação do Back Front e End, mesmo com outros usuários logados, ou algo que programava e quando todos fechasse executava.

    Não tenho nem ideia por onde começar nesta situação.

    Desde já agradeço a atenção e ajuda oferecida.
    avatar
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 9552
    Registrado : 04/11/2009

    Re: [Resolvido]Compactação de Banco de Dados

    Mensagem  JPaulo em Qui 14 Set 2017, 14:34

    Não entre por esses caminhos, você vai corromper os bancos.
    A Microsoft diz que não se deve compactar bancos multiusuários, quando todos estão acedendo.

    A solução é você colocar esta linha, no open do form principal de cada front;
    Código:
    Application.SetOption "Auto Compact", True

    O Back que deve estar na rede com apenas as tabelas, você vai a:

    File, Opções, Current DataBase, e coloca o visto no "Compact on Close".


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]

    Sucesso e Bons Estudos
    Success and Good Studies

    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]

    Maurício Bruno
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 207
    Registrado : 25/05/2015

    Re: [Resolvido]Compactação de Banco de Dados

    Mensagem  Maurício Bruno em Qui 14 Set 2017, 14:58

    JPaulo,

    Coloquei o código no Front End (Formulário Principal) e no Back End ajustei a configuração para ao fechar.

    Fazendo desta forma não corrompe não né, mesmo estão multiusuários?

    Este no Front End ele compacta ao abrir correto?

    Grato pela ajuda.
    avatar
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 9552
    Registrado : 04/11/2009

    Re: [Resolvido]Compactação de Banco de Dados

    Mensagem  JPaulo em Qui 14 Set 2017, 15:03

    Não corrompe porque os dois só compactam ao fechar, não é ao abrir.

    Ao abrir vai setar a opção, para compactar ao fechar.

    O back-end só fecha sozinho quando todos os usuários sairem, por isso não corrompe ao compactar.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]

    Sucesso e Bons Estudos
    Success and Good Studies

    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]

    Maurício Bruno
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 207
    Registrado : 25/05/2015

    [Resolvido]Compactação de Banco de Dados

    Mensagem  Maurício Bruno em Qui 14 Set 2017, 15:08

    JPaulo,

    Muito Obrigado, sua orientação e ajuda foi fundamental para o funcionamento do meu BD.

    Tenha um bom dia.
    avatar
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 9552
    Registrado : 04/11/2009

    Re: [Resolvido]Compactação de Banco de Dados

    Mensagem  JPaulo em Qui 14 Set 2017, 15:28

    Obrigado pelo retorno o forum agradece.


    .................................................................................
    Contribua com o maximoaccess nos links abaixo, ajude a melhorar este que é o seu site na NET.

    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]

    Sucesso e Bons Estudos
    Success and Good Studies

    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver esta imagem.] [Você precisa estar registrado e conectado para ver este link.]

      Data/hora atual: Seg 25 Set 2017, 10:46