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]Verifica se existe registro antes de gravar um novo

    avatar
    brunoluizmaia
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 54
    Registrado : 24/04/2019

    [Resolvido]Verifica se existe registro antes de gravar um novo Empty [Resolvido]Verifica se existe registro antes de gravar um novo

    Mensagem  brunoluizmaia em 5/6/2019, 11:56

    Boas,

    Estou precisando de uma imensa ajuda.

    Tenho 2 tabelas relacionadas de 1 para 1, onde a tabela "Documento_Controlo" é a principal e a "Protocolo_Producao" é a secundária. Para cada registro na "Documento_Controlo" tenho que ter somente 1 registro na "Protocolo_Producao".

    No formulário vinculado com a "Protocolo_Producao" faço um DLOOKUP do Primary Key  "Num_Doc_Controlo" da tabela "Documento_Controlo" e preencho automático os dados que são referência para o preenchimento da tabela "Protocolo_Producao".

    O que preciso é após atualizar a combo box do "Num_Doc_Controlo" no formulário vinculado da tabela "Protocolo_Producao", se existir registro para este "Num_Doc_Controlo" na tabela "Procolo_Producao" ele carrega os dados inseridos anteriormente, se não exisitir ele cria um novo registro na tabela "Protocolo_Producao".

    Estou disponibilizando o arquivo para melhor compreensão e análise em erros que estou cometendo por ser iniciante.

    Copiar link abaixo e colar no navegador
    we.tl/t-Xm42RDmysB

    [Não são permitidos links externos, colocar desta forma]


    Cumprimentos,

    Bruno Nunes


    Última edição por brunoluizmaia em 5/6/2019, 13:49, editado 2 vez(es)
    maguim
    maguim
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 438
    Registrado : 15/05/2013

    [Resolvido]Verifica se existe registro antes de gravar um novo Empty Re: [Resolvido]Verifica se existe registro antes de gravar um novo

    Mensagem  maguim em 5/6/2019, 13:11

    opa! só um pitaco.

    As informações estao no mesmo formulario certo?


    se tiver é simples


    faça dois dlookup pra validar:

    Código:
    dim suavariavel1 as string
    dim suavariavel2 as string
    dim rs as dao.recordset
    dim db as dao.database

    suavariavel1 = dlookup blá blá blá
    suavariavel2 = NZ(dlookup blá blá blá), "")

    if suavariavel1 then
    recordset intrução
       if suavariavel2 = "" then 'aqui o "" do nz trata o nulo, ous eja se nao encontrar nada ele ira informar
       recordset
       end if
    end if


    abraços


    .................................................................................
    O conhecimento é a Dadiva da Vida. Sem ele o que seriamos ?! Surprised
    avatar
    brunoluizmaia
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 54
    Registrado : 24/04/2019

    [Resolvido]Verifica se existe registro antes de gravar um novo Empty Re: [Resolvido]Verifica se existe registro antes de gravar um novo

    Mensagem  brunoluizmaia em 5/6/2019, 14:03

    maguim, obrigado pela ajuda!

    Não é bem isso que procuro.

    Preciso que ao selecionar o valor "Num_Doc_controlo", se existir na tabela "Protocolo_Producao", me retorne os dados anteriormente cadastrado com este número, se não existir abre um novo registro.

    Lembrando que o "Num_Doc_Controlo" pertence a tabela "Documento_Controlo" e o registro relacionado será na tabela "Protocolo_Producao".

    Cumprimentos,

    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6043
    Registrado : 15/03/2013

    [Resolvido]Verifica se existe registro antes de gravar um novo Empty Re: [Resolvido]Verifica se existe registro antes de gravar um novo

    Mensagem  ahteixeira em 5/6/2019, 14:56

    Olá a todos,

    Bruno, os campos que descreve na questão, não estou a ver no projeto que partilhou.
    No entanto como foi em cima do joelho, vai aqui como pode fazer:

    Código:
    Private Sub Num_Doc_Controlo_AfterUpdate()
        'ahteixeira 2019
        If DCount("[Num_Prot_P_Tex]", "DB_ProtProd_Tex", "[Num_Prot_P_Tex] = " & Me.Num_Doc_Controlo) > 0 Then 'se maior que zero tem registos
        '... faz consulta acrescentar
        Else
        '... faz um novo registo
        End If
    End Sub

    Abraço
    avatar
    brunoluizmaia
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 54
    Registrado : 24/04/2019

    [Resolvido]Verifica se existe registro antes de gravar um novo Empty Re: [Resolvido]Verifica se existe registro antes de gravar um novo

    Mensagem  brunoluizmaia em 5/6/2019, 16:11

    AH Teixeira,

    Vou fazer um exemplo para compreender e me ajudar nesta rotina porque estou tentando aqui de todas as maneiras, mas sem sucesso.

    Tenho a tabela  "DB_Documento_Controlo" e formulário "Documento_Controlo" que gera a entrada do produto, quando o produto entra em produção precisamos gerar um documento técnico pelo formulário "Protocolo_Producao_Tex".
    O formulário "Protocolo_Producao_tex" busca as informações pela combo box "Numero_DC" que traz os dados de entrada cadastrados no "Documento_Controlo".
    Mas não posso ter 2 protocolos de produção para 1 Documento de controlo.

    Exemplo:

    O Documento Controlo nº 6, tem o protocolo de produção nº2. (Não posso conter outro protocolo de produção para o Documento de Controlo nº6)
    Se no formulário "Protocolo_Producao_tex", selecionar na combo box "Numero_DC" o número 6, ele busca o registro existente do protocolo de produção nº2.

    Se no formulário "Protocolo_Produca_tex", selecionar na combo box "Numero_DC" o número 4, ele busca os dados básicos (nome cliente, numero cliente, etc) e libera a geração de um novo protocolo de produção.

    'Maguim' - o banco está no link abaixo

    Copiar link abaixo e colar no navegador
    we.tl/t-Xm42RDmysB


    Cumprimentos,

    Bruno Nunes
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6043
    Registrado : 15/03/2013

    [Resolvido]Verifica se existe registro antes de gravar um novo Empty Re: [Resolvido]Verifica se existe registro antes de gravar um novo

    Mensagem  ahteixeira em 5/6/2019, 16:41

    Olá Bruno,

    Estou no celular, mas o código da minha mensagem n. 4 mostra o caminho das pedras.

    Pois será colocar no evento correto, com o Dcount verificamos se a tabela tem registos (protocolo de produção), aqui nesta parte já controla se vai buscar os registos ou se vai para novo.

    Abraço

    avatar
    brunoluizmaia
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 54
    Registrado : 24/04/2019

    [Resolvido]Verifica se existe registro antes de gravar um novo Empty Re: [Resolvido]Verifica se existe registro antes de gravar um novo

    Mensagem  brunoluizmaia em 5/6/2019, 16:50

    Olá, AH Teixeira!

    Sim, sei que tem o caminho das pedras, mas tentei aqui gerar a consulta ou filtro para retornar o registro mas não consegui.

    Já tentei várias formas, mas meu conhecimento é bem limitado, por isso não consigo.

    Se tiver algum exemplo de consulta ou filtro para retorno. Eu agradeço.

    Cumprimentos,

    Bruno Nunes
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6043
    Registrado : 15/03/2013

    [Resolvido]Verifica se existe registro antes de gravar um novo Empty Re: [Resolvido]Verifica se existe registro antes de gravar um novo

    Mensagem  ahteixeira em 5/6/2019, 16:55

    Olá Bruno,

    Quando estiver com PC tento verificar, entretanto pode ser que algum colega ajude.
    Enquanto aguarda, compile o projeto e verifique se tem erros, pois o da mensagem n. 1 tinha erros.

    Abraço
    avatar
    brunoluizmaia
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 54
    Registrado : 24/04/2019

    [Resolvido]Verifica se existe registro antes de gravar um novo Empty Re: [Resolvido]Verifica se existe registro antes de gravar um novo

    Mensagem  brunoluizmaia em 5/6/2019, 17:02

    Muito obrigado pela ajuda!

    Eu já tratei os erros, que vinham acontecendo. É por causa dos relacionamento 1 para 1 que havia tentado realizar para resolver este caso. Mais algumas tentativas sem sucesso que acabou importando para a parte do banco que disponibilizei.

    Grato,

    Bruno Nunes
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6043
    Registrado : 15/03/2013

    [Resolvido]Verifica se existe registro antes de gravar um novo Empty Re: [Resolvido]Verifica se existe registro antes de gravar um novo

    Mensagem  ahteixeira em 7/6/2019, 14:55

    Olá Bruno,

    Gostaria de ajudar, mas o segundo projeto que disponibiliza ainda apresenta erros de compilação, não está funcional.
    Para isso aperte as teclas ALT+F11, DEBUG -> Compile

    Quanto ao que pretende, acho que está a complicar o simples ou não estou a chegar à ideia.
    Como diz o nosso Grande JPaulo, existe várias formas de fazer Nestun, ou seja várias formas de obter o mesmo resultado.

    Veja, está a dizer "O Documento Controlo nº 6, tem o protocolo de produção nº2. (Não posso conter outro protocolo de produção para o Documento de Controlo nº6)"

    Certo, então quando um documento de controlo tem um codigo (registo) de protocolo de produção já atribuido,já não pode ter outro.
    Estive a ver a estrutura e relações e parece estar bem:
    [Resolvido]Verifica se existe registro antes de gravar um novo 064

    Creio que a questão está nos "formularios" da forma que quer apresentar os dados (como referi não está funcional, apresenta erros).
    Na minha opinião deve reformular como o utilizador vai introduzir os dados.

    Se está confuso, pare e efetue um esboço no papel qual as etapas e ordem de como as operações são efetuadas.

    Vamos imaginar, para adicionar um registo de controlo é necessário ter criado previamente o protocolo de produção.
    Ao usar um protocolo de produção, já não pode ficar disponivel para outro registo de controlo (ou pode ficar disponível) ...

    Fica a minha sugestão.

    Abraço a todos
    avatar
    brunoluizmaia
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 54
    Registrado : 24/04/2019

    [Resolvido]Verifica se existe registro antes de gravar um novo Empty Re: [Resolvido]Verifica se existe registro antes de gravar um novo

    Mensagem  brunoluizmaia em 12/6/2019, 09:44

    Bom dia!!

    Álvaro, muito obrigado pela ajuda! Realizei o Compile e resolvi os erros detectados. Tenho uma dúvida sobre a rotina que havia informado anteriormente. Tentei utilizar os métodos abaixo e não resultou sempre dá o erro 2501.

    Peço vossa ajuda ou a de outro mestre que esteja acompanhando o tópico.

    Código:
    ahteixeira 2019
       If DCount("[Numero_DC]", "DB_ProtProd_Tex", "[Numero_DC] = " & Me.Numero_DC) > 0 Then 'se maior que zero tem registos
        
         '... faz consulta acrescentar
       'DoCmd.OpenForm "Protocolo_Producao_Textura", acNormal, "", "[Numero_DC]=" & Numero_DC
       'DoCmd.Close acForm, "Pesquisa_Prot_textura"

       'MsgBox "Este documento de controlo, já possui um Prot. Textura. Favor utilizar a pesquisa!", vbOKOnly, "Informação"
       'DoCmd.GoToRecord acDataForm, , acGoTo, "Numero_DC=" & Numero_DC
       'DoCmd.FindRecord "Numero_DC=" & Numero_DC, acEntire, True, acSearchAll, True, acCurrent, True
      
      Else

        '... faz um novo registo
       DoCmd.GoToRecord , , acNewRec
        End If


    Cumprimentos,

    Bruno Nunes
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6043
    Registrado : 15/03/2013

    [Resolvido]Verifica se existe registro antes de gravar um novo Empty Re: [Resolvido]Verifica se existe registro antes de gravar um novo

    Mensagem  ahteixeira em 12/6/2019, 19:28

    Olá a todos,

    Bruno, veja exemplo simples com base do que foi dito na mensagem n. 4.
    Espero que ajude.

    Abraço
    Anexos
    [Resolvido]Verifica se existe registro antes de gravar um novo Attachmentavisa_duplicado.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (17 Kb) Baixado 5 vez(es)
    avatar
    brunoluizmaia
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 54
    Registrado : 24/04/2019

    [Resolvido]Verifica se existe registro antes de gravar um novo Empty Re: [Resolvido]Verifica se existe registro antes de gravar um novo

    Mensagem  brunoluizmaia em 13/6/2019, 15:44

    Olá,

    Agradeço a ajuda, a intenção é essa mesmo que enviou.
    Mas preciso que, se exista um registro, ele retorne com o registro para edição do mesmo.

    Estou com dificuldade nesta consulta. Já tentei de várias formas.  pig

    Código:
    ahteixeira 2019
       If DCount("[Numero_DC]", "DB_ProtProd_Tex", "[Numero_DC] = " & Me.Numero_DC) > 0 Then 'se maior que zero tem registos
        
         '... faz consulta acrescentar
        '??????? Não consigo ...
      
      Else

        '... faz um novo registo
       DoCmd.GoToRecord , , acNewRec
        End If
    avatar
    brunoluizmaia
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 54
    Registrado : 24/04/2019

    [Resolvido]Verifica se existe registro antes de gravar um novo Empty Re: [Resolvido]Verifica se existe registro antes de gravar um novo

    Mensagem  brunoluizmaia em 14/6/2019, 12:31

    Olá!

    Coloco o tópico como resolvido.

    Estou seguindo a dica do AH Teixeira sobre o fluxo de informações e sequência de trabalho do usuário no sistema.

    Agradeço a atenção e disponibilidade de todos.

    Cumprimentos,

    Bruno Nunes
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6043
    Registrado : 15/03/2013

    [Resolvido]Verifica se existe registro antes de gravar um novo Empty Re: [Resolvido]Verifica se existe registro antes de gravar um novo

    Mensagem  ahteixeira em 14/6/2019, 14:57

    Olá a todos,

    Bruno Nunes, fico feliz por seguir essa via!
    É muito importante uma boa estrutura.
    [Resolvido]Verifica se existe registro antes de gravar um novo Md13

    Obrigado pelo retorno.

    Abraço a todos

    Conteúdo patrocinado

    [Resolvido]Verifica se existe registro antes de gravar um novo Empty Re: [Resolvido]Verifica se existe registro antes de gravar um novo

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 18/6/2019, 08:50