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


3 participantes

    Como Criar Uma Consulta Para Inserir Novas Informações em uma Tabela ?

    avatar
    hebersonsette
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 18/12/2013

    Como Criar Uma Consulta Para Inserir Novas Informações em uma Tabela ? Empty Como Criar Uma Consulta Para Inserir Novas Informações em uma Tabela ?

    Mensagem  hebersonsette 4/1/2014, 11:21

    Olá a todos!

    Sou iniciante em access e estou usando o MS-ACCESS 2003 em um PC com o Windows XP.

    Estou criando um banco de dados para controlar as vias de cartões de clientes que chegam aqui na nossa empresa.

    Tenho um banco de dados com uma tabela que tem dois campos

    Esta tabela se chama tbCidadao e tem dois campos a saber:

    Nome, que é um campo texto com tamanho 70
    PIS que também é um campo texto com 11 posições e chave primária.

    O que eu preciso saber como fazer é o seguinte:

    O cliente(Nome) tem um identificador (PIS) único e exclusivo, porém preciso controlar quantas vias do cartão ele tem, teve ou terá.
    Para isto eu criei outra tabela, porém não sei como criar uma consulta ou outro objeto do ACCESS que possa pegar os clientes na tabela tbcCidadao e incluir em uma outra tabela inserindo novas informações tais como número da via do cartão data e hora do cadastro desta nova via do cartão bem como nome e PIS do cliente.

    Será que alguém pode me ajudar, tendo em vista que o livro que eu estou seguindo não me orientou muito nisto.

    Se precisar posso enviar o arquivo MDB.
    gilberlanio
    gilberlanio
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 814
    Registrado : 30/08/2010

    Como Criar Uma Consulta Para Inserir Novas Informações em uma Tabela ? Empty Re: Como Criar Uma Consulta Para Inserir Novas Informações em uma Tabela ?

    Mensagem  gilberlanio 4/1/2014, 11:48

    Pelo que entendi você precisa ter duas tabelas e fazer uma relação entre eles.

    Se tiver tempo veja esses vídeos que mostra como fazer.

    http://maximoaccess.forumeiros.com/t15252-criando-um-sistema-de-vendas-em-access-2010
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    Como Criar Uma Consulta Para Inserir Novas Informações em uma Tabela ? Empty Re: Como Criar Uma Consulta Para Inserir Novas Informações em uma Tabela ?

    Mensagem  Dilson 4/1/2014, 12:48

    Amigão hebersonsette,

    Seja bem vindo ao fórum!

    Antes de mais nada pedir que não duplique tópico com o mesmo assunto, pois tens a opção de dar um "up" no tópico já criado.

    No outro tópico tem uma amostra e eu reparei a estrutura das suas tabelas e vou fazer uma observação quanto aos campos relacionais:

    Devemos evitar o relacionamento de tabelas usando dados que representam alguma coisa como por exemplo o PIS, CPF, N° Registro (Personalizado), pois apesar de propor a não repetição ele continua sendo modificável e isso gera insegurança na integridade referencial.

    Então façamos uso de numeração automática para chave primária e numeração para chave estrangeira, pois isso não irá interferir a interação do campo representativo entre as tabelas.

    A numeração automática é código de sistema e nem precisa exibir ao usuário, deixe que o sistema faça o consumo.

    Então na estrutura de suas tabelas deves criar o seguinte:

    Na tabela TBCidadao crie um campo id_cid_p do tipo numeração automática (torne-o chave primária)

    Na tabela tbCARTOES crie um campo id_cid_e do tipo numeração

    Agora relacione id_cid_p com id_cid_e

    no seu formulário de TBCidadao pode criar um botão para criar um registro relacionado na tabela tbCARTOES, assim:

    DoCmd.OpenForm "O_Form_Vinculado_A_tbCARTOES", , , , acFormAdd
    Forms!O_Form_Vinculado_A_tbCARTOES!id_cid_e = Me!id_cid_p

    Comece.
    avatar
    hebersonsette
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 18/12/2013

    Como Criar Uma Consulta Para Inserir Novas Informações em uma Tabela ? Empty Re: Como Criar Uma Consulta Para Inserir Novas Informações em uma Tabela ?

    Mensagem  hebersonsette 4/1/2014, 15:11

    Muito Grato pela resposta :placeholder, porém me surgiu uma dúvida:

    Se o PIS não deve ser chave primária, então na tabela tbCidadao poderei ter mais de uma vez o registro com o mesmo número de PIS?

    Quanto a criar o botão para inserir um novo registro conforme você orientou, eu não tenho nenhuma ideia de como iniciar isto.

    Ainda sou iniciante em access e ainda tenho muito que aprender o básico sobre tabelas, consultas, formulários e relatórios e só depois passarei para os recursos mais avançados.

    Quanto ao meu MDB eu preciso controlar os cartões que chegam e devo controlar pelo número de PIS e número da via do cartão, então pensei em fazer um formulário para cadastrar uma nova via do cartão porém o cidadão deve ter sido previamente cadastrado na tabela tbCidadao e só depois criaria um novo registro na tbCartoes constando número da via do cartão, data e hora do cadastro e numero do PIS.

    Pensei em fazer isso via formulário, mas ainda tenho que aprender o básico.

    Mais uma vez muito grato pela ajuda.
    avatar
    hebersonsette
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 18/12/2013

    Como Criar Uma Consulta Para Inserir Novas Informações em uma Tabela ? Empty Não consigo estabelecer a relação entre as tabelas.

    Mensagem  hebersonsette 4/1/2014, 15:24

    A relação tem que ser um para muitos, porém depois que criei os campos i_cid_p e i_cid_e seguindo as orientações do :placeholder não consigo a relação um para muitos somente relação um para um.

    O campo i_cid_e da tabela tbCartoes você disse que ele tem que ser númeração automática ou número?

    Agradeço mais uma vez a ajuda.
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    Como Criar Uma Consulta Para Inserir Novas Informações em uma Tabela ? Empty Re: Como Criar Uma Consulta Para Inserir Novas Informações em uma Tabela ?

    Mensagem  Dilson 4/1/2014, 15:34

    Olá,

    Entendo.

    O seu n° de PIS não será mais cadastrado em outra tabela, ficará apenas na tabela TBCidadao.

    A relação será feita pelo campo primário e estrangeiro.

    O fato dele precisar ter um prévio cadastrado, não terá dificuldade de antes de inserir uma via de cartão o sistema realizar uma busca pelo PIS na tabela cidadao. Simulando seria: Se tem PIS então continua o cadastro da via de cartão, senão informará que ele não tem PIS e precisará realizar o cadastro prévio primeiro.

    Como informou ser iniciante, o que falei parece um pouco complicado agora, mas vai ver que não é, tudo questão de tempo, se vai ver.

    Faça as modificações no seu banco e poste por favor aqui que te darei uma ajuda pra montar isso.



    avatar
    hebersonsette
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 18/12/2013

    Como Criar Uma Consulta Para Inserir Novas Informações em uma Tabela ? Empty O MDB em anexo

    Mensagem  hebersonsette 4/1/2014, 15:38

    Criei os campos, porém não consegui fazer a relação entre as tabelas.

    Pode me ajudar por favor? Penso que a relação é um para muitos. Estou equivocado?

    Muito grato mais uma vez.
    Anexos
    Como Criar Uma Consulta Para Inserir Novas Informações em uma Tabela ? AttachmentCSocial.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (52 Kb) Baixado 6 vez(es)
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    Como Criar Uma Consulta Para Inserir Novas Informações em uma Tabela ? Empty Re: Como Criar Uma Consulta Para Inserir Novas Informações em uma Tabela ?

    Mensagem  Dilson 7/1/2014, 02:29

    Aqui amigo, uma ajuda para ver a forma de inserção de registros relacionais.

    Todas as orientações que lhe passei foram aplicadas neste exemplo.

    Apesar de achar desnecessário, eu repliquei o PIS da tabela cidadão na tabela cartões. De cara vejo isso como redundância e teria que analisar a regra de negócio para ver de outra forma.

    Explore o exemplo, olhe a grade de relacionamento e veja o chaveamento do registro id_cid_p com id_cid_e.

    Link para download do exemplo (copie e cole no seu navegador):
    https://dl.dropboxusercontent.com/u/8080696/BAP/inserir_registros_relacionais/CSocial_old.rar


    avatar
    hebersonsette
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 18/12/2013

    Como Criar Uma Consulta Para Inserir Novas Informações em uma Tabela ? Empty Muitoi grato

    Mensagem  hebersonsette 7/1/2014, 06:48

    Olá :placeholder!

    Mais uma vez muito grato pela ajuda e por modificar o arquivo, inclusive fazendo outros formulários.

    Pensei que fosse mais fácil, porém vejo que tenho muito que aprender ainda, mas chegarei lá.

    Vou estudar seu código e quando as dúvidas surgirem voltarei por aqui.

    O que eu preciso na verdade é cadastrar um cidadão e seu número de PIS e se ele estiver cadastrado registrar a primeira via do cartão ou as demais. Depois preciso registrar a entrega do cartão para entregar em mãos.

    Vou estudar todas as suas modificações e tentarei implementar outros detalhes.

    Uma pergunta que já tenho:

    Como você conseguiu fazer a relação um para muitos entre as tabelas?

    Eu tentei diversas vezes e só consegui a relação um-para-um, mesmo definindo os campos da relação como Auto Numeração Inteiro Longo

    Tenho que estudar muito.

    Mais uma vez muito obrigado pela ajuda e apoio espero pode retribuir algum dia.
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    Como Criar Uma Consulta Para Inserir Novas Informações em uma Tabela ? Empty Re: Como Criar Uma Consulta Para Inserir Novas Informações em uma Tabela ?

    Mensagem  Dilson 7/1/2014, 06:58

    1-n foi possível após modificar o tipo de dado do campo id_cid_e de Numeração automática para Número.

    O cartão que trata é o cartão do PIS ou é outro ?

    Se for do PIS a cada via gerada muda o número ?

    Estude a forma que usei e saiba que esta técnica dá para empregar com qualquer objeto do access. A sua imaginação é que manda.

    avatar
    hebersonsette
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 18/12/2013

    Como Criar Uma Consulta Para Inserir Novas Informações em uma Tabela ? Empty Re: Como Criar Uma Consulta Para Inserir Novas Informações em uma Tabela ?

    Mensagem  hebersonsette 8/1/2014, 05:50

    Olá :placeholder.

    Não, o número do PIS não mudará nunca, ele é um identificador único e exclusivo de cada cidadão trabalhador no Brasil, seja da iniciativa privada ou do serviço público.

    O que acontece é o seguinte :

    1 - Se eu solicito uma via do Cartão do Cidadão para uma pessoa a solicitação é baseada no número do PIS que é o número usado para identificar as contas vinculadas do FGTS bem como enviar informações para a previdência social (INSS).
    Então eu devo cadastrar o número do PIS e nome do cidadão na tabela tbCIDADAO se já não estiver cadastrado.

    Aí sim, se a via solicitada foi a primeira, eu controlo isso através do número da via solicitada e esta informação eu digito manualmente na tabela tbCARTOES que é para controle da vias.

    Se ele perdeu o cartão, ou foi roubado extraviado eu vou solicitar uma nova via controlando na tbCARTOES, mas ele já está cadastrado na tbCIDADAO.

    Você tem um número de PIS caso já tenha tido um ou mais registros de contrato de trabalho em sua carteira profissional, porém o número do PIS não muda.


    Mais uma vez grato pelo apoio.
    avatar
    hebersonsette
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 8
    Registrado : 18/12/2013

    Como Criar Uma Consulta Para Inserir Novas Informações em uma Tabela ? Empty Re: Como Criar Uma Consulta Para Inserir Novas Informações em uma Tabela ?

    Mensagem  hebersonsette 8/1/2014, 07:10

    Olá !

    Acho que comecei a entender, mas preciso perguntar.

    O campo id_cid_e poderia ser o campo NUMVIA, pois ele é relacionado com a tabela tbCIDADAO e o preenchimento não é automático desta forma teríamos um campo relacionado e não seria chave primária. Isto me permitiria a relação um para muitos e o campo muitos seria NUMVIA preenchido por mim mesmo a partir da necessidade.

    Estou perguntando isso pois penso que não a necessidade do campo NUMVIA e o id_cid_eles podem armazenar a mesma informação que é o número da via do cartão. Posso estar equivocado.

    Muito grato pela ajuda e suporte.
    Dilson
    Dilson
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1743
    Registrado : 11/11/2009

    Como Criar Uma Consulta Para Inserir Novas Informações em uma Tabela ? Empty Re: Como Criar Uma Consulta Para Inserir Novas Informações em uma Tabela ?

    Mensagem  Dilson 9/1/2014, 07:41

    Olá,

    Está.

    id_cid_p e id_cid_e é a numeração que normaliza a relação entre os registros. A chave primária é criada automaticamente a cada registro e a chave estrangeira é lançada automaticamente por código ou propagado automaticamente pela montagem de objetos usando o assistente do access. É recomendado que a chave estrangeira tenha o seu preenchimento da forma automática para prover segurança no processamento eliminando margem de erro no preenchimento do dado contido em id_cid_p para id_cid_e.

    NUNVIA é um dado representativo e com toda certeza será editável. Crie um campo para esse dado sem problema nenhum (Decida se seu preenchimento será automático ou manual) e o mesmo continuará a interagir com qualquer dado da tabela cidadão.

    Da forma que imaginou levar, funciona. Porém, o aparecimento de problemas é inevitável, principalmente se seu projeto não ficar em torno dessas duas tabelas (Aí eles aumentam).

    Depois posso simular no exemplo se ainda persistir as dúvidas.




    Conteúdo patrocinado


    Como Criar Uma Consulta Para Inserir Novas Informações em uma Tabela ? Empty Re: Como Criar Uma Consulta Para Inserir Novas Informações em uma Tabela ?

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 21/11/2024, 19:27