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]Reanexar tabelas

    Compartilhe

    M2013
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 56
    Registrado : 07/06/2013

    [Resolvido]Reanexar tabelas

    Mensagem  M2013 em Seg 10 Mar 2014, 18:25

    Prezados,

    Tenho uma tabela Configurações com os campos [Nome_Tab] ,[Nome_Arq] ,[Local_Arq] e [Descritivo].
    Nessa tabela insiro o nome das tabelas vinculadas no banco, o nome do arquivo onde se encontra essa tabela , o local onde está o arquivo e se ele é local ou na rede.
    Dados na tabela (exemplo):

    [Nome_Tab] = tb_IPCA
    [Nome_Arq]= pro@.accdb
    [Local_Arq] = T:\CF
    [Descritivo] = Rede

    [Nome_Tab] = tb_OG
    [Nome_Arq]= cf&.accdb
    [Local_Arq] = C:\CF
    [Descritivo] = Local

    Pensei em reanexar as tabelas que existem no banco tendo como referência os registros dessa tabela. Isto é, em outro código eu já verifico se existem os arquivos nos
    locais... se não existe eu peço a localização e dou um UPDATE na tabela campo [Local_Arq] .
    Enfim , para reanexar as tabelas nos respectivos locais estou tendo dificuldades,
    descrevo o código que estou usando abaixo.
    Quem puder ajuda e agradeço antecipadamente...

    Dim db As Database
    Dim tb As Recordset
    Dim caminhoR,caminhoL,ArqNome,NomeTab As String
    Set db = CurrentDb
    Set tb = db.OpenRecordset("tb_Configurações")

    caminhoR = DLookup("[Local_Arq]", "tb_Configurações", "[Descritivo]= 'Rede'")
    caminhoL = DLookup("[Local_Arq]", "tb_Configurações", "[Descritivo]= 'Local'")
    ArqNome = DLookup("[Nome_Arq]", "tb_Configurações", "\" & "[Nome_Arq]")
    NomeTab = DLookup("[Nome_Tab]", "tb_Configurações", "[Nome_Tab]")

    Do While Not tb.EOF

    If tb!Descritivo='Rede' then
    DoCmd.TransferDatabase acLink, "Microsoft Access", caminhoR & NomeArq, acTable, tb!Nome_Tab, tb!Nome_Tab, False

    elseIf tb!Descritivo='Local' then
    DoCmd.TransferDatabase acLink, "Microsoft Access", caminhoL & NomeArq, acTable, tb!Nome_Tab, tb!Nome_Tab, False

    end if
    tb.MoveNext
    Loop
    tb.Close

    Marco Messa
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 283
    Registrado : 28/06/2010

    Re: [Resolvido]Reanexar tabelas

    Mensagem  Marco Messa em Seg 24 Mar 2014, 12:32

    Dê uma olhada e veja se o exemplo desse tópico o ajuda:

    [Você precisa estar registrado e conectado para ver este link.]


    .................................................................................
    Tea with me that I book your face [Você precisa estar registrado e conectado para ver esta imagem.]

    M2013
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Anónimo
    Mensagens : 56
    Registrado : 07/06/2013

    [Resolvido]Reanexar tabelas

    Mensagem  M2013 em Seg 24 Mar 2014, 14:02

    Obrigado pela atenção Marco. Na verdade o erro estava ocorrendo no próprio Access.Em outras funções também. Baixei o Service Pack 1 e 2 e executei e os erros sumiram. (meu Access é versão 2010).

      Data/hora atual: Qui 08 Dez 2016, 00:08