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]Compactar Banco de Dados

    Compartilhe
    avatar
    johnnykitoo
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 75
    Registrado : 20/05/2011

    Compactar Banco de Dados

    Mensagem  johnnykitoo em Ter 16 Ago 2011, 19:09

    Boa tarde a todos!
    Bom gostaria de saber se tem com compactar o banco de dados atraves de um botão no formulario, ou seja, em vez de clicar em "Ferramentas/Utilitario de Banco de Dados/Compactar e corrigir Banco de Dados".

    Eu gostaria de que um botão dentro do meu FORM fizesse isso?

    Desde já agradeço


    .................................................................................
    "Crê no Senhor Jesus e serás salvo, tu e a tua casa."

    Atos 16:31
    avatar
    vieirasoft
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7140
    Registrado : 11/05/2010

    Re: [Resolvido]Compactar Banco de Dados

    Mensagem  vieirasoft em Ter 16 Ago 2011, 19:17

    Boa tarde

    Terá que fazer isso através de uma macro

    1- Aceder a Macros

    2- Seleccionar "Executar Comando"

    3- Escolher a opção "CompactarBaseDeDados"

    4- Associar a Macro a um botão de comando
    avatar
    johnnykitoo
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 75
    Registrado : 20/05/2011

    Re: [Resolvido]Compactar Banco de Dados

    Mensagem  johnnykitoo em Ter 16 Ago 2011, 19:20

    Vou fazer e logo retorno com a resposta!

    Desculpe amigo mais o que seria ACEDER A MACRO?


    .................................................................................
    "Crê no Senhor Jesus e serás salvo, tu e a tua casa."

    Atos 16:31
    avatar
    vieirasoft
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7140
    Registrado : 11/05/2010

    Re: [Resolvido]Compactar Banco de Dados

    Mensagem  vieirasoft em Ter 16 Ago 2011, 19:24

    Quando a gente está a precisar de férias só pensa com um lado do cérebro. Evidente que também o pode fazer utilizando o objecto DoCmd.RunCommand

    Coloque no evento vba de um botão:

    DoCmd.RunCommand acCmdCompactDatabase
    avatar
    johnnykitoo
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 75
    Registrado : 20/05/2011

    Re: [Resolvido]Compactar Banco de Dados

    Mensagem  johnnykitoo em Ter 16 Ago 2011, 19:31

    Vou tentar esse ultimo, pois o que utiliza a maçro não deu certo.
    Gerou uma msg dizendo que não pode compactar o banco de dados executando uma macro.

    Vou tentar esse outro!


    .................................................................................
    "Crê no Senhor Jesus e serás salvo, tu e a tua casa."

    Atos 16:31
    avatar
    johnnykitoo
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 75
    Registrado : 20/05/2011

    Re: [Resolvido]Compactar Banco de Dados

    Mensagem  johnnykitoo em Ter 16 Ago 2011, 19:35

    Colocando esse codigo gerou o seguinte erro:

    Você não pode compactar um banco de dados abreto enquanto estiver executando uma macro ou código do visual Basic!


    .................................................................................
    "Crê no Senhor Jesus e serás salvo, tu e a tua casa."

    Atos 16:31
    avatar
    vieirasoft
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7140
    Registrado : 11/05/2010

    Re: [Resolvido]Compactar Banco de Dados

    Mensagem  vieirasoft em Ter 16 Ago 2011, 19:36

    não vai dar porque não deixa compactar com a BD aberta. Realmente nestes anos todos nunca tinha experimentado tal. Sempre fiz isso "ao sair" ou através de um programa de backup
    avatar
    vieirasoft
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7140
    Registrado : 11/05/2010

    Re: [Resolvido]Compactar Banco de Dados

    Mensagem  vieirasoft em Ter 16 Ago 2011, 19:37

    Veja aqui no repositório de códigos VBA. Tem lá vários exemplos salvo erro de compactação.
    avatar
    vieirasoft
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7140
    Registrado : 11/05/2010

    Re: [Resolvido]Compactar Banco de Dados

    Mensagem  vieirasoft em Ter 16 Ago 2011, 19:39

    mais rápido é impossível
    Do repositório de códigos VBA

    Access 2000 - 2003

    Public Sub CompactarMDB()
    Dim frm As Form
    Dim rpt As Report
    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 "%(TDC)", False
    End Sub
    avatar
    johnnykitoo
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 75
    Registrado : 20/05/2011

    Re: [Resolvido]Compactar Banco de Dados

    Mensagem  johnnykitoo em Ter 16 Ago 2011, 19:42

    Só um minuto, vou testar


    .................................................................................
    "Crê no Senhor Jesus e serás salvo, tu e a tua casa."

    Atos 16:31
    avatar
    johnnykitoo
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 75
    Registrado : 20/05/2011

    Re: [Resolvido]Compactar Banco de Dados

    Mensagem  johnnykitoo em Ter 16 Ago 2011, 19:46

    O exemplo que o amigo me passou, apenas fechou o banco de dados.
    É isso mesmo, ou deu algo errado, ou eu não entendi direito o que o código faz!


    .................................................................................
    "Crê no Senhor Jesus e serás salvo, tu e a tua casa."

    Atos 16:31
    avatar
    vieirasoft
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7140
    Registrado : 11/05/2010

    Re: [Resolvido]Compactar Banco de Dados

    Mensagem  vieirasoft em Ter 16 Ago 2011, 19:53

    Que código colocou no botão?
    avatar
    johnnykitoo
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 75
    Registrado : 20/05/2011

    Re: [Resolvido]Compactar Banco de Dados

    Mensagem  johnnykitoo em Ter 16 Ago 2011, 19:57

    O que o amigo me passou:


    Public Sub CompactarMDB()
    Dim frm As Form
    Dim rpt As Report
    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 "%(TDC)", False
    End Sub


    .................................................................................
    "Crê no Senhor Jesus e serás salvo, tu e a tua casa."

    Atos 16:31
    avatar
    vieirasoft
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7140
    Registrado : 11/05/2010

    Re: [Resolvido]Compactar Banco de Dados

    Mensagem  vieirasoft em Ter 16 Ago 2011, 19:57

    Experimente com este retirado do repositório também, mas em ambos os casos é necessário fazer o Call da função no botão de comando

    Num módulo novo cole.

    Public Function CompactDb()
    On Error Resume Next
    CommandBars. _
    FindControl(ID:=2071). _
    accDoDefaultAction
    End Function

    Para chamar a função em btn de comando ou no fechar do form.

    Call CompactDb
    avatar
    vieirasoft
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7140
    Registrado : 11/05/2010

    Re: [Resolvido]Compactar Banco de Dados

    Mensagem  vieirasoft em Ter 16 Ago 2011, 19:59

    O que lhe passei foi para colar min módulo e não no botão. Atente à instrução:

    Call CompactDb(isto é para o evento click do botão. O resto vai para um módulo no separador módulos.
    avatar
    johnnykitoo
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 75
    Registrado : 20/05/2011

    Re: [Resolvido]Compactar Banco de Dados

    Mensagem  johnnykitoo em Ter 16 Ago 2011, 20:21

    Vou fazer!


    .................................................................................
    "Crê no Senhor Jesus e serás salvo, tu e a tua casa."

    Atos 16:31
    avatar
    johnnykitoo
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 75
    Registrado : 20/05/2011

    Re: [Resolvido]Compactar Banco de Dados

    Mensagem  johnnykitoo em Ter 16 Ago 2011, 20:33

    Muito obrigado Vieira, deu certinho!

    Fiz como o senhor me disse, logo acima e deu certo!


    .................................................................................
    "Crê no Senhor Jesus e serás salvo, tu e a tua casa."

    Atos 16:31
    avatar
    davidctba
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 38
    Registrado : 09/08/2011

    Re: [Resolvido]Compactar Banco de Dados

    Mensagem  davidctba em Ter 16 Ago 2011, 20:56

    Olá amigos tudo bem, aproveitando o tópico, não sei se pode, estive acompanhando as dicas do Sr. Vieira, mas em meu banco não deu certo...

    Eu criei um modulo chamado "CompactarBD" dentro dele coloquei o comando:

    Public Function CompactDb()
    On Error Resume Next
    CommandBars. _
    FindControl(ID:=2071). _
    accDoDefaultAction
    End Function

    e no meu menu principal eu criei um botao chamado ZIP (somente para teste depois renomearei) e no evendo AO Clicar do mesmo coloquei: Call CompactDb

    porem ele me retornou o erro dizendo: "Você não pode compactar um banco de dados abreto enquanto estiver executando uma macro ou código do visual Basic!"

    Amigo, o que estou fazendo de errado?
    avatar
    johnnykitoo
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 75
    Registrado : 20/05/2011

    Re: [Resolvido]Compactar Banco de Dados

    Mensagem  johnnykitoo em Ter 16 Ago 2011, 21:38

    Caro David copie e cole da seguinte forma:

    No evento ao Clicar do botão que vc criou coloque:

    Private Sub cmd_Compactar_Click()
    Call CompactDb
    End Sub

    Agora copie o código abaixo e coloque dentro do vb:

    Public Function CompactDb()
    On Error Resume Next

    CommandBars. _
    FindControl(ID:=2071). _
    accDoDefaultAction

    End Function



    Aqui no meu eu fiz desse jeitinho e deu certo!

    Espero ter ajudado!


    .................................................................................
    "Crê no Senhor Jesus e serás salvo, tu e a tua casa."

    Atos 16:31
    avatar
    davidctba
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 38
    Registrado : 09/08/2011

    Re: [Resolvido]Compactar Banco de Dados

    Mensagem  davidctba em Ter 16 Ago 2011, 21:50

    Caro John, fiz a alteração que me sugeriu, mas reportou o mesmo erro...

    eu criei um botão no formulario principal (nomeado menu), no clique do botao coloquei o comando: Call CompactDb

    colei o codigo abaixo no VB, mas mesmo assim nao deu certo...

    Public Function CompactDb()
    On Error Resume Next
    CommandBars. _
    FindControl(ID:=2071). _
    accDoDefaultAction
    End Function

    pergunto, o que aparece em tela pra vc quando clica no botao compactar do seu aplicativo?
    eu tenho que marcar aquela opção (compactar ao sair) dentro do "opcoes do access"?
    avatar
    vieirasoft
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7140
    Registrado : 11/05/2010

    Re: [Resolvido]Compactar Banco de Dados

    Mensagem  vieirasoft em Ter 16 Ago 2011, 23:20

    Boa Noite Amigo

    Não precisa de fazer nada no seu access. Só colar o código num Módulo e depois fazer a chamada da função.
    avatar
    davidctba
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 38
    Registrado : 09/08/2011

    Re: [Resolvido]Compactar Banco de Dados

    Mensagem  davidctba em Qua 17 Ago 2011, 14:19

    Amigo Vieira bom dia...

    Segui sua instrução, mas ocorreu um erro: "era esperada variavel ou procedimento, nao modulo"

    meu sistema no momento esta assim;

    Tenho um módulo chamado "CompactDb" onde dentro do mesmo esta exatamente assim;

    Option Compare Database

    Public Function CompactDb()
    On Error Resume Next
    CommandBars. _
    FindControl(ID:=2071). _
    accDoDefaultAction
    End Function

    no meu sistema, no formulario principal (menu) tenho um botao nomeado de "ZIP" e dentro dele coloquei a instrução: Call CompactDb, porem ao executar o aplicativo, qndo clico no botao ZIP ele me retorna o erro acima citado...

    avatar
    vieirasoft
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7140
    Registrado : 11/05/2010

    Re: [Resolvido]Compactar Banco de Dados

    Mensagem  vieirasoft em Qua 17 Ago 2011, 14:25

    Amigão

    Acabei de fazer um teste aqui e está super. Vou fazer uma coisa, vou colocar aqui o teste que fiz agora mesmo para verificar








    avatar
    vieirasoft
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7140
    Registrado : 11/05/2010

    Re: [Resolvido]Compactar Banco de Dados

    Mensagem  vieirasoft em Qua 17 Ago 2011, 14:27

    Clique no botão "Comando5". Faz a compactação e abre o banco

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

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 38
    Registrado : 09/08/2011

    Re: [Resolvido]Compactar Banco de Dados

    Mensagem  davidctba em Qua 17 Ago 2011, 14:51

    Amigo Vieira, creio que deva ser alguma configuração no meu access2007 pois ate mesmo o seu aplicativo de exemplo gerou o mesmo erro...

    telas de erro:
    seu aplicativo
    [Você precisa estar registrado e conectado para ver esta imagem.]


    meu aplicativo
    [Você precisa estar registrado e conectado para ver esta imagem.]


    Caro John, quando vc clica no botao "compactar" do seu formulario, o que aparece em tela pra vc?

    O que sera que deve estar acontecendo.. Crying or Very sad
    Gostaria de entender melhor, pois ja a tempos que tento fazer essa automação em meus apliativos..
    avatar
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Compactar Banco de Dados

    Mensagem  JPaulo em Qua 17 Ago 2011, 20:54

    Esse é o problema...

    Tem de informar sempre em primeiro lugar a versão do Ms Access que está a utilizar.


    .................................................................................
    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.]
    avatar
    davidctba
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 38
    Registrado : 09/08/2011

    Re: [Resolvido]Compactar Banco de Dados

    Mensagem  davidctba em Qua 17 Ago 2011, 20:57

    Caro JPaulo, estou utilizando o Access2007...
    avatar
    HARYSOHN
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12271
    Registrado : 01/03/2011

    Re: [Resolvido]Compactar Banco de Dados

    Mensagem  HARYSOHN em Qua 17 Ago 2011, 21:03

    Testei aqui tambem.. 2007 nao permitiu este comando com o bd aberto


    .................................................................................
    PILOTO
    الله أكبر Paz, Justiça e Liberdade! الله أكبر
    [Você precisa estar registrado e conectado para ver este link.]

    Iniciando no Access? Então veja esse [Você precisa estar registrado e conectado para ver este link.] e também [Você precisa estar registrado e conectado para ver este link.]


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

    Quando tua dúvida for RESOLVIDA, dê retorno com AGRADECIMENTO a aqueles que gastaram seu tempo em te ajudar.
    Clique no botão Resolvido logo acima do botão Enviar, do lado direito. Todos nós agradecemos.  
    [Você precisa estar registrado e conectado para ver esta imagem.]
    avatar
    HARYSOHN
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12271
    Registrado : 01/03/2011

    Re: [Resolvido]Compactar Banco de Dados

    Mensagem  HARYSOHN em Qua 17 Ago 2011, 21:09

    Agora o Access 2007 ja tem a funcao de compactar ao fechar.. marque ela e beleza.. pra que botao??? ele ja faz isso automaticamente ao fechar..

    Saudacoes


    .................................................................................
    PILOTO
    الله أكبر Paz, Justiça e Liberdade! الله أكبر
    [Você precisa estar registrado e conectado para ver este link.]

    Iniciando no Access? Então veja esse [Você precisa estar registrado e conectado para ver este link.] e também [Você precisa estar registrado e conectado para ver este link.]


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

    Quando tua dúvida for RESOLVIDA, dê retorno com AGRADECIMENTO a aqueles que gastaram seu tempo em te ajudar.
    Clique no botão Resolvido logo acima do botão Enviar, do lado direito. Todos nós agradecemos.  
    [Você precisa estar registrado e conectado para ver esta imagem.]
    avatar
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Compactar Banco de Dados

    Mensagem  JPaulo em Qua 17 Ago 2011, 23:19

    Compactar Banco 2007 aberto.

    No evento VBA ao pressionar de um botão...

    Private Sub SeuBotão_Click()
    Dim ws As Object
    Set ws = CreateObject("WScript.shell")
    ws.SendKeys "%AGO"
    Set ws = Nothing
    End Sub


    .................................................................................
    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.]
    avatar
    HARYSOHN
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 12271
    Registrado : 01/03/2011

    Re: [Resolvido]Compactar Banco de Dados

    Mensagem  HARYSOHN em Qua 17 Ago 2011, 23:29

    Pesquisando vi uma resposta tua em certo forum... Disses que ia resolver.. e resolveste..

    Es um mestre mesmo.. Parabens


    .................................................................................
    PILOTO
    الله أكبر Paz, Justiça e Liberdade! الله أكبر
    [Você precisa estar registrado e conectado para ver este link.]

    Iniciando no Access? Então veja esse [Você precisa estar registrado e conectado para ver este link.] e também [Você precisa estar registrado e conectado para ver este link.]


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

    Quando tua dúvida for RESOLVIDA, dê retorno com AGRADECIMENTO a aqueles que gastaram seu tempo em te ajudar.
    Clique no botão Resolvido logo acima do botão Enviar, do lado direito. Todos nós agradecemos.  
    [Você precisa estar registrado e conectado para ver esta imagem.]
    avatar
    davidctba
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 38
    Registrado : 09/08/2011

    Re: [Resolvido]Compactar Banco de Dados

    Mensagem  davidctba em Qui 18 Ago 2011, 18:26

    JPaulo.. ola.. temos que tirar o chapeu, implementei a sua dica aqui no meu projeto e esta funcionando...

    Parabéns, e obrigado a todos pela ajuda...
    avatar
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Compactar Banco de Dados

    Mensagem  JPaulo em Qui 18 Ago 2011, 21:48

    Obrigado pelo retorno o fórum 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.]
    avatar
    wsenna
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 491
    Registrado : 22/12/2009

    Tadinho de mim !!!

    Mensagem  wsenna em Dom 14 Out 2012, 01:09

    Grande Rei JPaulo.

    Ando quebrando a cuca pra resolver algo parecido, só que meu Access é 2003, terias uma porção mágica para mim?

    Abraços, WSenna
    avatar
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Compactar Banco de Dados

    Mensagem  JPaulo em Seg 15 Out 2012, 09:38

    Bom dia Grande Rei, gosto muito de o ver por aqui;

    Regressando de uma ausencia fora do país em trabalho, aqui fica a dica do Ricardo;

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




    .................................................................................
    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.]
    avatar
    wsenna
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 491
    Registrado : 22/12/2009

    Auto-Compactar BD

    Mensagem  wsenna em Seg 15 Out 2012, 12:32

    Grande JPaulo, bom dia.

    Amigão, já havia testado este código, contudo, não ocorreu a compactação necessária.
    Explico: Estou a usar uma rotina para importação de uma planilha do Excel com 4.204 linhas e funciona perfeitamente bem, porém, necessito que a cada nova importação a tabela à qual se destina esta planilha esteja vazia e zerada para que a auto-numeração seja iniciada em 000.001
    Fiz o teste com o código que você me sugeriu mas após a importação o campo com auto-numeração iniciou em 4.205.

    De qualquer forma,

    Um grande abraço e um beijo em vosso coração.

    WSenna
    avatar
    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido]Compactar Banco de Dados

    Mensagem  JPaulo em Seg 15 Out 2012, 15:21

    Grande Amigo, eu não tenho aqui no trabalho o Ms 2003 para testar, mas se quiser pode testar ae;


    1ª Opção:


    Public Sub CompactarMDBaberto()
    Dim frm As Form
    Dim rpt As Report
    Dim qry As QueryDef

    For Each frm In CurrentDb.Forms
    DoCmd.Close acForm, frm.Name, acSaveNo
    Next frm
    For Each rpt In CurrentDb.Reports
    DoCmd.Close acReport, rpt.Name, acSaveNo
    Next rpt

    For Each qry In CurrentDb.QueryDefs
    DoCmd.Close acQuery, qry.Name, acSaveNo
    Next qry
    SendKeys "%(TDC)", False
    End Sub


    2ª Opção:



    Dim strCaminhoBanco As String
    Dim strNomeBanco As String
    Dim strCaminhoCompleto As String


    strCaminhoBanco = Application.CurrentProject.Path

    strNomeBanco = Application.CurrentProject.Name
    strCaminhoCompleto = strCaminhoBanco & "\" & strNomeBanco

    Access.ConvertAccessProject strCaminhoCompleto, strCaminhoCompleto, acFileFormatAccess2002


    .................................................................................
    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.]
    avatar
    wsenna
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 491
    Registrado : 22/12/2009

    Infelizmente não funfou !!!

    Mensagem  wsenna em Seg 15 Out 2012, 17:14

    Grande Mestre, boa tarde.

    Testei as duas opções e infelizmente não funfou.

    Até o momento a saída que encontrei foi:

    1) No FrontEnd criei um botão que abre o BackEnd ao mesmo tempo em que fecha o FrontEnd.
    2) Com o BackEnd aberto criei um formulário que executa várias funções como:
    2.1 - Um comando deleta todos os registros da tabela.
    2.2 - Outro comando abre um terceiro BD que possui apenas um formulário ao mesmo tempo que fecha o BackEnd.
    Devo informar que neste BackEnd utilizei a opção Compactar ao Fechar nativa do Access.
    2.3 - Nesse terceiro BD inseri um rotina no evento No Timer que abre novamente o BackEnd ao mesmo tempo em que em que fecha esse terceiro BD.
    2.4 - Novamente com e BackEnd aberto executo outra rotina que importa a planilha do Excel para a tabela previamente esvaziada e compactada.
    2.5 - Outro comando abre um formulário que exibe os registros devidamente importados (ainda no BackEnd)
    2.6 - Outro comando abre o FrontEnd ao mesmo tempo em que fecha o BackEnd.

    Sei que é uma parafernália dos diabos, mas como afirma o nosso amigo Lelo-28, "Existem mil maneiras de se preparar o Neston, invente a sua.", daí...

    O que posso afirmar é que a coisa esta funfando legal e o usuário nem percebe que está manipulando tres bancos de dados em sequência.

    Um grande abraço,

    WSenna

    thizerah
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 34
    Registrado : 18/06/2013

    Re: [Resolvido]Compactar Banco de Dados

    Mensagem  thizerah em Ter 12 Jul 2016, 19:43

    Essa função funciona no 2013? Pois estou com mesmo problema e não consegui resolver rs
    avatar
    Leomartes
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 30
    Registrado : 31/12/2014

    Re: [Resolvido]Compactar Banco de Dados

    Mensagem  Leomartes em Ter 15 Nov 2016, 01:10

    Sei que é um pouco tarde, mas este foi o fruto do ensinamento destes grandes mestres...

    Só para frizar este código retorna qual a versão do access estou usando e executa o Reparar e compactar de acordo com a sua versão, se a versão não estiver no código é exibido uma mensagem informando a alteração que deve ser feita o código.

    Sou novato, acredito que os grandes poderiam melhorar o codigo diminuindo-o

    Código:
    Public Function RepararCompactar()
    Dim P As String
    P = Access.DBEngine.IniPath
    If P = "Software\Microsoft\Office\16.0\Access\Access Connectivity Engine" Then
        'MsgBox "Office 2016"
        SendKeys "%(Tm)", False
    ElseIf P = "Software\Microsoft\Office\15.0\Access\Access Connectivity Engine" Then
        'MsgBox "Office 2013"
        SendKeys "%(Tm)", False
    ElseIf P = "Software\Microsoft\Office\14.0\Access\Access Connectivity Engine" Then
        'MsgBox "Office 2010"
        SendKeys "%(Tc)", False
    ElseIf P = "Software\Microsoft\Office\12.0\Access\Access Connectivity Engine" Then
        'MsgBox "Office 2007"
        SendKeys "%(AgO)", False
    Else
        MsgBox "Adicione este caminho no código " & P
    End If
    End Function

    obrigado a todos


    Última edição por Leomartes em Dom 31 Dez 2017, 13:48, editado 1 vez(es)


    .................................................................................
    Att, Leomartes
    -------------------------------------------------------------------------------------------------------------------------------------------------
    Se alguém não quiser trabalhar, não coma também.
    2 Tessalonicenses 3:10
    avatar
    Robystanley
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 72
    Registrado : 21/12/2015

    Re: [Resolvido]Compactar Banco de Dados

    Mensagem  Robystanley em Dom 31 Dez 2017, 00:25

    Olá Leomartes.

    Adicionei este código no Abrir de um botão e não funcionou!!! o meu Access é 2013.
    avatar
    Leomartes
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 30
    Registrado : 31/12/2014

    Re: [Resolvido]Compactar Banco de Dados

    Mensagem  Leomartes em Dom 31 Dez 2017, 13:45

    Segue em anexo o arquivo de reparar e compactar para todas as versões do access
    Anexos
    Reparar e compactar.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (18 Kb) Baixado 11 vez(es)


    .................................................................................
    Att, Leomartes
    -------------------------------------------------------------------------------------------------------------------------------------------------
    Se alguém não quiser trabalhar, não coma também.
    2 Tessalonicenses 3:10
    avatar
    Robystanley
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 72
    Registrado : 21/12/2015

    Re: [Resolvido]Compactar Banco de Dados

    Mensagem  Robystanley em Ter 02 Jan 2018, 00:59

    Feliz ano novo para todos!!!

    Leomartes, muito obrigado por enviar o banco de exemplo; porém quando executo aqui, ele apresenta apenas o efeito sonoro da mensagem Msgbox, mas não aparece nada, é como se o Msgbox, estivesse oculta na tela.

      Data/hora atual: Qua 17 Jan 2018, 20:07