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

    Vincular uma tabela para cada destino com VBA

    bondan
    bondan
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 35
    Registrado : 30/12/2019

    Vincular uma tabela para cada destino com VBA Empty Vincular uma tabela para cada destino com VBA

    Mensagem  bondan 30/12/2019, 21:57

    Prezados,

    Vi muitos posts e exemplos de vinculação de tabelas ao iniciar, para dois bancos etc, mas nada encaixou no que eu necessito eu que eu consiga fazer ou adaptar.
    Aqui tenho um sistema que busca dados de 4 computadores diferentes e mais um servidor com back-end, e ainda algumas estações possuem um banco na própria máquina, com informações específicas locais dela.

    Costumo ao atualizar o sistema, trocar o Front em todas e em cada uma, em cada vez "vincular as tabelas individualmente conforme a necessidade daquela estação", é muito chato.

    Pensei em fazer algo que necessito dos experientes, pois não faço idéia de como fazer...

    Um arquivo.ini chamado "vinculos.ini" onde deixo setado todos vínculos das tabelas, de cada tabela daquela estação, e ao abrir o sistema ele busque este arquivo local. Se surgir uma nova tabela à vincular, só adiciono no .ini

    Desta forma eu atualizaria normalmente trocando o Front-end e independente de como funcione aquela estação, ela sairia vinculando as tabelas conforme o arquivo "vinculos.ini" fixo da estação.

    Pensei anteriormente em fixar campos, criar uma tabela, mas não dá, sempre teria que fazer algo mais ao atualizar o front-end. Tem que ser um outro arquivo externo fixo com a configuração daquela estação.

    Hoje é assim...
    - Estação 01 à 04 buscam informações entre si num sistema terceiro também access, mas vinculam dados lançados no back-end no servidor.
    - Estação 05 e 06 buscam as mesmas informações anteriores, mais algumas em um banco local delas, e também vinculam o back-end.
    - Demais estações trabalham somente no back-end.

    Tem solução isso ou vou ter de criar tabelas diferentes dentro do mesmo banco e mudar toda programação?
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7242
    Registrado : 15/03/2013

    Vincular uma tabela para cada destino com VBA Empty Re: Vincular uma tabela para cada destino com VBA

    Mensagem  ahteixeira 31/12/2019, 10:59

    Olá Jalmar, seja bem-vindo ao fórum.

    Apesar de ter várias máquinas os dados (Back end) deveriam estar todos num servidor com partilha.
    Assim fica fácil ligar (vincular) a qualquer Back end e trabalhar conforme pretendido, pois pode estar vinculado a todas as origens mesmo que tenha o mesmo nome da tabela e no vínculo dá o nome a identificar.

    Em tempo fiz um exemplo , veja se ajuda nesta situação como outra solução:
    https://www.maximoaccess.com/t27608-exemplo-de-sistema-multi-empresa

    Abraço
    bondan
    bondan
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 35
    Registrado : 30/12/2019

    Vincular uma tabela para cada destino com VBA Empty Re: Vincular uma tabela para cada destino com VBA

    Mensagem  bondan 31/12/2019, 11:31

    Obrigado ahteixeira, mas vejo que o caso é um pouco diferente.
    Necessito que o mesmo front faça tabelas vinculadas com até 6 locais diferentes, dependendo da estação, tabelas apontando para bancos diferentes, e neste seu exemplo mudamos o banco de um vínculo apenas, onde todas tabelas apontariam para o mesmo banco.

    O Cenário é assim para duas estações, por exemplo:
    Tabela 1 --> Banco 1 (Sistema terceiro - \\est01\sistema-terceiro\banco.mdb)
    Tabela 2 --> Banco 2 (Sistema terceiro - \\est02\sistema-terceiro\banco.mdb)
    Tabela 3 --> Banco 3 (Sistema terceiro - \\est03\sistema-terceiro\banco.mdb)
    Tabela 4 --> Banco 4 (Sistema terceiro - \\est04\sistema-terceiro\banco.mdb)
    Tabela 5 --> Banco Back-end (Registros Gerais)
    Tabela 6 --> Banco Local (Banco com registros que se aplicam somente àquela estação)
    Obs: Estes sistemas terceiros funcionam em máquinas separadas pois são leitores de portas seriais, não tem como unificar e sem suporte.

    Então quando atualizo o sistema, tenho que trocar o Front e vincular as tabelas conforme o uso daquela estação, em cada uma das 12 estações, todas vezes...
    Por isso melhor seria setar um arquivo externo com as informações de vínculos por tabela, onde o front pegaria o caminho da tabela específica e vincularias as tabelas individualmente ao abrir, só isso.

    Só isso no resultado final, mas a programação...

    Por exemplo no arquivo .ini:
    [Tabela 1]
    Caminho="\\est01\sistema-terceiro\banco.mdb"
    [Tabela 2]
    Caminho="\\est02\sistema-terceiro\banco.mdb"
    [Tabela 3]
    Caminho="\\est03\sistema-terceiro\banco.mdb"
    [Tabela 4]
    Caminho="\\est04\sistema-terceiro\banco.mdb"
    [Tabela 5]
    Caminho="\\servidor\sistema\banco.mdb"
    [Tabela 6]
    Caminho="C:\sistema\banco.mdb"
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7242
    Registrado : 15/03/2013

    Vincular uma tabela para cada destino com VBA Empty Re: Vincular uma tabela para cada destino com VBA

    Mensagem  ahteixeira 31/12/2019, 14:13

    Olá Jalmar,

    Compreendo o que explicou, agora se cada posto tiver a pasta das base de dados partilhadas na rede, pode ter uma base de dados no seu posto que ligue as tabelas necessárias a cada PC da rede.

    Se não estiver em rede, a questão passa a ser outra.
    Creio que faz essas ligacões para exportar dados ou sincronizar.
    Já pensou em ter um modulo no aplicativo (ate pode ser automatizado) que efetue a exportacao dos dados para uma tabela em BackEnd se tiver rede ou caso não tenha envie por email ou FTP.

    Se tiver todos os PC em rede , não percebi onde está a dificuldade.

    Abraço
    bondan
    bondan
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 35
    Registrado : 30/12/2019

    Vincular uma tabela para cada destino com VBA Empty Re: Vincular uma tabela para cada destino com VBA

    Mensagem  bondan 2/1/2020, 12:42

    Obrigado amigo, mas não creio que unificar ajude, assim como automatizar importação que não vem ao caso.

    A dificuldade é que tem a tabela com o mesmo nome "Tabela1" na estação 01, 02, 03, 04... Com dados diferentes.

    As "tabelas" tem de ser vinculadas ao banco em rede ou local correto, de acordo com a utilização daquela estação, pois à pesar de ter a "mesma programação e tabelas", busca informações em locais diferentes conforme estação através de "tabela vinculada".

    Então ao atualizar um front-end, que possui a "mesma programação e tabelas em todos", tenho que vincular manualmente o apontamento das tabelas para o local correto, em cada estação, em cada tabela, pois cada estação tem e busca dados diferentes.

    Por isso abri o tópico, para ver se alcançamos algo externo como um arquivo .ini com a configuração de caminhos fixo daquela estação, para trocar normalmente o front-end independente da sua função, pois o front-end buscaria sempre os vínculos de um arquivo externo fixo daquela estação, não necessitando vincular tabelas individualmente todas as vezes.

    Outra solução seria vincular ao usuário logado os caminhos de vínculo de tabela, também é solução, mas tem de vincular cada tabela existente conforme a necessidade daquele usuário, e não buscar tudo de um ou outro banco, mas sim cada tabela individualmente.

    Consegue ajudar desta forma ou alguém mais?
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7242
    Registrado : 15/03/2013

    Vincular uma tabela para cada destino com VBA Empty Re: Vincular uma tabela para cada destino com VBA

    Mensagem  ahteixeira 3/1/2020, 22:30

    Olá Jalmar,

    Para ler .ini veja este topico.
    https://www.maximoaccess.com/t24042-resolvidoaplicativo-procura-local-do-db-em-arquivo-ini

    Para ler um .txt não falta exemplos no forum, veja como fazer uma "Busca":
    https://www.maximoaccess.com/t1115-busca-no-forum-search

    Não respondeu se os computadores estão todos na mesma rede, caso afirmativo, tambem pode ter uma tabela na rede com os caminhos de cada posto.

    Abraço
    bondan
    bondan
    Novato
    Novato

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 35
    Registrado : 30/12/2019

    Vincular uma tabela para cada destino com VBA Empty Re: Vincular uma tabela para cada destino com VBA

    Mensagem  bondan 4/1/2020, 11:54

    Obrigado ahteixeira, foi útil a informação... Vou trabalhar ela e ver o que consigo.
    Novamente agradeço a atenção.
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2817
    Registrado : 22/11/2016

    Vincular uma tabela para cada destino com VBA Empty Re: Vincular uma tabela para cada destino com VBA

    Mensagem  DamascenoJr. 3/6/2020, 21:39

    bondan, algum avanço?


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    tauron
    tauron
    VIP
    VIP

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1293
    Registrado : 07/12/2011

    Vincular uma tabela para cada destino com VBA Empty Re: Vincular uma tabela para cada destino com VBA

    Mensagem  tauron 4/6/2020, 00:37

    Veja se ajuda.

    Lembre-se de alterar o caminho no modulo.
    Anexos
    Vincular uma tabela para cada destino com VBA AttachmentLocaisBE.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (841 Kb) Baixado 8 vez(es)
    tauron
    tauron
    VIP
    VIP

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1293
    Registrado : 07/12/2011

    Vincular uma tabela para cada destino com VBA Empty Re: Vincular uma tabela para cada destino com VBA

    Mensagem  tauron 16/6/2020, 16:49

    Aproveitando a oportunidade, surgiu-me uma duvida:


    Com este código consigo vincular um formulário, seja no vba do formulário (Private) ou em um modulo geral (Public) a uma tabela.

    Código:
    Dim bd As Database
    Dim rs As Recordset
    Dim strSql As String

    strSql = "SELECT campo1, campo2, campo3 FROM tblminha ORDER BY campo;"

    Set bd = OpenDatabase("local do back End", False, False, ";PWD=senha")

    Set rs = bd.OpenRecordset(strSql, dbOpenSnapshot)
    Do Until rs.EOF
      Forms!frmMeuFormulario!camponoformulario.AddItem rs!campo1 & ";" & rs!campo2 & ";" & rs!campo3
       rs.MoveNext
    Loop

    rs.Close
    Set rs = Nothing
    bd.Close
    Set bd = Nothing
    End Function

    Como ficaria o código acima, caso eu necessite de vincular vários formulários a uma única Tabela, através de um módulo geral.

      Data/hora atual: 13/6/2021, 01:25