MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Relação entre tabelas e consulta no formulário

    Compartilhe

    alanfalcoski
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 16
    Registrado : 16/12/2016

    [Resolvido]Relação entre tabelas e consulta no formulário

    Mensagem  alanfalcoski em Sex 16 Dez 2016, 23:50

    Pessoal estou com o seguinte problema.

    Tenho 2 tabelas propriedade intelectual e pesquisadores. Uma propriedade pode ter vários pesquisadores, um pesquisador pode ter muitas propriedades.

    então eu criei uma tabela  > inventores < contendo as pks das outras tabelas: codigo-propriedade e CPF.

    a dúvida é: como eu faço para que no formulário quando eu consulte uma propriedade pela PK que é codigo-propriedade, apareçam todos os inventores (nome e cpf)? eu tentei colocar vários "campos CPF's" mas aparece o mesmo cpf em todos os campos.

    Sou iniciante em VBA :/

    santa
    avatar
    Jair Martins
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 78
    Registrado : 23/03/2016

    Re: [Resolvido]Relação entre tabelas e consulta no formulário

    Mensagem  Jair Martins em Sab 17 Dez 2016, 10:55

    Bom dia, alanfalcoski.

    Primeiro, certifique-se de que a estrutura lógica das tabelas e relacionamentos estejam corretos.
    Na tabela inventores, certifique-se de que o relacionamento com as outras duas tabelas estejam OK. O relacionamento deve ser com integridade referencial. Caso a regra do seu aplicativo seja a de que um mesmo pesquisador não possa estar vinculado à mesma propriedade mais de uma vez, o que geralmente é o mais correto, faça uma chave primária dupla nos campos código e CPF.

    Em seguida crie uma consulta envolvendo as 3 tabelas, não esquecendo que os campos Código e CPF sejam os da tabela inventores e adicione os demais dados das outras tabelas conforme achar necessário.

    E então crie um form no modo formulário contínuo, tendo esta consulta como origem. No cabeçalho deste form, insira uma caixa de combinação que tenha como orgiem da linha a tabela Propriedades e cuja coluna acoplada seja a que contém o código da propriedade. Aqui aconselho que use o assistente do Access. Depois,insira o seguinte código no evento Após Atualizar da combo:

    Me.Requery

    Abra novamente a consulta no modo Design e, na linha Critérios da coluna CodigoPropriedade, digite:

    Forms![NomeDoForm]![NomeDaCombo]

    Salve a consulta, salve o form e faça o teste.
    Se eu não esqueci nada, deve funcionar a contento, ou seja, o form vai abrir sem exibir nada e, ao escolher um item na combo, o form deve relacionar todos os inventores vinculados à propriedade selecionada.

    Espero ter ajudado. Qualquer dúvida, estamos por aqui.

    Abs.

    alanfalcoski
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 16
    Registrado : 16/12/2016

    Re: [Resolvido]Relação entre tabelas e consulta no formulário

    Mensagem  alanfalcoski em Sab 17 Dez 2016, 16:28

    erro


    Última edição por alanfalcoski em Sab 17 Dez 2016, 17:13, editado 1 vez(es)

    alanfalcoski
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 16
    Registrado : 16/12/2016

    Erro merequery

    Mensagem  alanfalcoski em Sab 17 Dez 2016, 17:12

    Bom, seguindo passos aconteceu isso:

    [Você precisa estar registrado e conectado para ver esta imagem.]

    Os campos CPF e COD PI são da tabela inventores como vc disse.

    QUando clico em depurar ele mostra em amarelo o me.requery

    Embarassed
    avatar
    Jair Martins
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 78
    Registrado : 23/03/2016

    Re: [Resolvido]Relação entre tabelas e consulta no formulário

    Mensagem  Jair Martins em Sab 17 Dez 2016, 19:49

    O form não está no modo formulário continuo. O form que eu sugeri vai apresentar uma relação de pesquisadores e, a partir daí, você poderá abrir este form de cadastro exibido na foto.
    De qualquer forma, funcionaria mesmo com esse form. Ficaria muito esquisito, mas funcionaria.
    A mensagem de erro é clara: a pesquisa não está encontrando o campo "CPF". Verifique a nomenclatura que você definiu para os campos e nas consultas. E na depuração está apontando a instrução Me.Requery justamente porque essa instrução quer dizer "pesquisar de novo".
    Por que você não envia um bd de exemplo, com os forms, tabelas e consulta envolvidos na sua questão? Fica mais fácil. Daí vamos direto ao ponto.

    Abs.

    alanfalcoski
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 16
    Registrado : 16/12/2016

    Re: [Resolvido]Relação entre tabelas e consulta no formulário

    Mensagem  alanfalcoski em Sab 17 Dez 2016, 21:48

    A senha é 123456. só preciso de uma interface para cadastrar os dados em todas as tabelas.
    a ideia é que a mesma pi tenha vários inventores..
    mas eu gostaria de aprender mesmo, eu trabalho com mysql mas sou inexperiente no access.. :/
    Anexos
    bd.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (156 Kb) Baixado 18 vez(es)

    alanfalcoski
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 16
    Registrado : 16/12/2016

    Registrar

    Mensagem  alanfalcoski em Seg 19 Dez 2016, 22:56

    Boa noite Jair, eu agradeço muito a sua ajuda. Fiz tudo o que disse e deu certo!

    [Você precisa estar registrado e conectado para ver esta imagem.]

    Seleciona a PI e aparece todos os inventores.

    A minha duvida é referente ao registro, como faço um form para adicionar os dados da pi seus inventores? ja tentei algumas formas mas os formulários só aceitam receber dados de uma tabela, e eu preciso que os dados digitados fiquem armazenadas nessas3 tabelas simultaneamente e repetir os campos de inventores (inventor 1 inventor 2 inventor 3).

    por exemplo

    Dados da PI
    COd PI
    Nome PI
    CUsto PI

    Inventor 1
    nome
    email

    Inventor 2
    nome
    email

    Inventor 3
    nome
    email



    Se tu me der uma luz eu me viro aqui, demorei 2 dias pra fazer o que vc me falou mas não desisti rsrs. obrigado de novo

    avatar
    Jair Martins
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 78
    Registrado : 23/03/2016

    Re: [Resolvido]Relação entre tabelas e consulta no formulário

    Mensagem  Jair Martins em Qua 21 Dez 2016, 10:37

    Bom dia, alanfalcoski.

    Nesse caso, eu recomendo que você faça um form principal, originado na tabela PI.
    Você pode utilizar esse form de inventores como subform do principal, mas sem a combo de procura, porque ele vai ficar vinculado ao principal e essa combo só iria atrapalhar. Veja como:

    Após criar o form principal, abra o modo design e adicione um objeto subformulário. Pode utilizar o assistente do Access para isso. Após essa adição, selecione o subform, abra as propriedades, aba Dados, e verifique se na propriedade Vincular Campos Mestres está anotado a PK da tabela PI e no campo Vincular Campo Filho consta a PK da tabela inventores.

    Estando tudo certinho, você terá um cadastro das PI, juntamente com os inventores vinculados a cada uma delas, exibidos conforme você vai de um registro para outro.

    Veja na foto que enviei um exemplo de como deve ficar. No exemplo, é um cadastro de clientes, com a lista de contados de cada um deles. Conforme navego pelos registros dos clientes, a lista de contatos vai sendo automaticamente atualizada e eu posso incluir, alterar ou excluir contatos.

    Qualquer dúvida, entre em contato, por favor.
    avatar
    Jair Martins
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 78
    Registrado : 23/03/2016

    Re: [Resolvido]Relação entre tabelas e consulta no formulário

    Mensagem  Jair Martins em Qua 21 Dez 2016, 10:40

    Agora, a foto vai. Acho... hehehehe...
    Anexos
    CadastroClientes.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (44 Kb) Baixado 25 vez(es)

    alanfalcoski
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 16
    Registrado : 16/12/2016

    Re: [Resolvido]Relação entre tabelas e consulta no formulário

    Mensagem  alanfalcoski em Qua 21 Dez 2016, 16:31

    Jair, obrigado pela resposta novamente e pela paciência!

    Fiz o que você disse.. entretanto o subform só puxa os dados da tabela inventores (cod-pi e CPF). Como eu faço para adicionar os demais dados do pesquisador (Nome, email, tel etc..)?


    Ou então uma maneira de cadastrar previamente um inventor e no cadastro da pi selecioná-lo pelo nome.. seria outra solução

    [Você precisa estar registrado e conectado para ver esta imagem.]
    avatar
    Jair Martins
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 78
    Registrado : 23/03/2016

    Re: [Resolvido]Relação entre tabelas e consulta no formulário

    Mensagem  Jair Martins em Qua 21 Dez 2016, 18:49

    Partindo da premissa de que inventor é o mesmo que pesquisador, é só incluir os campos que você quer na consulta de origem e no subform. Evidentemente, isso só será uma boa estratégia se não houver uma infinidade de dados cadastrais dos inventores. Você enviou um form que tinha mais informações e não só o CPF. Eu me referi a ele, quando falei de inserir um subform.
    Se houver uma quantidade muito grande de campos, que deixe o subform meio esquisitão, então a saída é mesmo fazer um form específico para o cadastro dos inventores.  Fora isso, não precisa, como acho que não precisa mesmo.


    Abs.


    Última edição por Jair Martins em Qua 21 Dez 2016, 18:57, editado 1 vez(es)

    alanfalcoski
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 16
    Registrado : 16/12/2016

    Resolvido

    Mensagem  alanfalcoski em Qua 21 Dez 2016, 18:55

    que tonto eu uahuahuahauah obrigado Jair. É meu primeiro bd no access e vc ajudou mto! deu certo aqui!
    avatar
    Jair Martins
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 78
    Registrado : 23/03/2016

    Re: [Resolvido]Relação entre tabelas e consulta no formulário

    Mensagem  Jair Martins em Qua 21 Dez 2016, 18:59

    Hahahaha... valeu.

    É sempre um prazer ajudar.

    Abs.

    alanfalcoski
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 16
    Registrado : 16/12/2016

    Re: [Resolvido]Relação entre tabelas e consulta no formulário

    Mensagem  alanfalcoski em Qua 21 Dez 2016, 21:26

    eu devo ser muito chato mas eu nao consigo editar os valores do subform.. tento editá-los mas é bloqueado :/

    [Você precisa estar registrado e conectado para ver esta imagem.]

    eu queria editar a linha em vermelho
    e adicionar novo registro na linha azul

    isso é possivel em subform? pois ele vem de uma consulta..

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3632
    Registrado : 29/06/2012

    Re: [Resolvido]Relação entre tabelas e consulta no formulário

    Mensagem  Noobezinho em Qua 21 Dez 2016, 22:48

    Só dando um pequeno pitaco

    Não esqueça que o MS Access é um banco de dados relacional.

    Isso que dizer que as tabelas precisam ter relacionamento entre si.

    Para que consiga ter dados no formulário Principal e digitar dados relacionados a

    esse registro, na tabela do subormulário deverá constar o código do registro do formulário principal

    o qual faz a ligação(relacionamento) entre as duas tabelas.

    A isso chamamos de relacionamento de  1 (1 registro na primeira tabela) para muitos ( vários registros na segunda

    tabela) pertencentes ao registro da primeira tabela.

    Acredito que o relacionamento ficaria assim:

    [Você precisa estar registrado e conectado para ver esta imagem.]

    Verifique!



    [ ]'s

    alanfalcoski
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 16
    Registrado : 16/12/2016

    Re: [Resolvido]Relação entre tabelas e consulta no formulário

    Mensagem  alanfalcoski em Qua 21 Dez 2016, 23:01

    Boa noite noobezinho. Os relacionamento estao em.uma imagem acima. A tabela pi se relaciona com a inventores pelo atributo codigo-pi. E a pesquisador também com a inventores através do cpf. Como tinha essa relacao muito para muitos adicionei a tabela inventores entre as duas com suas respectivas chaves primarias.

    Fiz o teste colocando dados nas tabelas e esta funcionando. Agora preciso de um form para cadastrar a pi. E todos seus inventores.

    alanfalcoski
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 16
    Registrado : 16/12/2016

    Re: [Resolvido]Relação entre tabelas e consulta no formulário

    Mensagem  alanfalcoski em Qua 21 Dez 2016, 23:02

    O texto seria assim: um pesquisador pode ter muitas propriedades. Uma propriedade pode ter muitos inventores. Por isso eu criei a table inventores.

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3632
    Registrado : 29/06/2012

    Re: [Resolvido]Relação entre tabelas e consulta no formulário

    Mensagem  Noobezinho em Qua 21 Dez 2016, 23:12


    Já tem o formulário principal com o subform.

    Com o form principal em modo design, clique no retângulo subformulário (não no subformulário).

    Esse retângulo ficará realçado com uma cor laranja.

    Na folha de propriedades, veja se as propriedades Vincular campos mestres e Vincular campos filho

    estão com o mesmo código (id) do registro.



    alanfalcoski
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 16
    Registrado : 16/12/2016

    Re: [Resolvido]Relação entre tabelas e consulta no formulário

    Mensagem  alanfalcoski em Qui 22 Dez 2016, 00:40

    estao sim! ja tinha verificado antes.

    [Você precisa estar registrado e conectado para ver esta imagem.]

    esta funcionado.. tanto que se eu selecionar uma propriedade ja cadastrada mostra todos os inventores no subform, mas nao consigo naquelas linhas azul e vermelha editar ou adicionar um novo.. era esse o meu proposito

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3632
    Registrado : 29/06/2012

    Re: [Resolvido]Relação entre tabelas e consulta no formulário

    Mensagem  Noobezinho em Qui 22 Dez 2016, 07:18

    Alan


    Como já modificou te aplicativo, anexe novamente com as modificações

    para a gente analisar.

    Aguardo ...

    alanfalcoski
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 16
    Registrado : 16/12/2016

    Re: [Resolvido]Relação entre tabelas e consulta no formulário

    Mensagem  alanfalcoski em Qui 22 Dez 2016, 16:29

    Oi está em anexo. alan.rodrigues senha 123456.. depois "controle pi" esse form.
    Anexos
    bd.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (284 Kb) Baixado 3 vez(es)

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3632
    Registrado : 29/06/2012

    Re: [Resolvido]Relação entre tabelas e consulta no formulário

    Mensagem  Noobezinho em Qui 22 Dez 2016, 19:01

    Alan

    Acredito que essa tabela Inventores está sobrando.

    Se o pesquisador é o inventor  então devemos relacionar o cpf

    do pesquisador com a prop. intelectual ( 1 para muitos) como fez com com o código

    Outra coisa

    quando se faz a relação de um para muitos, vou usar o exemplo das tabelas pesquisador e inventores

    como ilustração.

    O lado um (cpf)  é chave primaria. já o cpf do lado muitos ( tabela inventores) não e preciso chave primaria

    já que só haverá registros atrelados ou relacionado aos cpf's da primeira tabela.

    Analisando teu formulário:

    O formulário principal deve ter os campos da tabela (prop.intelectual) do lado 1, o que está correto.

    Entenda que campo que faz a ligação/relacionamento entre as tabelas é o campo comum as duas tabelas

    que no caso é cod-Propriedade, veja que no subformulário, não consta esse campo.

    Para poder inserir dados na tabela custos-propriedade, devemos fazer outro subformulário para eles

    Ou seja, teremos 4 formularios, Principal (tabela Prop.Intel) com os subforms Custo-Propriedade  e subformInventores,

    dentro desse ultimo o subformPesquisador.

    Isso se mantiver a tabela inventor.

    Dica, Utilize o underline ( _  ) no lugar do traço ( - ) em nomes de objetos do Access.

    Facilita a leitura de um código, se utilizar nomenclaturas do tipo no nome dos controles:

    tbl_PropIntel, tbl_Custo_Prop, frm_Cadastrar_Pi, etc...

    [ ]'s

    alanfalcoski
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 16
    Registrado : 16/12/2016

    Re: [Resolvido]Relação entre tabelas e consulta no formulário

    Mensagem  alanfalcoski em Qui 22 Dez 2016, 19:25

    noob vc supõe que a relação deveria ser essa?

    [Você precisa estar registrado e conectado para ver esta imagem.]

    e como eu cadastraria por exemplo 10 inventores  em uma propriedade. é possível isso?

    pois uma propriedade tem muitas inventores e um inventor de muitas propriedades
    por essa razão eu criei a tabela inventores entre pesquisadores e propriedade

    eu precisaria que no form eu pudesse cadastrar varios CPF's em uma PI

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3632
    Registrado : 29/06/2012

    Re: [Resolvido]Relação entre tabelas e consulta no formulário

    Mensagem  Noobezinho em Qui 22 Dez 2016, 20:44

    O relacionamento seria assim:


    [Você precisa estar registrado e conectado para ver esta imagem.]

    - Se o custo-propriedade tiver somente um para cada  então a relação é de um para um. Caso contrario, 1 para muitos

    -Veja que para se for trabalhar com inventor para muitas propriedades deverá ter um conjunto de 3 formulários

    Sendo o formPrincipal: Inventor - subformulario: prop-Intelect e subsubform:  custo-Prop

    Para trabalhar com prop. intelectual:

               formPrincipal: Prop.Intelect - subformulario: inventor e subform:  custo-Prop  - sendo que esses dois sub forms
         
               estarão lado a lado no form principal

    Espero que tenha entendido.

    alanfalcoski
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 16
    Registrado : 16/12/2016

    perfeito

    Mensagem  alanfalcoski em Qui 22 Dez 2016, 23:16

    Noob!!!!!!!!!!! obrigado pela ajuda! a relação era desnecessária mesmo!

    Fiz a relação desta forma:

    [Você precisa estar registrado e conectado para ver esta imagem.]

    e o form como voce disse:

    [Você precisa estar registrado e conectado para ver esta imagem.]

    Deu tudo certo! era isso que eu queria! agora tem um ponto.. como fazer para quando eu digitar no sub form o inventor (cpf, nome email) n precise digitar na tabela PI o CPF. pois ele n está sendo replicado! o resto deu certissimo! obrigado!

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3632
    Registrado : 29/06/2012

    Re: [Resolvido]Relação entre tabelas e consulta no formulário

    Mensagem  Noobezinho em Qui 22 Dez 2016, 23:49


    Veja:


     1) -Sendo o formPrincipal: Inventor - subformulario: prop-Intelect e subsubform:  custo-Prop

    Para trabalhar com prop. intelectual:

      2)        formPrincipal: Prop.Intelect - subformulario: inventor e subform:  custo-Prop  - sendo que esses dois sub forms
         
              estarão lado a lado no form principal



    Você fez o segundo conjunto, sendo  o formulario principal  da tabela PI

    Agora precisa fazer o Primeiro conjunto de formulários, para quando iniciar com o Inventor

    Lembrando que são 3 formulários aninhados, ou seja, um dentro do outro.

    [ ]'s

    alanfalcoski
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 16
    Registrado : 16/12/2016

    Re: [Resolvido]Relação entre tabelas e consulta no formulário

    Mensagem  alanfalcoski em Sex 23 Dez 2016, 02:47

    Coloquei uma dupla chave na tabela inventor cod-pi + CPF.

    Criei um form inventor com um subform contínuo propriedade. assim quando seleciono o inventor aparece todas suas propriedades
    . Form propriedade com subform contínuo inventores. quando seleciono a propriedade aparece todos os inventores. mesma coisa para os custos. demorou mas deu certo! obrigado pelas respostas Jair e noob!

    Noobezinho
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3632
    Registrado : 29/06/2012

    Re: [Resolvido]Relação entre tabelas e consulta no formulário

    Mensagem  Noobezinho em Sex 23 Dez 2016, 07:29

    Então deu certo !

    Ótimo!

    Valeu pelo retorno.

    Boa sorte e

    Boas Festas! santa


      Data/hora atual: Ter 22 Maio 2018, 22:17