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


2 participantes

    [Resolvido]Preenchimento de campo com base em um critério

    blsnogueira
    blsnogueira
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 21
    Registrado : 16/09/2012

    [Resolvido]Preenchimento de campo com base em um critério Empty [Resolvido]Preenchimento de campo com base em um critério

    Mensagem  blsnogueira 15/7/2017, 18:50

    Boa tarde a todos,
    Mais uma vez venho pedir socorro e desde já agradeço muito a ajuda de vcs.

    Estou adaptando uma emissão de fatura automática no sistema que utilizamos aqui na empresa.

    Precisamos, que ao gerar a fatura ele puxe de uma outra tabela as informações referente a descrição dos serviços.

    Limitei a quatro serviços por fatura e para isso em meu formulário de emissão de fatura eu criei os campos:  [OC1], [OC2], [OC3], [OC4], onde será informado a ordem de compra de cada serviço contratado.

    Antes de gerar a fatura, preenchemos os campos [OC1], [OC2], [OC3], [OC4], com os números das ordem de compras, que  servirá de base para o preenchimentos automático do campo [newDescServ] em minha fatura.

    Bem... Para preencher o meu campo [newDescServ] em minha fatura,  usei o seguinte:

    newDescServ = "PRESTAÇÃO DE SERVIÇO, CONFORME ORDEM DE COMPRA(S):" & vbNewLine & _
                     IIf(IsNull(Me.OC1), Empty, Format$(Me.OC1, "00000") & ": " & DLookup("[Descricao]", "Servico", "[Codigo]=" & OC1)) & vbNewLine & _
                     IIf(IsNull(Me.OC2), Empty, Format$(Me.OC2, "00000") & ": " & DLookup("[Descricao]", "Servico", "[Codigo]=" & OC2)) & vbNewLine & _
                     IIf(IsNull(Me.OC3), Empty, Format$(Me.OC3, "00000") & ": " & DLookup("[Descricao]", "Servico", "[Codigo]=" & OC3)) & vbNewLine & _
                     IIf(IsNull(Me.OC4), Empty, Format$(Me.OC4, "00000") & ": " & DLookup("[Descricao]", "Servico", "[Codigo]=" & OC4))

    Se os campos [OC1], [OC2], [OC3], [OC4], estiverem preenchidos o sistema gera a fatura perfeitamente.
    O problema é que nem sempre todos os campos serão preenchidos... já que a fatura pode conter apenas um ordem de compra... e se o campo estiver em branco, ele me apresenta o seguinte erro:
    Erro em tempo de execução ‘3075’
    Erro de sintaxe (operador faltando) na expressão de consulta ‘[Codigo]=’

    Se a expressão diz que é para procurar descrição apenas se o campo [OC1] não for nulo, ele não deveria nem procurar o [Codigo] neste caso.

    Desde já agradeço a ajuda para solucionar esta dúvida.

    Grato,
    Bruno Nogueira
    avatar
    Phillip_Junior
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 179
    Registrado : 09/12/2016

    [Resolvido]Preenchimento de campo com base em um critério Empty Re: [Resolvido]Preenchimento de campo com base em um critério

    Mensagem  Phillip_Junior 16/7/2017, 04:38

    Olá amigo


    Observe:

    Null, como Empty, é tanto uma palavra-chave quanto um valor especial que pode ser contido por um Variant. Indica que a variável não contém dados válidos. Normalmente causa problemas ao ler um campo sem dados de uma tabela. Null não é igual a nada, nem a si mesmo!.
    O VBA tem a função IsNull para dizer se uma variável contém Nulo e a função Nz para devolver um valor esperado (como zero ou “”) se uma variável contiver Nulo. Talvez a melhor forma de pensar sobre Nulo é imaginá-lo como “Desconhecido”.

    Empty (Vazio)
    É tanto uma palavra-chave quanto um valor especial que pode ser contido por um Variant. Ela indica um Variant não inicializado. Não é o mesmo que Null. Empty é raro quando comparado com os outros conceitos discutidos neste artigo e provavelmente não será muito encontrado “na vida real”. O VBA tem a função IsEmpty para dizer se a variável está vazia.


    Tente assim

    IIf(IsNull(OC1) Or Me.OC1.value = "", Format$(Me.OC1, "00000") & ": " & DLookup("[Descricao]", "Servico", "[Codigo]=" & OC1)) & vbNewLine & _

    Se não der certo, poste um pequeno exemplo do seu banco usando o código na apresentação do erro que veremos oq pode ser solucionado.

    Abraços


    .................................................................................
    Phillip_Junior
    Analista de Sistemas
    blsnogueira
    blsnogueira
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 21
    Registrado : 16/09/2012

    [Resolvido]Preenchimento de campo com base em um critério Empty Re: [Resolvido]Preenchimento de campo com base em um critério

    Mensagem  blsnogueira 17/7/2017, 20:31

    Obrigado pela ajuda Phillip_Junior.

    Consegui resolver usando um "nz" para todos os OC

    newDescServ = "PRESTAÇÃO DE SERVIÇO, CONFORME ORDEM DE COMPRA(S):" & vbNewLine & _
    IIf(IsNull(Me.OC1), Empty, Format$(Me.OC1, "00000") & ": " & DLookup("[Descricao]", "Servico", "[Codigo]=" & Nz(OC1, 0))) & vbNewLine & _
    IIf(IsNull(Me.OC2), Empty, Format$(Me.OC2, "00000") & ": " & DLookup("[Descricao]", "Servico", "[Codigo]=" & Nz(OC2, 0))) & vbNewLine & _
    IIf(IsNull(Me.OC3), Empty, Format$(Me.OC3, "00000") & ": " & DLookup("[Descricao]", "Servico", "[Codigo]=" & Nz(OC3, 0))) & vbNewLine & _
    IIf(IsNull(Me.OC4), Empty, Format$(Me.OC4, "00000") & ": " & DLookup("[Descricao]", "Servico", "[Codigo]=" & Nz(OC4, 0)))


    Abraços
    avatar
    Phillip_Junior
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 179
    Registrado : 09/12/2016

    [Resolvido]Preenchimento de campo com base em um critério Empty Re: [Resolvido]Preenchimento de campo com base em um critério

    Mensagem  Phillip_Junior 17/7/2017, 20:48

    Olá
    Obrigado pelo retorno. O forum agradece.
    Parabens pelo estudo e solução do problema.
    Melhor que qualquer um de nos sem acesso ao bd, seria vc para encontrar a solução. Sem entender muito bem a ideia e o mecanismo do projeto nem sempre conseguimos ajudar. Mas fica registrado a solução.
    parabens e sucesso

    abracos



    .................................................................................
    Phillip_Junior
    Analista de Sistemas

    Conteúdo patrocinado


    [Resolvido]Preenchimento de campo com base em um critério Empty Re: [Resolvido]Preenchimento de campo com base em um critério

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 00:31