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

    Impedir duas instancia do mesmo bd

    avatar
    amandaalves1
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 482
    Registrado : 01/02/2010

    Impedir duas instancia do mesmo bd Empty Impedir duas instancia do mesmo bd

    Mensagem  amandaalves1 10/10/2012, 10:49

    Como faço para impedir que o mesmo bd sejá aberto mais de uma uma vez ao mesmoA tempo.
    Grata
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    Impedir duas instancia do mesmo bd Empty Re: Impedir duas instancia do mesmo bd

    Mensagem  criquio 10/10/2012, 12:46

    Olá! A sua ideia se refere à um mesmo pc ou mais de um pc em rede? Porque normalmente, quando no mesmo, ao tentar abrir um banco já existente, o foco vai para ele já aberto ao invés de abrir outra instância.


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

    Avelino Sampaio
    Avelino Sampaio
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3883
    Registrado : 04/04/2010

    Impedir duas instancia do mesmo bd Empty Re: Impedir duas instancia do mesmo bd

    Mensagem  Avelino Sampaio 10/10/2012, 12:56

    Cole estas funções num módulo global

    Código:
    Public Function fncIsRunning()
        Dim db As DAO.Database
        On Error Resume Next
        Set db = CurrentDb()
        If TestDDELink(db.Name) Then
            MsgBox "Aviso:" & vbCrLf & vbCrLf & "O Aplicativo já está em execução em" _
                    & vbCrLf & "outra janela do Windows!", vbCritical, "2ª Instância do Aplicativo"
            Application.Quit acQuitSaveNone
        End If
    End Function

    ' Função Auxiliar de IsRunning()
    Private Function TestDDELink(ByVal strAppName$) As Integer
       
        Dim varDDEChannel
        On Error Resume Next
        Application.SetOption ("Ignore DDE Requests"), True
        varDDEChannel = DDEInitiate("MSAccess", strAppName)
       
      ' When the app isn't already running this will error
        If Err Then
          TestDDELink = False
        Else
            TestDDELink = True
            DDETerminate varDDEChannel
            DDETerminateAll
        End If
        Application.SetOption ("Ignore DDE Requests"), False

    End Function

    Chame pela função fncIsRunning() no seu formulário de abertura

    Sucesso!


    .................................................................................
    Vídeos, livros, kit MontaRibbons e acesso vitalício ao site UsandoAcces  
    Clique AQUI e analise o custo beneficio do material oferecido.
    avatar
    amandaalves1
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 482
    Registrado : 01/02/2010

    Impedir duas instancia do mesmo bd Empty Re: Impedir duas instancia do mesmo bd

    Mensagem  amandaalves1 10/10/2012, 13:52

    velino obrigado vou fazer
    avatar
    amandaalves1
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 482
    Registrado : 01/02/2010

    Impedir duas instancia do mesmo bd Empty Re: Impedir duas instancia do mesmo bd

    Mensagem  amandaalves1 18/10/2012, 23:25

    porque que quando converto em mde está funcão não funciona?
    uso o access 2007
    avatar
    amandaalves1
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 482
    Registrado : 01/02/2010

    Impedir duas instancia do mesmo bd Empty Re: Impedir duas instancia do mesmo bd

    Mensagem  amandaalves1 19/10/2012, 15:53

    Pessoal vocês, poderiam me dar uma luz para poder implantar esse código para impedir que abra duas instancia do mesmo bd, quando está no formado de bd funciona, mas quando converto em mde não funciona,poderiam me dar uma luz. Obrigada
    avatar
    amandaalves1
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 482
    Registrado : 01/02/2010

    Impedir duas instancia do mesmo bd Empty Re: Impedir duas instancia do mesmo bd

    Mensagem  amandaalves1 22/10/2012, 17:12

    Olá amigos, ja tentei de todos os jeitos mas não está funcionando, abre outra instancia, percebi que se já faz algum tempo que o bd está aberto ai que abre mesmo. poderiam me ajudar a solucionar este problema. Obrigada
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    Impedir duas instancia do mesmo bd Empty Re: Impedir duas instancia do mesmo bd

    Mensagem  criquio 22/10/2012, 17:34

    Como está o código no seu formulário de abertura?


    .................................................................................
    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
    amandaalves1
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 482
    Registrado : 01/02/2010

    Impedir duas instancia do mesmo bd Empty Re: Impedir duas instancia do mesmo bd

    Mensagem  amandaalves1 22/10/2012, 17:44

    O crio eu uso uma macro autoexec,

    o codigo é esse:

    Option Compare Database
    Option Explicit

    '***********************************************************************
    ' As duas funções a seguir rodam em qualquer versão do Access e servem
    ' para checar se já existe uma instância do arquivo mdb aberta.
    ' Caso positivo, a função IsRunning() não permite a nova abertura
    ' do banco de dados.
    '
    ' FUNÇÕES: IsRunning() e TestDDELink(ByVal strAppName$)
    '
    '***********************************************************************

    Function IsRunning()
    Dim db As Database
    Set db = CurrentDb()
    If TestDDELink(db.Name) Then
    MsgBox "Aviso:" & "@@O Aplicativo já está em execução em" _
    & vbCrLf & "outra janela do Windows!", vbCritical, "2ª Instância do Aplicativo"
    Application.Quit acQuitSaveNone
    End If
    End Function

    ' Função Auxiliar de IsRunning()
    Function TestDDELink(ByVal strAppName$) As Integer

    Dim varDDEChannel
    On Error Resume Next
    Application.SetOption ("Ignore DDE Requests"), True
    varDDEChannel = DDEInitiate("MSAccess", strAppName)

    ' When the app isn't already running this will error
    If Err Then
    TestDDELink = False
    Else
    TestDDELink = True
    DDETerminate varDDEChannel
    DDETerminateAll
    End If
    Application.SetOption ("Ignore DDE Requests"), False

    End Function
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    Impedir duas instancia do mesmo bd Empty Re: Impedir duas instancia do mesmo bd

    Mensagem  criquio 22/10/2012, 18:20

    Você está chamando a função fncIsRunning() na macro? No adicionar código e inserir o nome da macro, ou seja, fncIsRunning().


    .................................................................................
    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
    amandaalves1
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 482
    Registrado : 01/02/2010

    Impedir duas instancia do mesmo bd Empty Re: Impedir duas instancia do mesmo bd

    Mensagem  amandaalves1 22/10/2012, 18:39

    to chamando assim =IsRunning() na macro
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    Impedir duas instancia do mesmo bd Empty Re: Impedir duas instancia do mesmo bd

    Mensagem  criquio 22/10/2012, 18:43

    Tente só o que coloquei em vermelho na mensagem anterior.


    .................................................................................
    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
    amandaalves1
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 482
    Registrado : 01/02/2010

    Impedir duas instancia do mesmo bd Empty Re: Impedir duas instancia do mesmo bd

    Mensagem  amandaalves1 22/10/2012, 18:52

    Criquio se for no avento ao abrir de meu form principal, ficaria assim:

    Private Sub Form_Open(Cancel As Integer)
    fncIsRunning
    End Sub


    ai não precisaria usar macro?
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    Impedir duas instancia do mesmo bd Empty Re: Impedir duas instancia do mesmo bd

    Mensagem  criquio 22/10/2012, 18:55

    Sim. No entanto, a vantagem da macro AutoExec é que o que estiver nela será executado antes de qualquer coisa, antes mesmo de abrir o formulário principal. Para esse caso, acho que pode ser até melhor.


    .................................................................................
    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
    amandaalves1
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Feminino
    Localização : Brasil
    Mensagens : 482
    Registrado : 01/02/2010

    Impedir duas instancia do mesmo bd Empty Re: Impedir duas instancia do mesmo bd

    Mensagem  amandaalves1 22/10/2012, 19:04

    Intendi, Criquio vc não tem um exemplo para me enviar para ver onde estou errando? Obrigada
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    Impedir duas instancia do mesmo bd Empty Re: Impedir duas instancia do mesmo bd

    Mensagem  criquio 23/10/2012, 08:44

    Amanda, na sua macro AutoExec, na lista Ação, escolha "Executar código". Embaixo, no campo "Nome da função", coloque fncIsRunning()


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

    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    Impedir duas instancia do mesmo bd Empty Re: Impedir duas instancia do mesmo bd

    Mensagem  criquio 1/12/2012, 08:05

    Olá Amanda! Conseguiu resolver?


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


    Conteúdo patrocinado


    Impedir duas instancia do mesmo bd Empty Re: Impedir duas instancia do mesmo bd

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 9/5/2024, 08:12