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


    [Resolvido]Compactar Banco de Dados

    johnnykitoo
    johnnykitoo
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Compactar Banco de Dados Empty Compactar Banco de Dados

    Mensagem  johnnykitoo 16/8/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
    vieirasoft
    vieirasoft
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Compactar Banco de Dados Empty Re: [Resolvido]Compactar Banco de Dados

    Mensagem  vieirasoft 16/8/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
    johnnykitoo
    johnnykitoo
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Compactar Banco de Dados Empty Re: [Resolvido]Compactar Banco de Dados

    Mensagem  johnnykitoo 16/8/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
    vieirasoft
    vieirasoft
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Compactar Banco de Dados Empty Re: [Resolvido]Compactar Banco de Dados

    Mensagem  vieirasoft 16/8/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
    johnnykitoo
    johnnykitoo
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Compactar Banco de Dados Empty Re: [Resolvido]Compactar Banco de Dados

    Mensagem  johnnykitoo 16/8/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
    johnnykitoo
    johnnykitoo
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Compactar Banco de Dados Empty Re: [Resolvido]Compactar Banco de Dados

    Mensagem  johnnykitoo 16/8/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
    vieirasoft
    vieirasoft
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Compactar Banco de Dados Empty Re: [Resolvido]Compactar Banco de Dados

    Mensagem  vieirasoft 16/8/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
    vieirasoft
    vieirasoft
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Compactar Banco de Dados Empty Re: [Resolvido]Compactar Banco de Dados

    Mensagem  vieirasoft 16/8/2011, 19:37

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

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Compactar Banco de Dados Empty Re: [Resolvido]Compactar Banco de Dados

    Mensagem  vieirasoft 16/8/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
    johnnykitoo
    johnnykitoo
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Compactar Banco de Dados Empty Re: [Resolvido]Compactar Banco de Dados

    Mensagem  johnnykitoo 16/8/2011, 19:42

    Só um minuto, vou testar


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

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

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Compactar Banco de Dados Empty Re: [Resolvido]Compactar Banco de Dados

    Mensagem  johnnykitoo 16/8/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
    vieirasoft
    vieirasoft
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Compactar Banco de Dados Empty Re: [Resolvido]Compactar Banco de Dados

    Mensagem  vieirasoft 16/8/2011, 19:53

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

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Compactar Banco de Dados Empty Re: [Resolvido]Compactar Banco de Dados

    Mensagem  johnnykitoo 16/8/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
    vieirasoft
    vieirasoft
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Compactar Banco de Dados Empty Re: [Resolvido]Compactar Banco de Dados

    Mensagem  vieirasoft 16/8/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
    vieirasoft
    vieirasoft
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Compactar Banco de Dados Empty Re: [Resolvido]Compactar Banco de Dados

    Mensagem  vieirasoft 16/8/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.
    johnnykitoo
    johnnykitoo
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Compactar Banco de Dados Empty Re: [Resolvido]Compactar Banco de Dados

    Mensagem  johnnykitoo 16/8/2011, 20:21

    Vou fazer!


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

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

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Compactar Banco de Dados Empty Re: [Resolvido]Compactar Banco de Dados

    Mensagem  johnnykitoo 16/8/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
    davidctba
    davidctba
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Compactar Banco de Dados Empty Re: [Resolvido]Compactar Banco de Dados

    Mensagem  davidctba 16/8/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?
    johnnykitoo
    johnnykitoo
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Compactar Banco de Dados Empty Re: [Resolvido]Compactar Banco de Dados

    Mensagem  johnnykitoo 16/8/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
    davidctba
    davidctba
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Compactar Banco de Dados Empty Re: [Resolvido]Compactar Banco de Dados

    Mensagem  davidctba 16/8/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"?
    vieirasoft
    vieirasoft
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Compactar Banco de Dados Empty Re: [Resolvido]Compactar Banco de Dados

    Mensagem  vieirasoft 16/8/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.
    davidctba
    davidctba
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Compactar Banco de Dados Empty Re: [Resolvido]Compactar Banco de Dados

    Mensagem  davidctba 17/8/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...

    vieirasoft
    vieirasoft
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Compactar Banco de Dados Empty Re: [Resolvido]Compactar Banco de Dados

    Mensagem  vieirasoft 17/8/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








    vieirasoft
    vieirasoft
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Compactar Banco de Dados Empty Re: [Resolvido]Compactar Banco de Dados

    Mensagem  vieirasoft 17/8/2011, 14:27

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

    http://dl.dropbox.com/u/8157744/controlecaixa.rar
    davidctba
    davidctba
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Compactar Banco de Dados Empty Re: [Resolvido]Compactar Banco de Dados

    Mensagem  davidctba 17/8/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
    [Resolvido]Compactar Banco de Dados Erro1d


    meu aplicativo
    [Resolvido]Compactar Banco de Dados Erro2ff


    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..
    JPaulo
    JPaulo
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Compactar Banco de Dados Empty Re: [Resolvido]Compactar Banco de Dados

    Mensagem  JPaulo 17/8/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.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Compactar Banco de Dados Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Compactar Banco de Dados Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Compactar Banco de Dados Folder_announce_new Instruções SQL como utilizar...
    davidctba
    davidctba
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Compactar Banco de Dados Empty Re: [Resolvido]Compactar Banco de Dados

    Mensagem  davidctba 17/8/2011, 20:57

    Caro JPaulo, estou utilizando o Access2007...
    HARYSOHN
    HARYSOHN
    Maximo VIP
    Maximo VIP

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Compactar Banco de Dados Empty Re: [Resolvido]Compactar Banco de Dados

    Mensagem  HARYSOHN 17/8/2011, 21:03

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

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Compactar Banco de Dados Empty Re: [Resolvido]Compactar Banco de Dados

    Mensagem  HARYSOHN 17/8/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
    JPaulo
    JPaulo
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Compactar Banco de Dados Empty Re: [Resolvido]Compactar Banco de Dados

    Mensagem  JPaulo 17/8/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.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Compactar Banco de Dados Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Compactar Banco de Dados Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Compactar Banco de Dados Folder_announce_new Instruções SQL como utilizar...
    HARYSOHN
    HARYSOHN
    Maximo VIP
    Maximo VIP

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Compactar Banco de Dados Empty Re: [Resolvido]Compactar Banco de Dados

    Mensagem  HARYSOHN 17/8/2011, 23:29

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

    Es um mestre mesmo.. Parabens
    davidctba
    davidctba
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Compactar Banco de Dados Empty Re: [Resolvido]Compactar Banco de Dados

    Mensagem  davidctba 18/8/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...
    JPaulo
    JPaulo
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Compactar Banco de Dados Empty Re: [Resolvido]Compactar Banco de Dados

    Mensagem  JPaulo 18/8/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.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Compactar Banco de Dados Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Compactar Banco de Dados Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Compactar Banco de Dados Folder_announce_new Instruções SQL como utilizar...
    wsenna
    wsenna
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Compactar Banco de Dados Empty Tadinho de mim !!!

    Mensagem  wsenna 14/10/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
    JPaulo
    JPaulo
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Compactar Banco de Dados Empty Re: [Resolvido]Compactar Banco de Dados

    Mensagem  JPaulo 15/10/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;

    http://maximoaccess.forumeiros.com/t8966-compactar-proprio-banco




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

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Compactar Banco de Dados Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Compactar Banco de Dados Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Compactar Banco de Dados Folder_announce_new Instruções SQL como utilizar...
    wsenna
    wsenna
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Compactar Banco de Dados Empty Auto-Compactar BD

    Mensagem  wsenna 15/10/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
    JPaulo
    JPaulo
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Compactar Banco de Dados Empty Re: [Resolvido]Compactar Banco de Dados

    Mensagem  JPaulo 15/10/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.

    Pay-Pal R$ Aqui
    Pay-Pal € Aqui

    Ou ainda: Aqui (Novo)

    Sucesso e Bons Estudos
    Success and Good Studies

    [Resolvido]Compactar Banco de Dados Folder_announce_new Utilize o Sistema de Busca do Fórum...
    [Resolvido]Compactar Banco de Dados Folder_announce_new 102 Códigos VBA Gratuitos...
    [Resolvido]Compactar Banco de Dados Folder_announce_new Instruções SQL como utilizar...
    wsenna
    wsenna
    Developer
    Developer

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Compactar Banco de Dados Empty Infelizmente não funfou !!!

    Mensagem  wsenna 15/10/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
    avatar
    thizerah
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Compactar Banco de Dados Empty Re: [Resolvido]Compactar Banco de Dados

    Mensagem  thizerah 12/7/2016, 19:43

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

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Compactar Banco de Dados Empty Re: [Resolvido]Compactar Banco de Dados

    Mensagem  Leomartes 15/11/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 31/12/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
    Robystanley
    Robystanley
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Compactar Banco de Dados Empty Re: [Resolvido]Compactar Banco de Dados

    Mensagem  Robystanley 31/12/2017, 00:25

    Olá Leomartes.

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

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Compactar Banco de Dados Empty Re: [Resolvido]Compactar Banco de Dados

    Mensagem  Leomartes 31/12/2017, 13:45

    Segue em anexo o arquivo de reparar e compactar para todas as versões do access
    Anexos
    [Resolvido]Compactar Banco de Dados AttachmentReparar e compactar.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (18 Kb) Baixado 119 vez(es)


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

    Respeito às regras : Respeito às Regras 100%

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

    [Resolvido]Compactar Banco de Dados Empty Re: [Resolvido]Compactar Banco de Dados

    Mensagem  Robystanley 2/1/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.
    avatar
    Matheus Bohn
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 80
    Registrado : 28/10/2020

    [Resolvido]Compactar Banco de Dados Empty Re: [Resolvido]Compactar Banco de Dados

    Mensagem  Matheus Bohn 15/12/2020, 11:05

    Bom dia!

    Aproveitando o tópico: estou com o sistema em rede com aproximadamente 15 computadores. Na Ribbon eu incluí um botão de compactar e reparar. Acontece que enquanto tiver um dos 15 conectados ao BE, o comando retorna um erro.

    Existe uma forma de compactar e reparar mesmo com todos usando? e para este caso, o compactar e reparar ao fechar, seria viável?

    Conteúdo patrocinado

    [Resolvido]Compactar Banco de Dados Empty Re: [Resolvido]Compactar Banco de Dados

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 13/5/2021, 10:44