MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access

    [Resolvido] FRONT-END com tabelas vinculadas localizar NOVO CAMINHO (rede) do BACK-END

    Compartilhe

    diegojacob
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 118
    Registrado : 06/07/2011

    FRONT-END com tabelas vinculadas localizar NOVO CAMINHO (rede) do BACK-END

    Mensagem  diegojacob em Qui 19 Jan 2012, 17:24

    Boa tarde pessoal,

    tenho um pequeno Sistema de controle BackEnd/FrontEnd com tabelas vinculadas, e a questão, é que irei usar ele em rede, mas não gostaria de revincular todas as tabelas novamente, até porque, irei enviar esse sistema a outra pessoa e não poderei estar no local para fazer tal vínculo.

    Logo, gostaria de saber se há alguma forma de ATRAVÉS DO "FRONT-END", eu localizar o CAMINHO NA REDE DO "BACK-END", e substituir o CAMINHO existende pelo NOVO "OU" ATUALIZAR os vínculos já existentes automaticamente.

    Inserir um novo vínculo, eu até consigo, basta usar um dos exemplos existentes no fórum dos Mestres Dilson, Vieira, Jpaulo, Criquio entre outros, mas Atualizar os já existentes me complica.

    Estava trabalhando no exemplo do Mr. JPaulo, mas neste, ele somente inclui TABELAS pré-determinadas, o problema é que se já houver uma tabela, ele dá erro de duplicidade e gostaria que SE já houvesse uma determinada tabela, ele apenas atualizasse o NOVO CAMINHO ou que SUBSTITUA as mesmas.

    Public Function VinculaTabelasComPassword()
    Dim db As Database
    Dim tbl As TableDef
    Dim tbl1 As TableDef
    Dim strCaminho As String
    Dim strNomeTabelaOrigem As String
    Dim strNomeTabelaALigar As String
    Dim strNomeTabelaOrigem2 As String
    Dim strNomeTabelaALigar2 As String

    strCaminho = "C:\BD_CONTROL\Vincular Tbl via VBA\BD_CONTROL_BE.accdb" '(AQUI QUERO ESCOLHER O LOCAL PELA REDE)
    strNomeTabelaOrigem = "tblExemplo"
    strNomeTabelaALigar = "tblExemplo"

    strNomeTabelaOrigem2 = "tblExemplo2"
    strNomeTabelaALigar2 = "tblExemplo2"

    Set db = CurrentDb()
    Set tbl = db.CreateTableDef(strNomeTabelaALigar, dbAttachSavePWD, _
    strNomeTabelaOrigem, ";Database=" & strCaminho & ";Pwd=123456")

    Set db = CurrentDb()
    Set tbl1 = db.CreateTableDef(strNomeTabelaALigar2, dbAttachSavePWD, _
    strNomeTabelaOrigem2, ";Database=" & strCaminho & ";Pwd=123456")


    db.TableDefs.Append tbl
    db.TableDefs.Append tbl1

    Set tbl = Nothing
    Set tbl1 = Nothing
    db.Close
    End Function


    Se alguém tiver alguma idéia de como fazer, agradeço.
    Abraços.

    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido] FRONT-END com tabelas vinculadas localizar NOVO CAMINHO (rede) do BACK-END

    Mensagem  JPaulo em Qui 19 Jan 2012, 17:47

    É só você incluír uma chekagem se a tabela existe ou não;

    Pode ultilizar varias maneiras, esta é uma delas, usando uma função incluida no codigo já existente;


    Public Function TableExists(sTable As String) As Boolean

    Dim db As database
    Dim tbl As TableDef
    Set db = CurrentDb()

    TableExists = False

    For Each tbl In db.TableDefs
    If tbl.Name = sTable Then TableExists = True
    Next tbl

    End Function


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

    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido] FRONT-END com tabelas vinculadas localizar NOVO CAMINHO (rede) do BACK-END

    Mensagem  JPaulo em Qui 19 Jan 2012, 17:54

    Ou algo assim;


    For Each tbl In CurrentDb.TableDefs
    If tbl.Name = strNomeTabelaOrigem Then
    CurrentDb.TableDefs.Delete strNomeTabelaOrigem
    End If
    Next



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

    diegojacob
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 118
    Registrado : 06/07/2011

    Re: [Resolvido] FRONT-END com tabelas vinculadas localizar NOVO CAMINHO (rede) do BACK-END

    Mensagem  diegojacob em Sex 20 Jan 2012, 08:01

    Prezado Jpaulo,
    obrigado pela ajuda e estarei testando ambas as formas.

    Mais uma informação por favor, possuo +/- 20 tabelas diferentes, teria alguma forma de eu excluir todos os vínculos existentes com apenas 01 comando?
    Após, teria alguma forma de eu vincular todas as tabelas existentes no BD-Origem sem ter que repetir por 20x o mesmo comando?

    Agora irei testar os códigos e respondo a seguir o resultado.

    Abraços.

    Convidad
    Convidado

    Re: [Resolvido] FRONT-END com tabelas vinculadas localizar NOVO CAMINHO (rede) do BACK-END

    Mensagem  Convidad em Sex 20 Jan 2012, 08:28

    Olá Diego

    Visite o site do nosso amigo Avelino Sampaio.
    Ele dá uma bela aula sobre vinculação com um arquivo de exemplo.

    Abraços

    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido] FRONT-END com tabelas vinculadas localizar NOVO CAMINHO (rede) do BACK-END

    Mensagem  JPaulo em Sex 20 Jan 2012, 09:22

    Já testou com este que revincula todas as tabelas ?


    Private Sub SeuBotao_Click()
    Call ReVincularTabelas("C:\BackEnd.accdb")
    End Sub



    Public Sub ReVincularTabelas(CaminhoDasTabelas As String)
    Dim Dbs As Database
    Dim Tdf As TableDef
    Dim Tdfs As TableDefs
    Set Dbs = CurrentDb
    Set Tdfs = Dbs.TableDefs
    For Each Tdf In Tdfs
    If Tdf.SourceTableName <> "" Then
    Tdf.Connect = ";Database=" & strCaminho & ";Pwd=123456"
    Tdf.RefreshLink
    End If
    Next
    End Sub



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

    diegojacob
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 118
    Registrado : 06/07/2011

    Re: [Resolvido] FRONT-END com tabelas vinculadas localizar NOVO CAMINHO (rede) do BACK-END

    Mensagem  diegojacob em Sex 20 Jan 2012, 10:48

    Balem,
    dei uma breve visualizada no site e achei muito legal e tem bastante coisa interessante lá.
    Valeu pela dica.


    Última edição por diegojacob em Sex 20 Jan 2012, 11:35, editado 1 vez(es)

    Convidad
    Convidado

    Re: [Resolvido] FRONT-END com tabelas vinculadas localizar NOVO CAMINHO (rede) do BACK-END

    Mensagem  Convidad em Sex 20 Jan 2012, 11:02

    Que bom que gostou
    Realmente o Avelino é um mestre em Access e em outras "cositas" mais.
    Se minha dica resolveu teu problema, por favor, clique no botão Resolvido do teu post.

    Abraços

    diegojacob
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 118
    Registrado : 06/07/2011

    Re: [Resolvido] FRONT-END com tabelas vinculadas localizar NOVO CAMINHO (rede) do BACK-END

    Mensagem  diegojacob em Sex 20 Jan 2012, 11:22

    Prezado Balem,
    agradeço a ajuda, mas eu não fui a fundo na sua indicação, pois estava testando o código do amigo JPaulo, e funcionou perfeitamente.

    A sua dica me ajudará muito com certeza, "Vinculando tabelas com barra de progresso", é bem interessante, mas irei ver com calma depois, pois preciso enviar BD_BE com urgência.

    Muito Obrigado.


    Última edição por diegojacob em Sex 20 Jan 2012, 11:35, editado 1 vez(es)

    diegojacob
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 118
    Registrado : 06/07/2011

    Re: [Resolvido] FRONT-END com tabelas vinculadas localizar NOVO CAMINHO (rede) do BACK-END

    Mensagem  diegojacob em Sex 20 Jan 2012, 11:30

    Mr. JPaulo,
    inseri o último código que você postou e funcionou perfeitamente.

    Só tive o trabalho de COPIAR/COLAR e adicionar "strCaminho = CaminhoDasTabelas" que faltou.

    Esse código atualiza o CAMINHO DE TODAS AS TABELAS vinculadas anteriormente, que por algum motivo sua origem foi alterada, de LOCAL para REDE, etc.

    Muito obrigado pela ajuda.

    Public Sub ReVincularTabelas(CaminhoDasTabelas As String)
    Dim Dbs As Database
    Dim Tdf As TableDef
    Dim Tdfs As TableDefs
    strCaminho = CaminhoDasTabelas
    Set Dbs = CurrentDb
    Set Tdfs = Dbs.TableDefs

    For Each Tdf In Tdfs
    If Tdf.SourceTableName <> "" Then
    Tdf.Connect = ";Database=" & strCaminho & ";Pwd=654321"
    Tdf.RefreshLink
    End If
    Next
    End Sub

    RESOLVIDO!!!

    JPaulo
    Moderador
    Moderador

    Respeito às Regras 100%

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

    Re: [Resolvido] FRONT-END com tabelas vinculadas localizar NOVO CAMINHO (rede) do BACK-END

    Mensagem  JPaulo em Sex 20 Jan 2012, 17:42

    Obrigado pelo retorno o forum agradece.


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

    gilkleber
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 21
    Registrado : 22/02/2011

    Gostaria de usar esse codigo tambem

    Mensagem  gilkleber em Qua 09 Abr 2014, 10:20

    Ola amigos... bom dia!

    DiegoJacob, esse ultimo codigo que vc postou serve para a seguinte situação?

    - Vc possui um bd dividido em BE e FE. O FE1 fica no servidor e tem as tabelas vinculadas. Para cada FE2... FE3... FE4... ele, por qualquer motivo que seja, faz a vinculação sozinho?

    Se for, será que vc poderia copiar o codigo aqui, apenas explicando o que é cada campo que eu devo alterar? dei uma olhada e me senti meio perdido sobre o que alterar para aproveitar o codigo...

    Obrigado!!! Abraço!

      Data/hora atual: Qui 08 Dez 2016, 21:53