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] Vincular uma única tabela

    Compartilhe

    brunogor
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 138
    Registrado : 24/02/2013

    [Resolvido] Vincular uma única tabela

    Mensagem  brunogor em Sab 12 Mar 2016, 21:40

    Viva a todos,

    Quero vincular somente uma tabela das que se encontram no BE.

    Teno o seguinte código a funcionar, problema é que vincula todas as tabelas:
    Código:
    Dim BarraEscala As Single
    Dim j%, k%, Evento%, A%
    Dim Conn As String
    Dim tbl As dao.TableDef
    Dim tb As dao.TableDef
    Dim BE As dao.Database
    Dim T() As String
    Dim pula As Boolean
    Dim Sf As Variant

    '--------------------------------------------------------------------------------------------------------------------
    '           Deleta todas as tabelas vinculadas
                For Each tbl In CurrentDb.TableDefs
                    If Len(tbl.Connect & "") > 0 Then
                        DoCmd.DeleteObject acTable, tbl.Name
                    End If
                Next
      
    '           Conta o número de tabelas existentes no back-end
                k = 0
                For Each tbl In BE.TableDefs
                    If left(tbl.Name, 4) <> "MSys" And left(tbl.Name, 4) <> "Usys" Then
                        k = k + 1
                    End If
                Next

    '--------------------------------------------------------------------------------------------------------------------
                For Each tbl In BE.TableDefs
                    If left(tbl.Name, 4) <> "MSys" And left(tbl.Name, 4) <> "Usys" Then
                        For A = 1 To UBound(T)

    '                       verifica se a tabela já foi vinculada
                            If T(A) = tbl.Name Then pula = True
                        Next
                        If pula = False Then

    '                       vincula a tabela
                            Set tb = CurrentDb.CreateTableDef(tbl.Name)

                            tb.Connect = Conn
                            tb.SourceTableName = tbl.Name

                            CurrentDb.TableDefs.Append tb
                            j = j + 1
                            Me!cx2.Width = BarraEscala * j
                            Me!Rot.caption = "a vincular objectos: " & j & " de " & k
                            T(j) = tbl.Name
                            Set tb = Nothing
                            Exit For
                        Else
                            pula = False
                        End If
                    End If
                Next
    '--------------------------------------------------------------------------------------------------------------------

    Podem-me dizer como alterá-lo para só vincular uma tabelas de de nome "Tbl_Alunos"

    Obrigado

    Bruno Gordino


    Última edição por brunogor em Dom 13 Mar 2016, 01:43, editado 2 vez(es)

    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

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

    Re: [Resolvido] Vincular uma única tabela

    Mensagem  Assis em Sab 12 Mar 2016, 22:20

    Boa noite

    A tabela é nova "Tbl_Alunos" ?

    E não está no Front ?

    Aguardo


    .................................................................................
    *** Só sei que nada sei ***

    brunogor
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 138
    Registrado : 24/02/2013

    Vincular uma única tabela

    Mensagem  brunogor em Sab 12 Mar 2016, 23:12

    Viva Sr. Assis como tem passado?

    Já há algum tempo que não nos cruzávamos aqui no forum.

    Eu vou tentar me explicar melhor.

    Existe um BE que dezenas de tabelas, no entanto para esta Base de Dados só quero vincular automaticamente a tabela "Tbl_Alunos".

    A tabela é nova, mas pode existir necessidade de a voltar a vincular depois de a vincular a 1ª vez.

    Cumprimentos

    Bruno Gordino

    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

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

    Re: [Resolvido] Vincular uma única tabela

    Mensagem  Assis em Dom 13 Mar 2016, 01:17

    Bruno
    Vou trata-lo assim e eu sou Assis, sem Sr. Ok

    E a tabela nova, não tem relações com outras tabelas ?

    E o BE tem Senha ?

    Tenho um código para Vincular todas (ou só uma) as tabelas que estão no BE e não estão no Front.

    Segunda feira continuamos.

    Bom fim de semana


    .................................................................................
    *** Só sei que nada sei ***

    brunogor
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 138
    Registrado : 24/02/2013

    Vincular uma única tabela

    Mensagem  brunogor em Dom 13 Mar 2016, 01:42

    Combinado Assis,

    A tabela não tem qualquer relação e o BE tem senha.

    O resto do código que disponibilizei, introduz a senha do BE e apaga todas as tabelas antes de as vincular.

    O código que disponibilizei funciona perfeitamente no entanto é referente à vinculação de todas as tabelas do BE.

    O que eu preciso é de um outro que só vincule uma tabela.

    Cumprimentos

    Bruno Gordino

    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

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

    Re: [Resolvido] Vincular uma única tabela

    Mensagem  Assis em Dom 13 Mar 2016, 16:02

    Bruno

    Com esta função todas as tabelas que estiverem no BE e não estão no FE são vinculadas.

    Para chamar a função num click de um comando:

    Call fncVincular

    __________________________________________

    Num Modulo:

    'Créditos Avelino Sampaio
    Public Sub fncVincular()
    Dim be As DAO.Database
    Dim tbl As DAO.TableDef
    Dim LocalBe$

    LocalBe = Nz(DLookup("path_0", "tblCaminhoBe"), "vazio")

    Set be = DBEngine.OpenDatabase(LocalBe, False, False, ";PWD=a1234")

    For Each tbl In be.TableDefs
    If Left(tbl.Name, 4) <> "MSys" And Left(tbl.Name, 4) <> "Usys" Then
    If Not fncTabelaExiste(tbl.Name) Then
    DoCmd.TransferDatabase acLink, "Microsoft Access", LocalBe, acTable, tbl.Name, tbl.Name
    End If
    End If
    Next
    be.Close
    MsgBox "Tabelas Nova(s) Vinculada(s) Com Sucesso..", vbInformation, "Terminado"
    Set be = Nothing
    Set tbl = Nothing

    ________________________________________


    .................................................................................
    *** Só sei que nada sei ***

    brunogor
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 138
    Registrado : 24/02/2013

    Vincular uma única tabela

    Mensagem  brunogor em Seg 14 Mar 2016, 00:12

    Assis, antes de mais o meu obrigado pela sua disponibilidade outra vez.

    Amanhã vou experimentar o código e depois digo-lhe se resultou.

    Já agora julgo que me vai faltar a função fncTabelaExiste, mencionada no seu código no "If Not fncTabelaExiste(tbl.Name) Then"

    Cumprimentos

    Bruno Gordino

    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

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

    Re: [Resolvido] Vincular uma única tabela

    Mensagem  Assis em Seg 14 Mar 2016, 10:57

    Bruno

    Era domingo

    Public Function fncTabelaExiste(strNomeTabela As String) As Boolean
    Dim rs As DAO.Recordset
    '---------------------------------------------------------------
    'Solicita ao VBA que prossiga com a execução do código,
    'mesmo havendo erro e não mostre nenhuma mensagem.
    '---------------------------------------------------------------
    On Error Resume Next
    '-----------------------------------
    'Abre a tabela pesquisada
    '-----------------------------------
    Set rs = CurrentDb.OpenRecordset(strNomeTabela)
    '---------------------------------------------------------------
    'Se a tabela não existir, haverá erro e o valor(3078) será
    'armazenado no objeto Err. Este valor poderá ser investigado
    'através do comando Err.number
    '---------------------------------------------------------------
    fncTabelaExiste = Not Err.Number = 3078
    Set rs = Nothing
    End Function


    .................................................................................
    *** Só sei que nada sei ***

    brunogor
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 138
    Registrado : 24/02/2013

    Vincular uma única tabela

    Mensagem  brunogor em Seg 14 Mar 2016, 23:03

    Meu caro Assis qual Domingo?

    Não se desculpe com o dia pois, a sua boa vontade, tem sido Inesgotável.

    Hoje não estive no escritório e agora só amanhã à tarde é que posso testar o código.

    Depois dou Feedback.

    Muito obrigado.

    Cumprimentos

    Bruno Gordino

    brunogor
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 138
    Registrado : 24/02/2013

    Vincular uma única tabela Responder

    Mensagem  brunogor em Ter 15 Mar 2016, 22:12

    Boa noite Assis,

    Já está a funcionar e aparentemente sem problemas.

    Muito obrigado mesmo, sem a sua ajuda não teria conseguido

    Cumprimentos

    Bruno Gordino

    Assis
    Maximo VIP
    Maximo VIP

    Respeito às Regras 100%

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

    Re: [Resolvido] Vincular uma única tabela

    Mensagem  Assis em Ter 15 Mar 2016, 22:21

    Bruno
    Obrigado pelo retorno, o forum agradece.


    .................................................................................
    *** Só sei que nada sei ***

      Data/hora atual: Qui 08 Dez 2016, 14:07