Como montar um relacionamento entre duas tabelas, sendo uma com chave primaria composta?
[Resolvido]Relacionamento de tabelas
França- Avançado
- Respeito às regras :
Sexo :
Localização :
Mensagens : 337
Registrado : 22/08/2011
- Mensagem nº1
Relacionamento de tabelas
Convidad- Convidado
- Mensagem nº2
Re: [Resolvido]Relacionamento de tabelas
Exclusivamente no intuito de ajudá-lo, me permita perguntar se está familiarizado com a criação de tabelas e a atribuição de chaves primárias?
Se tiver alguma dúvida neste sentido faremos o possível para auxiliá-lo.
Abraço, Tche!
Se tiver alguma dúvida neste sentido faremos o possível para auxiliá-lo.
Abraço, Tche!
Última edição por norbs em 29/11/2011, 19:38, editado 1 vez(es)
França- Avançado
- Respeito às regras :
Sexo :
Localização :
Mensagens : 337
Registrado : 22/08/2011
- Mensagem nº3
Re: [Resolvido]Relacionamento de tabelas
Boa noite Norberto
Não estou muito familiarizado, mas tentando me familiarizar, mas pelo que li, deverei criar uma tabela com duas chaves primárias, de maneira que os outros dados
da tabela se relacionem com as duas chaves primárias.
Mas não sei como relacionar esta tabela com outra.
Esta é minha dúvida.
Gracias
Não estou muito familiarizado, mas tentando me familiarizar, mas pelo que li, deverei criar uma tabela com duas chaves primárias, de maneira que os outros dados
da tabela se relacionem com as duas chaves primárias.
Mas não sei como relacionar esta tabela com outra.
Esta é minha dúvida.
Gracias
Convidad- Convidado
- Mensagem nº4
Re: [Resolvido]Relacionamento de tabelas
Primeiro as tabelas deverão ser criadas, com os campos que precisa.
A maioria das tabelas que usamos num banco de dados precisa ter um campo que é determinado como sua chave primária.
Um campo chave-primária recebe um valor que será único/exclusivo ao longo dos registros que serão inseridos nesta tabela.
Normalmente este campo será do tipo AutoNumeração (onde o próprio Access gera o valor) ou Número.
Numa tabela Produtos, p.ex., criamos um campo "CodProduto", e para determinar que este campo será a chave-primária, selecione o campo e clique em Editar > Chave primária na Barra de Menus, ou no ícone com uma chave na Barra de Ferramentas.
Uma outra tabela ItensProdutos (que seria usada para registrar os produtos de uma venda) também terá seu campo chave primária, que seria o campo "CodItemProduto" e outro campo "CodProduto" para identificar o produto vendido.
Então criamos o relacionamento entre estas duas tabelas:
Abrimos a janela Relacionamentos (Ferramentas > Relacionamentos) e vamos exibir as duas tabelas na janela, clicando em Relacionamentos > Mostrar tabela, selecionamos as duas na janelinha que abre e clicamos em Adicionar.
Para estabelecer o relacionamento clique no campo CodProduto da tabela Produtos, mantenha pressionado, e arraste até o campo CodProduto da tabela ItensProdutos. Na janela que é exibida marque as opções "Impor integridade referencial" e "Propagar atualização dos campos relacionados" e clique em Criar.
Pronto! Foi criado um relacionamento Um-para-muitos entre as tabelas, e que significa que um produto vai constar somente uma vez na tabela Produtos, mas pode constar muitas vezes na tabela ItensProdutos.
Um excelente artigo do mestre Dilson sobre o assunto:
http://www.svcsoftwarehouse.com/painel-detalhe-artigo.php?codigo=0000000161
E outro do mestre Osmar Jr analisando o uso de chaves compostas:
http://www.svcsoftwarehouse.com/painel-detalhe-artigo.php?codigo=0000000184
A maioria das tabelas que usamos num banco de dados precisa ter um campo que é determinado como sua chave primária.
Um campo chave-primária recebe um valor que será único/exclusivo ao longo dos registros que serão inseridos nesta tabela.
Normalmente este campo será do tipo AutoNumeração (onde o próprio Access gera o valor) ou Número.
Numa tabela Produtos, p.ex., criamos um campo "CodProduto", e para determinar que este campo será a chave-primária, selecione o campo e clique em Editar > Chave primária na Barra de Menus, ou no ícone com uma chave na Barra de Ferramentas.
Uma outra tabela ItensProdutos (que seria usada para registrar os produtos de uma venda) também terá seu campo chave primária, que seria o campo "CodItemProduto" e outro campo "CodProduto" para identificar o produto vendido.
Então criamos o relacionamento entre estas duas tabelas:
Abrimos a janela Relacionamentos (Ferramentas > Relacionamentos) e vamos exibir as duas tabelas na janela, clicando em Relacionamentos > Mostrar tabela, selecionamos as duas na janelinha que abre e clicamos em Adicionar.
Para estabelecer o relacionamento clique no campo CodProduto da tabela Produtos, mantenha pressionado, e arraste até o campo CodProduto da tabela ItensProdutos. Na janela que é exibida marque as opções "Impor integridade referencial" e "Propagar atualização dos campos relacionados" e clique em Criar.
Pronto! Foi criado um relacionamento Um-para-muitos entre as tabelas, e que significa que um produto vai constar somente uma vez na tabela Produtos, mas pode constar muitas vezes na tabela ItensProdutos.
Um excelente artigo do mestre Dilson sobre o assunto:
http://www.svcsoftwarehouse.com/painel-detalhe-artigo.php?codigo=0000000161
E outro do mestre Osmar Jr analisando o uso de chaves compostas:
http://www.svcsoftwarehouse.com/painel-detalhe-artigo.php?codigo=0000000184
França- Avançado
- Respeito às regras :
Sexo :
Localização :
Mensagens : 337
Registrado : 22/08/2011
- Mensagem nº5
Chave Primaria
Boa noite Norbs
Mais uma vez agradeço tua presteza em me auxiliar.
Sei que estarei sendo chato, mas preciso entender. Entender mesmo.
Voltando à carga.
Tenho uma tabela Produtos, onde entre outras consta a Cerveja.
Outra tabela Marcas, onde aparecem as marcas dos produtos.
Outra tabela Compras, onde constam: Produtos, Marca, Quantidade e Preço.
Como posteriormente em alguma consulta, poderei pesquisar a compra de Cerveja Patricia?
Aguardo retorno.
Abraços
França
Mais uma vez agradeço tua presteza em me auxiliar.
Sei que estarei sendo chato, mas preciso entender. Entender mesmo.
Voltando à carga.
Tenho uma tabela Produtos, onde entre outras consta a Cerveja.
Outra tabela Marcas, onde aparecem as marcas dos produtos.
Outra tabela Compras, onde constam: Produtos, Marca, Quantidade e Preço.
Como posteriormente em alguma consulta, poderei pesquisar a compra de Cerveja Patricia?
Aguardo retorno.
Abraços
França
Convidad- Convidado
- Mensagem nº6
Re: [Resolvido]Relacionamento de tabelas
Olá França!
Sua consulta deverá ter como base esta tabela Compras, e incluir na grade os campos Produto, Marca e Quantidade.
No Menu Exibir clique em Totais (ou na Barra de Ferramentas clique no ícone parecido com a letra E) -> isto irá acrescentar à grade a linha Total e inserirá a espressão Agrupar por em cada campo.
No campo Quantidade, substitua o Agrupar por por Soma (a caixa de combinação exibe as opções de agrupamento).
Assim sua consulta exibirá a Quantidade total por Produto e Marca.
Se deseja saber a Quantidade de apenas uma Marca específica, digite a Marca na linha Critério do campo Marca.
Sua consulta deverá ter como base esta tabela Compras, e incluir na grade os campos Produto, Marca e Quantidade.
No Menu Exibir clique em Totais (ou na Barra de Ferramentas clique no ícone parecido com a letra E) -> isto irá acrescentar à grade a linha Total e inserirá a espressão Agrupar por em cada campo.
No campo Quantidade, substitua o Agrupar por por Soma (a caixa de combinação exibe as opções de agrupamento).
Assim sua consulta exibirá a Quantidade total por Produto e Marca.
Se deseja saber a Quantidade de apenas uma Marca específica, digite a Marca na linha Critério do campo Marca.
França- Avançado
- Respeito às regras :
Sexo :
Localização :
Mensagens : 337
Registrado : 22/08/2011
- Mensagem nº7
Re: [Resolvido]Relacionamento de tabelas
Obrigado Norbs
Li atentamente o artigo do Osmar Jr que me aconselhaste e estás coberto de razão.Abandoei a questão.
Com relação à esta nova dica, já conheço bem. Posso até dizer que domino (mal, mas domino).
Vou tentar seguir.
Mais adiante te procuro.
Abrços
França
Li atentamente o artigo do Osmar Jr que me aconselhaste e estás coberto de razão.Abandoei a questão.
Com relação à esta nova dica, já conheço bem. Posso até dizer que domino (mal, mas domino).
Vou tentar seguir.
Mais adiante te procuro.
Abrços
França
Convidad- Convidado
- Mensagem nº9
Re: [Resolvido]Relacionamento de tabelas
Caro França:
Vejo que está na lista de membros conectados, mas não responde meus post's.
Ocorreu-me um detalhe: Observe que a listagem de respostas só é atualizada quando você atualiza a página no navegador (F5 ou botão apropriado). Sem esta ação você só verá que há uma nova resposta se abrir novamente o tópico, pois neste caso a atualização é feita automaticamente.
Se for isto, vale a dica!
Vejo que está na lista de membros conectados, mas não responde meus post's.
Ocorreu-me um detalhe: Observe que a listagem de respostas só é atualizada quando você atualiza a página no navegador (F5 ou botão apropriado). Sem esta ação você só verá que há uma nova resposta se abrir novamente o tópico, pois neste caso a atualização é feita automaticamente.
Se for isto, vale a dica!
França- Avançado
- Respeito às regras :
Sexo :
Localização :
Mensagens : 337
Registrado : 22/08/2011
- Mensagem nº10
Problemas
Não estou conseguindo anexar o Banco de Dados.
Passei pro WinRar e ficou com 4,93 Kb.
Não tenho Zip.
O que faço então?
Passei pro WinRar e ficou com 4,93 Kb.
Não tenho Zip.
O que faço então?
Convidad- Convidado
- Mensagem nº11
Re: [Resolvido]Relacionamento de tabelas
Pô, quase 5 Mb no Winrar...
Abra o banco de dados e comande compactar/reparar.
Depois compacte com o WinRar de novo.
Tanto faz zip ou rar.
Para anexar clique em Procurar.. (logo aí embaixo) e Enviar Consulta.
Não creio que teu bd fique com mais de 3Mb.
Mas se ficar, vai ter que disponibilizar um link para download.
O pessoal aqui costuma usar o Dropbox par isso.
Abra o banco de dados e comande compactar/reparar.
Depois compacte com o WinRar de novo.
Tanto faz zip ou rar.
Para anexar clique em Procurar.. (logo aí embaixo) e Enviar Consulta.
Não creio que teu bd fique com mais de 3Mb.
Mas se ficar, vai ter que disponibilizar um link para download.
O pessoal aqui costuma usar o Dropbox par isso.
França- Avançado
- Respeito às regras :
Sexo :
Localização :
Mensagens : 337
Registrado : 22/08/2011
- Mensagem nº12
Envio do Banco de Dados
Bom dia.
Finalmente posso voltar a contatá-los. Houve um problema com o computador e fiquei a semana inteira sem ele.
Estou tentando anexar o arquivo que solicitei que vissem para se a formação das tabelas e os relacionamentos estão corretos, mas parece não ser possível pelo tamanho, pois ficou com 47,6 KB.
Há um site Speedyshare.com que parece ser possível.
Aguardo retorno.
Grande abraço tchê.
Finalmente posso voltar a contatá-los. Houve um problema com o computador e fiquei a semana inteira sem ele.
Estou tentando anexar o arquivo que solicitei que vissem para se a formação das tabelas e os relacionamentos estão corretos, mas parece não ser possível pelo tamanho, pois ficou com 47,6 KB.
Há um site Speedyshare.com que parece ser possível.
Aguardo retorno.
Grande abraço tchê.
Convidad- Convidado
- Mensagem nº13
Re: [Resolvido]Relacionamento de tabelas
Olá
Recomendo o Dropbox.
A instalação cria uma pasta "Dropbox" no seu pc e uma subpasta "Public".
Qualquer arquivo colocado em Public fica disponível para download por qualquer um a quem você disponibilizar o link.
Para isso, cliq direito no arquivo na pasta Public e clic em Dropbox > Copy public link.
Então cole o atalho no post.
Recomendo o Dropbox.
A instalação cria uma pasta "Dropbox" no seu pc e uma subpasta "Public".
Qualquer arquivo colocado em Public fica disponível para download por qualquer um a quem você disponibilizar o link.
Para isso, cliq direito no arquivo na pasta Public e clic em Dropbox > Copy public link.
Então cole o atalho no post.
França- Avançado
- Respeito às regras :
Sexo :
Localização :
Mensagens : 337
Registrado : 22/08/2011
- Mensagem nº14
Re: [Resolvido]Relacionamento de tabelas
Abaixo de mau tempo consegui copiar o link. Aí vai:
http://dl.dropbox.com/u/52861189/Restaurante.rar
Aguardo retorno.
Abrços Tchê
http://dl.dropbox.com/u/52861189/Restaurante.rar
Aguardo retorno.
Abrços Tchê
Convidad- Convidado
- Mensagem nº15
Re: [Resolvido]Relacionamento de tabelas
Olá
Uso o Access2003.
Para que eu possa abrir seu arquivo, será necessário converter uma cópia dele para a minha versão.
Uso o Access2003.
Para que eu possa abrir seu arquivo, será necessário converter uma cópia dele para a minha versão.
França- Avançado
- Respeito às regras :
Sexo :
Localização :
Mensagens : 337
Registrado : 22/08/2011
- Mensagem nº16
Endereço Dropbox
Segue o link.
http://dl.dropbox.com/u/52861189/Restaurante.rar
Envio também o link do sistema de estoque que está no Excel. para exemplo.
http://dl.dropbox.com/u/52861189/Custo%20dos%20estoques%20Demo.rar
Aguardo retorno.
Abraços Tchê.
Gostaria que examinassem as planilhas e os relacionamentos.
A intenção é montar um controle de Estoques, onde as compras fornecerão as Entradas e as Saídas, da venda dos produtos.
http://dl.dropbox.com/u/52861189/Restaurante.rar
Envio também o link do sistema de estoque que está no Excel. para exemplo.
http://dl.dropbox.com/u/52861189/Custo%20dos%20estoques%20Demo.rar
Aguardo retorno.
Abraços Tchê.
Gostaria que examinassem as planilhas e os relacionamentos.
A intenção é montar um controle de Estoques, onde as compras fornecerão as Entradas e as Saídas, da venda dos produtos.
Convidad- Convidado
- Mensagem nº17
Re: [Resolvido]Relacionamento de tabelas
Olá
Os relacionamentos estabelecidos estão corretos.
Apenas alguns comentários:
* A tabela "Estados" não é necessária. Pode incluir um campo "Estado" na tabela "Cidades".
* A tabela "Bairros" não é necessária. Mas se quiser manter, deve alterar o campo "Bairro" da tabela "Fornecedores" para o tipo Número Int.Longo e estabelecer o relacionamento.
* Na tabela "DetCompras" eu usaria o tipo Automático (e chave primária) para o campo "CodCompras".
* Não crie combos nas tabelas. Crie-as nos formulários.
* Evite colocar legendas nos campos das tabelas. Faça isto nos rótulos de campo dos formulários.
update:
imagem retirada > post resolvido!
Mude seu subform "DetCompras" de simples com exibição no modo folha de dados, para contínuo.
Use instruções SQL ou consultas na fonte de dados de combos, ao invés de tabelas. Isto lhe dará maior controle sobre as colunas. O mesmo vale para subforms, principalmente por permitir usar campos calculados.
Pode tomar como orientação este exemplo:
http://maximoaccess.forumeiros.com/t5441-vendas-com-geracao-de-parcelas-via-adodb
Quanto à questão Estoque, falta muito prá chegar lá... você vai precisar montar a parte de Vendas antes...
Pode contar com a comunidade Maximo para auxiliar nas tarefas subsequentes.
PS: Não corrigi seus forms pois não consigo salvar nada: o bd está corrompendo direto (?).
Os relacionamentos estabelecidos estão corretos.
Apenas alguns comentários:
* A tabela "Estados" não é necessária. Pode incluir um campo "Estado" na tabela "Cidades".
* A tabela "Bairros" não é necessária. Mas se quiser manter, deve alterar o campo "Bairro" da tabela "Fornecedores" para o tipo Número Int.Longo e estabelecer o relacionamento.
* Na tabela "DetCompras" eu usaria o tipo Automático (e chave primária) para o campo "CodCompras".
* Não crie combos nas tabelas. Crie-as nos formulários.
* Evite colocar legendas nos campos das tabelas. Faça isto nos rótulos de campo dos formulários.
update:
imagem retirada > post resolvido!
Mude seu subform "DetCompras" de simples com exibição no modo folha de dados, para contínuo.
Use instruções SQL ou consultas na fonte de dados de combos, ao invés de tabelas. Isto lhe dará maior controle sobre as colunas. O mesmo vale para subforms, principalmente por permitir usar campos calculados.
Pode tomar como orientação este exemplo:
http://maximoaccess.forumeiros.com/t5441-vendas-com-geracao-de-parcelas-via-adodb
Quanto à questão Estoque, falta muito prá chegar lá... você vai precisar montar a parte de Vendas antes...
Pode contar com a comunidade Maximo para auxiliar nas tarefas subsequentes.
PS: Não corrigi seus forms pois não consigo salvar nada: o bd está corrompendo direto (?).
Última edição por norbs em 15/12/2011, 00:07, editado 1 vez(es) (Motivo da edição : update)
França- Avançado
- Respeito às regras :
Sexo :
Localização :
Mensagens : 337
Registrado : 22/08/2011
- Mensagem nº18
Formulário Continuo
Não entendi a sugestão para alterar o formulário DetCompras de simples para Contínuo.
Não imagino como proceder o o porque disso.
Aguardo intruções.
Abrços Tchê
Não imagino como proceder o o porque disso.
Aguardo intruções.
Abrços Tchê
Convidad- Convidado
- Mensagem nº19
Re: [Resolvido]Relacionamento de tabelas
Ola
Nas propriedades do form > guia Formato > Modo padrão.
[imagem retirada]
Se a sua dúvida quanto aos relacionamentos está resolvida, por favor marque o tópico como Resolvido!
Nas propriedades do form > guia Formato > Modo padrão.
[imagem retirada]
Se a sua dúvida quanto aos relacionamentos está resolvida, por favor marque o tópico como Resolvido!
Última edição por norbs em 22/12/2011, 21:04, editado 1 vez(es) (Motivo da edição : imagem retirada)
França- Avançado
- Respeito às regras :
Sexo :
Localização :
Mensagens : 337
Registrado : 22/08/2011
- Mensagem nº20
Relacionamento de tabelas
Agradeço o auxilio