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]Como criar relacionamento tabelas por código?

    Compartilhe

    Mylton
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 479
    Registrado : 23/08/2010

    [Resolvido]Como criar relacionamento tabelas por código?

    Mensagem  Mylton em Sex 16 Set 2016, 21:37

    Boa noite.
    Li esse post...
    [Você precisa estar registrado e conectado para ver este link.]
    Mas apesar de estar como avançado e ser da área de saúde, meus conhecimentos são poucos nessa questão.
    Naquilo que to tentando criar, são necessárias muitas tabelas, conforme figura abaixo.

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

    Todavia, o access possui limite de relacionamento, que são 32 tabelas por Relacionamento, infelizmente, preciso "encaixar" mais algumas.
    E, talvez, por código, possa ter mais que isso.
    Por isso,
    Alguém teria um Beabá, tutorial de como se criar relacionamento entre tabelas via código?
    Obrigado.

    Gabriel Brunichaki
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 139
    Registrado : 11/12/2015

    Re: [Resolvido]Como criar relacionamento tabelas por código?

    Mensagem  Gabriel Brunichaki em Sex 16 Set 2016, 21:56

    Digamos que tu tenha uma tabela Livro (CodLivro, NomeLivro, EscritorLivro) e outra Escritor (CodAutor, NomeAutor) e quer relacionar o CodAutor da tabela Autor com o EscritorLivro da tabela Livro.

    Código:
    Sub fncCreateRelation()

        Dim db As DAO.DATABASE
        Dim rel As DAO.Relation
        Dim fld As Field
        
        Set db = CurrentDb

        Set rel = db.CreateRelation("Livro-Autor", "Escritor", "Livro", dbRelationUpdateCascade)
        Set fld = rel.CreateField("CodAutor")
        fld.ForeignName = "EscritorLivro"
        rel.Fields.Append fld
        db.Relations.Append rel
        
        db.Close
        Set db = Nothing
        
        Set rel = Nothing
        
        MsgBox "Relação criada!"
    End Sub

    Essa é a função que eu uso quando preciso, mas não sei se o fato de criar a relação pelo VBA vai possibilitar mais do que 32 relações... Testa aí e volta pra contar. Razz


    .................................................................................
    “Não podemos solucionar problemas usando a mesma forma de raciocínio que usamos quando os criamos.”
    – Albert Einstein

    Mylton
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 479
    Registrado : 23/08/2010

    Re: [Resolvido]Como criar relacionamento tabelas por código?

    Mensagem  Mylton em Sex 16 Set 2016, 22:19

    Gabriel
    Fiz um arquivo com sua dica.
    Mas onde coloco essa função?
    Anexos
    escritor.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (28 Kb) Baixado 2 vez(es)

    Gabriel Brunichaki
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 139
    Registrado : 11/12/2015

    Re: [Resolvido]Como criar relacionamento tabelas por código?

    Mensagem  Gabriel Brunichaki em Seg 19 Set 2016, 14:41

    Bom dia Mylton,

    A função que eu te passei vai ir em um módulo.

    Editei o seu arquivo e já adicionei o módulo Relacoes. Vai encontrar a função nele... Além disso, populei as tabelas com alguns dados fictícios. Lembre-se que o campo EscritorLivro, por ser uma chave estrangeira, deve ser no formato Número, e não Texto, como estava no seu arquivo.

    A função fncCreateRelation deve ser executada uma única vez para a relação Livro-Autor ser criada.

    Depois de executar a função, vá em FERRAMENTAS DE BANCOS DE DADOS > Relações > Todas as Relações e vai perceber que a relação foi criada...

    Não sei se isso te atende... Se precisar de alguma outra coisa, só falar.
    Anexos
    escritor.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (42 Kb) Baixado 5 vez(es)


    .................................................................................
    “Não podemos solucionar problemas usando a mesma forma de raciocínio que usamos quando os criamos.”
    – Albert Einstein

    Mylton
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 479
    Registrado : 23/08/2010

    Re: [Resolvido]Como criar relacionamento tabelas por código?

    Mensagem  Mylton em Seg 19 Set 2016, 22:04

    Ok
    Obrigado.
    Vou estudar.
    abs

      Data/hora atual: Sab 03 Dez 2016, 02:21