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


2 participantes

    [Resolvido]Atualizar campo de tabela quando a BD é convertida para MDE

    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4772
    Registrado : 06/11/2009

    [Resolvido]Atualizar campo de tabela quando a BD é convertida para MDE Empty [Resolvido]Atualizar campo de tabela quando a BD é convertida para MDE

    Mensagem  Assis 3/10/2015, 17:38

    Boa tarde amigos

    Tenho uma BD feita no 2003 que sempre que a envio para o cliente depois de alterações, converto-a para MDE

    Qual a possibilidade de ao converter para MDE uma base de dados, executar o comando abaixo, que é do tipo texto.

    O comando que tenho num botão é o seguinte:

    If DCount("*", "proprietario") = 0 Then ' se não houver registros na tabela

      Me.Versão = "0001" & "." & Month(Now) & "-" & Year(Now)
    Else
     Me.Versão = Format(Mid(DMax("versão", "proprietario"), 1, 4) + 1, "0000") & "." & Month(Now) & "-" & Year(Now)
    MsgBox "Versão Atualizada Com Sucesso.", vbInformation, "Aviso"
    Me.Requery
    End If

    Obrigado


    .................................................................................
    *** Só sei que nada sei ***
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    [Resolvido]Atualizar campo de tabela quando a BD é convertida para MDE Empty Re: [Resolvido]Atualizar campo de tabela quando a BD é convertida para MDE

    Mensagem  Noobezinho 4/10/2015, 00:29

    Assis

    Em mais de 20 anos de estrada, nunca converti uma base de dados.

    Apenas coloco uma boa senha criptografada na mesma.

    Em outras palavras, compilo o FE e mantenho a base de dados como mdb/accdb sem converter, com senha.

    [ ]'s


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4772
    Registrado : 06/11/2009

    [Resolvido]Atualizar campo de tabela quando a BD é convertida para MDE Empty Re: [Resolvido]Atualizar campo de tabela quando a BD é convertida para MDE

    Mensagem  Assis 4/10/2015, 11:00

    Bom dia Noob

    Só coloca senha no VBA ?

    E como impede o acesso á estrutura da mesma ?

    Obrigado

    Bom domingo


    .................................................................................
    *** Só sei que nada sei ***
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    [Resolvido]Atualizar campo de tabela quando a BD é convertida para MDE Empty Re: [Resolvido]Atualizar campo de tabela quando a BD é convertida para MDE

    Mensagem  Noobezinho 4/10/2015, 12:24

    Assis

    Obrigado, desejo o mesmo a você!  Wink
    Entendi que o teu aplicativo não está dividido.

    Temos o FE (Front End) onde estão todos os objetos do aplicativo, menos as tabelas.
    E o BE (Back End) ou BD (Base de dados) onde estão somente as tabelas.

    Compilamos o FE transformando-o em mde/accde.
    Desse modo não se tem mais acesso a estruturas/códigos do objeto.
    Quanto ao BE, só poderá acessar com senha, mas isso no Access 2007+.
    Para evitar acesso a estrutura das tabela do BE nas outras versões, usa-se a o bloqueio
    da tecla Shift.

    Veja um exemplo aqui.

    Mas, antes de tentar fazer isso, faça um backup do teu aplicativo

    Entenda que eu faço isso com todos os meus aplicativos, desde os mais simples aos mais complexo.

    [ ]'s


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4772
    Registrado : 06/11/2009

    [Resolvido]Atualizar campo de tabela quando a BD é convertida para MDE Empty Re: [Resolvido]Atualizar campo de tabela quando a BD é convertida para MDE

    Mensagem  Assis 4/10/2015, 15:17

    Noob

    A minha BD esta dividida, mas quando coloco a senha no BE não consigo vincular as tabelas:

    Uso este código, e não sei aonde colocar a senha do BE no módulo

    Imagine que a senha é " 123456" aonde coloco ?

    Obrigado

    Function AtualizarVínculos(ByVal NomeDoArq As String, _
       Optional varPwd As Variant) As Boolean
       ' Atualiza vínculos ao banco de dados informado.
       ' Retorna True se bem sucedida.
       ' varPwd (opcional) recebe a senha do arquivo mdb.
       ' Desenvolvido por JR
       ' http://www.accessjr.cjb.net
       
       On Error GoTo Err_Atualiza
       
       Dim dbfront As Database, tdf As TableDef
       Dim Conttdf As Integer
       Dim StatusTexto As String
       Dim strConnect As String
       
       AtualizarVínculos = False ' Valor inicial da função.
       
       Screen.MousePointer = 11 ' Muda cursor para ampulheta
       
       Set dbfront = DBEngine(0)(0)
       Conttdf = 1 ' Ajusta contador de tabelas = 1
       
       ' Inicia a barra de progresso do Access.
       StatusTexto = "Atualizando vínculos com " & NomeDoArq & "..."
       SysCmd acSysCmdInitMeter, StatusTexto, dbfront.TableDefs.Count
       
       ' Define a string da propriedade Connect.
       If IsMissing(varPwd) Then
           strConnect = "MS Access;DATABASE=" & NomeDoArq
       Else
          strConnect = "MS Access;DATABASE=" & NomeDoArq & ";PWD=" & varPwd
       End If
       

       ' Loop pelas tabelas do front-end.
       For Each tdf In dbfront.TableDefs
           SysCmd acSysCmdUpdateMeter, Conttdf 'Atualiza o progresso.
           Conttdf = Conttdf + 1
           ' Também pode ser feito como na linha abaixo:
           ' If (tdf.Attributes And dbAttachedTable) <> 0 Then
           
           ' Porém, usando Len(tdf.Connect) é mais rápido.
           ' Toda tabela vinculada possui a propriedade
           ' Connect preenchida.
           If Len(tdf.Connect) > 0 Then
               tdf.Connect = strConnect
               tdf.RefreshLink  ' Atualiza vínculos.
           End If
       Next tdf
       AtualizarVínculos = True  ' Revinculação completa.
       
    sai:
       SysCmd acSysCmdRemoveMeter
       Set tdf = Nothing       'libera memória
       Set dbfront = Nothing
       Screen.MousePointer = 0
       Exit Function
       
    Err_Atualiza:
       Resume sai
       
    End Function


    .................................................................................
    *** Só sei que nada sei ***
    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4772
    Registrado : 06/11/2009

    [Resolvido]Atualizar campo de tabela quando a BD é convertida para MDE Empty Re: [Resolvido]Atualizar campo de tabela quando a BD é convertida para MDE

    Mensagem  Assis 4/10/2015, 15:36

    Noob

    Já tentei assim e não dá

    strConnect = "MS Access;DATABASE=" & NomeDoArq & ";PWD=123456" & varPwd


    .................................................................................
    *** Só sei que nada sei ***
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    [Resolvido]Atualizar campo de tabela quando a BD é convertida para MDE Empty Re: [Resolvido]Atualizar campo de tabela quando a BD é convertida para MDE

    Mensagem  Noobezinho 4/10/2015, 16:00

    Assis

    Experimente assim:

    strConnect = "MS Access;PWD=senha;DATABASE=" & CaminhodaBaseDeDados

    Se não conseguir, anexe teu aplicativo que eu dou uma olhada.

    [ ]'s


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    Assis
    Assis
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 4772
    Registrado : 06/11/2009

    [Resolvido]Atualizar campo de tabela quando a BD é convertida para MDE Empty Re: [Resolvido]Atualizar campo de tabela quando a BD é convertida para MDE

    Mensagem  Assis 5/10/2015, 14:16

    Noob

    Assim resultou, a vermelho as alterações que fiz, só adicionei uma linha a dizer o valor Variant varPwd .
    Obrigado

    Function AtualizarVínculos(ByVal NomeDoArq As String, _
       Optional varPwd As Variant) As Boolean
       ' Atualiza vínculos ao banco de dados informado.
       ' Retorna True se bem sucedida.
       ' varPwd (opcional) recebe a senha do arquivo mdb.
       ' Desenvolvido por JR
       ' http://www.accessjr.cjb.net
       On Error GoTo Err_Atualiza
       Dim dbfront As Database, tdf As TableDef
       Dim Conttdf As Integer
       Dim StatusTexto As String
       Dim strConnect As String
       
       AtualizarVínculos = False ' Valor inicial da função.
       
       Screen.MousePointer = 11 ' Muda cursor para ampulheta
       
       Set dbfront = DBEngine(0)(0)
       Conttdf = 1 ' Ajusta contador de tabelas = 1
       
       ' Inicia a barra de progresso do Access.
       StatusTexto = "Atualizando vínculos com " & NomeDoArq & "..."
       SysCmd acSysCmdInitMeter, StatusTexto, dbfront.TableDefs.Count
       varPwd = 123456
       ' Define a string da propriedade Connect.
       If IsMissing(varPwd) Then
           strConnect = "MS Access;DATABASE=" _
               & NomeDoArq
       Else
           strConnect = "MS Access;DATABASE=" _
              & NomeDoArq & ";PWD=" & varPwd
                     
       End If
       
       ' Loop pelas tabelas do front-end.
       For Each tdf In dbfront.TableDefs
           SysCmd acSysCmdUpdateMeter, Conttdf 'Atualiza o progresso.
           Conttdf = Conttdf + 1
           ' Também pode ser feito como na linha abaixo:
           ' If (tdf.Attributes And dbAttachedTable) <> 0 Then
           
           ' Porém, usando Len(tdf.Connect) é mais rápido.
           ' Toda tabela vinculada possui a propriedade
           ' Connect preenchida.
           If Len(tdf.Connect) > 0 Then
               tdf.Connect = strConnect
               tdf.RefreshLink  ' Atualiza vínculos.
           End If
       Next tdf
       AtualizarVínculos = True  ' Revinculação completa.
       
    sai:
       SysCmd acSysCmdRemoveMeter
       Set tdf = Nothing       'libera memória
       Set dbfront = Nothing
       Screen.MousePointer = 0
       Exit Function
       
    Err_Atualiza:
       Resume sai
       
    End Function


    .................................................................................
    *** Só sei que nada sei ***
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    [Resolvido]Atualizar campo de tabela quando a BD é convertida para MDE Empty Re: [Resolvido]Atualizar campo de tabela quando a BD é convertida para MDE

    Mensagem  Noobezinho 5/10/2015, 14:52

    Que ótimo que deu certo, Assis

    Grato pelo retorno

    Boa sorte!



    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.

    Conteúdo patrocinado


    [Resolvido]Atualizar campo de tabela quando a BD é convertida para MDE Empty Re: [Resolvido]Atualizar campo de tabela quando a BD é convertida para MDE

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 19/4/2024, 07:41