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

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

    avatar
    brunoluizmaia
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 133
    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 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 : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 446
    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 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 : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 133
    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 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 : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7285
    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 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 : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 133
    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 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 : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7285
    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 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 : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 133
    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 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 : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7285
    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 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 : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 133
    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 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 : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7285
    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 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 : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 133
    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 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 : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7285
    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 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 31 vez(es)
    avatar
    brunoluizmaia
    Intermediário
    Intermediário

    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 133
    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 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 : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 133
    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 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 : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7285
    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 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

      Data/hora atual: 1/8/2021, 11:36