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]Atualizar campo de tabela quando a BD é convertida para MDE

    Compartilhe
    avatar
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

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

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

    Mensagem  Assis em Sab 03 Out 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 ***
    avatar
    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

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

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

    Mensagem  Noobezinho em Dom 04 Out 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


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .
    avatar
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

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

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

    Mensagem  Assis em Dom 04 Out 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 ***
    avatar
    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

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

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

    Mensagem  Noobezinho em Dom 04 Out 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 [Você precisa estar registrado e conectado para ver este link.].

    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


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .
    avatar
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

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

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

    Mensagem  Assis em Dom 04 Out 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
       ' [Você precisa estar registrado e conectado para ver este link.]
       
       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 ***
    avatar
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

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

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

    Mensagem  Assis em Dom 04 Out 2015, 15:36

    Noob

    Já tentei assim e não dá

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


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

    Respeito às Regras 100%

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

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

    Mensagem  Noobezinho em Dom 04 Out 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


    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .
    avatar
    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

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

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

    Mensagem  Assis em Seg 05 Out 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
       ' [Você precisa estar registrado e conectado para ver este link.]
       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 ***
    avatar
    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

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

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

    Mensagem  Noobezinho em Seg 05 Out 2015, 14:52

    Que ótimo que deu certo, Assis

    Grato pelo retorno

    Boa sorte!



    .................................................................................
    Noobezinho

    * A solução funcionou?  [Você precisa estar registrado e conectado para ver esta imagem.] 
    Agradeça e feche o tópico clicando no botão Resolvido
    Se não sabe como, veja [Você precisa estar registrado e conectado para ver este link.].

    Como anexar imagem no teu post do fórum : [Você precisa estar registrado e conectado para ver este link.]

    * Criar arquivos.zip com o Winrar - veja [Você precisa estar registrado e conectado para ver este link.].

    Atualmente estou verificando se quem está pedindo ajuda, ajudamos e não retornou.
    Se a pessoa em questão não deu retorno, não tentarei ajudar novamente .

      Data/hora atual: Sex 15 Dez 2017, 00:27