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]DoCmd.GoToRecord , , acNewRec e INSERT INTO

    Compartilhe

    Anderson Catarino
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 30
    Registrado : 28/08/2017

    [Resolvido]DoCmd.GoToRecord , , acNewRec e INSERT INTO

    Mensagem  Anderson Catarino em Ter 07 Nov 2017, 10:52

    Bom dia. Desde já desculpa pelo tamanho da mensagem, pois é difícil explicar por poucas palavras.
    Tenho um formulário para controlo de testes laboratoriais.
    O meu problema de momento é ao adicionar novo registo, ele duplica e isso deve se (julgo eu) ao ter no botão novo um DoCmd.GoToRecord , , acNewRec e no botão gravar um Insert Into. Coloquei o Insert Into porque quando fazia gravar, gravava os dados e aparecia numa listbox, mas não aparecia todos os valores, só quando saia e entrava no formulário novamente que os dados já apareciam todos.
    Os campos "principais" (Mas todos devem estar preenchidos) são: Denier e Amostras, ao carregar botão calcular, o programa calcula alguns parâmetros (Média, Amplitude, Zona).
    As vezes no primeiro clique no botão calcular aparece  a Amplitude negativa, o que é impossível (só trabalho com números positivos), mas ao fazer duplo clique já fica direito.
    Quando gravo e aparece as duas linhas uma está relacionada com o primeiro clique no calcular, saio e entro do formulário e já fica tudo correcto.
    Vou deixar a minha bd, pois só testando e analisando o código pode ser possível chegar ao erro.
    Formulário - frmCartaControlo
    bd - CartaControlo
    Basicamente o que eu preciso é adicionar registo e aparecer na listbox.
    Anexos
    Carta Controlo.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (759 Kb) Baixado 4 vez(es)
    avatar
    FabioPaes
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3412
    Registrado : 14/08/2013

    Re: [Resolvido]DoCmd.GoToRecord , , acNewRec e INSERT INTO

    Mensagem  FabioPaes em Ter 07 Nov 2017, 12:30

    Olá, o problema da Duplicação ocorre, pois está utilizando formulario vinculado na tabela, ou seja: Quando vai inserindo os dados, ele ja está sendo salvo na tabela... Então, quando clica no Botão Guardar, ele envia novamente o mesmo Registro para a Tabela, o que torna duplicidade.

    O Comando responsável por fazer aparecer o Registro da Caixa de Listagem é: Me.Lista.Requery

    Dessa forma, deve Remover o INSERT... e deixar o Me.Lista.Requery no Botão gravar para fazer aparecer o Item lançado na Caixa de Listagem!


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!

    Anderson Catarino
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 30
    Registrado : 28/08/2017

    Re: [Resolvido]DoCmd.GoToRecord , , acNewRec e INSERT INTO

    Mensagem  Anderson Catarino em Ter 07 Nov 2017, 14:09

    Boas FabioPaes.
    Eu inicialmente não tinha o Insert Into, depois inclui para ver se ao gravar os dados aparecia toda a informação na listbox, pois utilizando formulário vinculado ao fazer gravar para actualizar a caixa de listagem com o me.lista.requery não aparece. Tenho 26 campos na tabela CartaControlo, mas ao fazer gravar não aparece os últimos 6 campos na caixa de listagem.
    Não estou a compreender o porque, tens alguma ideia/sugestão para resolver isso?
    avatar
    FabioPaes
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3412
    Registrado : 14/08/2013

    Re: [Resolvido]DoCmd.GoToRecord , , acNewRec e INSERT INTO

    Mensagem  FabioPaes em Ter 07 Nov 2017, 15:13

    Olá amigo, nao aparecem todos os 26 campos porque você especificou a Largura de Campo como zero, veja:
    1,297cm;2,448cm;1,704cm;3,508cm;1,657cm;1,704cm;0cm;0cm;0cm;0cm;0cm;0cm;0cm;0cm;0cm;1,623cm;0cm;0cm;0cm;1,68cm;1,678cm;1,748cm;1,916cm;3,812cm;2,498cm;2,817cm

    Removendo essa Especificação (ou adeque os tamanhos), e o Insert, o insere uma vez, e na ListBox aparecem os 26 Campos.


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!

    Anderson Catarino
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 30
    Registrado : 28/08/2017

    Re: [Resolvido]DoCmd.GoToRecord , , acNewRec e INSERT INTO

    Mensagem  Anderson Catarino em Ter 07 Nov 2017, 15:55

    A parte que referes-te a largura de campo como zero, está correcto.
    Eu no Sub Form_Load faço: Select * From CartaControlo
    Defini na caixa de listagem 26 colunas e carrego as 26 colunas mas não quero mostrar todos os dados, só carrego pq ao fazer duplo click numa linha da caixa de listagem ela carrega nas caixas de texto indicadas, para posteriormente editar ou eliminar.
    Eu só quero mostrar na caixa de listagem as colunas que tem o cabeçalho a cima.

    codregisto 1,297 cm
    nop 2,448 cm
    maquina 1,704 cm
    Produto 3,508 cm
    Cor 1,657 cm
    Denier 1,704 cm
    Tenacidade 0 cm
    Dataop 0 cm
    denier1 0 cm
    denier2 0 cm
    denier3 0 cm
    denier4 0 cm
    denier5 0 cm
    denier6 0 cm
    obs1 0 cm
    Media/x 1,623 cm
    x/den 0 cm
    amplitude/x 0 cm
    r/den 0 cm
    Zona 1,68 cm
    forcarotura 1,678 cm
    Alongamento 1,748 cm
    Tenacidade_real 1,916 cm
    obs2 3,812 cm
    Data 2,498 cm
    Assinatura 2,817 cm
    avatar
    FabioPaes
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3412
    Registrado : 14/08/2013

    Re: [Resolvido]DoCmd.GoToRecord , , acNewRec e INSERT INTO

    Mensagem  FabioPaes em Ter 07 Nov 2017, 15:57

    Certo...
    Se são esses os campos que nao aparecem, aqui no meu aparecem normalmente...
    forcarotura 1,678 cm
    Alongamento 1,748 cm
    Tenacidade_real 1,916 cm
    obs2 3,812 cm
    Data 2,498 cm
    Assinatura 2,817 cm


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!

    Anderson Catarino
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 30
    Registrado : 28/08/2017

    Re: [Resolvido]DoCmd.GoToRecord , , acNewRec e INSERT INTO

    Mensagem  Anderson Catarino em Ter 07 Nov 2017, 16:11

    No meu aparece as 8 primeiras colunas, as ultimas 6 não.
    Ao fazer novo registo ou sair e entrar no formulario já aparecem todas mas isso não faz sentido.
    Estas a dizer que quando fazes gravar na caixa de listagem aparece todas as colunas preenchidas?

    avatar
    FabioPaes
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3412
    Registrado : 14/08/2013

    Re: [Resolvido]DoCmd.GoToRecord , , acNewRec e INSERT INTO

    Mensagem  FabioPaes em Ter 07 Nov 2017, 17:03

    Estas a dizer que quando fazes gravar na caixa de listagem aparece todas as colunas preenchidas?
    SIM
    Aparecem todas as com tamanho maior q 0


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    avatar
    FabioPaes
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3412
    Registrado : 14/08/2013

    Re: [Resolvido]DoCmd.GoToRecord , , acNewRec e INSERT INTO

    Mensagem  FabioPaes em Ter 07 Nov 2017, 17:09

    Coloque o Comando SaveRecord Antes do Requery para ver se Resolve:


    DoCmd.RunCommand acCmdSaveRecord
    Me.Lista.Requery


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!

    Anderson Catarino
    Novato
    Novato

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 30
    Registrado : 28/08/2017

    Re: [Resolvido]DoCmd.GoToRecord , , acNewRec e INSERT INTO

    Mensagem  Anderson Catarino em Ter 07 Nov 2017, 17:40

    Resolveu, agora aparece todos os registos na caixa de listagem.
    Sinceramente esse formulário está a dar me dor de cabeça, mas pronto essa parte está resolvida.
    Obrigado.
    avatar
    FabioPaes
    Moderador
    Moderador

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3412
    Registrado : 14/08/2013

    Re: [Resolvido]DoCmd.GoToRecord , , acNewRec e INSERT INTO

    Mensagem  FabioPaes em Ter 07 Nov 2017, 19:20

    Grato pelo Retorno e até a próxima se Deus quiser!


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!

      Data/hora atual: Sab 18 Nov 2017, 08:24