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


4 participantes

    [Resolvido]Condicional IF com vários campos

    avatar
    RegisBorda
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 60
    Registrado : 07/02/2014

    [Resolvido]Condicional IF com vários campos Empty [Resolvido]Condicional IF com vários campos

    Mensagem  RegisBorda 17/2/2021, 16:37

    Prezados,

    Preciso atualizar uma tabela obedecendo a alguns critérios.

    Criei um código a seguir porém o IF não funciona como acertar isso ?

    Dim db As Database
    Dim CurFornecTransp As String
    Dim CurFornecRecep As String
    Dim CurValTranspCliente As Double
    Dim CurValTranspAmbVerde As Double
    Dim CurValUnitCliente As Double
    Dim CurValUnitAmbVerde As Double
    Dim rstMovPA As DAO.Recordset
    Dim strCriteria As String
    Dim intResp As String
    Dim stDocName As String

    'Coloca o Lançamento da Nota na TbMov de Estoque PA'
    MsgBox "Esse Registro será adicionado na Tabela de Despesas II !!!", vbCritical, "Atenção !!!"
    intResp = MsgBox("Confirma a adição do registro ?", vbYesNo, "Atenção !!!")
    Select Case intResp
    Case vbYes
    'Coloca o Lançamento da Nota na TbMov de Estoque PA'

    If Me.RegInserido = 0 And Me.ClasseRes = "Classe II" And Me.TipoOS = "Normal" And Me.Serviço = "Troca" Or Me.Serviço = "Retirada" Then (O IF NÃO ESTÁ FUNCIONANDO)

    Set rstMovPA = CurrentDb.OpenRecordset("TbPrecosDespesas")
    CurValTranspCliente = DLookup("[PrTransp]", "TbPrecosDespesas", "[Residuo]='" & Me.Residuo & "'" & " And [CNPJCliente]='" & Me.CNPJCliente & "'")
    strCriteria = "[Residuo]='" & Me.Residuo & "'" & " And [CNPJCliente]='" & Me.CNPJCliente & "'"
    rstMovPA.FindFirst strCriteria

    Set rstMovPA = CurrentDb.OpenRecordset("TbPrecosDespesas")
    CurValTranspAmbVerde = DLookup("[PrTranspAmbVerde]", "TbPrecosDespesas", "[Residuo]='" & Me.Residuo & "'" & " And [CNPJCliente]='" & Me.CNPJCliente & "'")
    strCriteria = "[Residuo]='" & Me.Residuo & "'" & " And [CNPJCliente]='" & Me.CNPJCliente & "'"
    rstMovPA.FindFirst strCriteria

    Set rstMovPA = CurrentDb.OpenRecordset("TbPrecosDespesas")
    CurValUnitCliente = DLookup("[ValUnit]", "TbPrecosDespesas", "[Residuo]='" & Me.Residuo & "'" & " And [CNPJCliente]='" & Me.CNPJCliente & "'")
    strCriteria = "[Residuo]='" & Me.Residuo & "'" & " And [CNPJCliente]='" & Me.CNPJCliente & "'"
    rstMovPA.FindFirst strCriteria

    Set rstMovPA = CurrentDb.OpenRecordset("TbPrecosDespesas")
    CurValUnitAmbVerde = DLookup("[ValUnitAmbVerde]", "TbPrecosDespesas", "[Residuo]='" & Me.Residuo & "'" & " And [CNPJCliente]='" & Me.CNPJCliente & "'")
    strCriteria = "[Residuo]='" & Me.Residuo & "'" & " And [CNPJCliente]='" & Me.CNPJCliente & "'"
    rstMovPA.FindFirst strCriteria

    Set rstMovPA = CurrentDb.OpenRecordset("TbPrecosDespesas")
    CurFornecTransp = DLookup("[FornecTransp]", "TbPrecosDespesas", "[Residuo]='" & Me.Residuo & "'" & " And [CNPJCliente]='" & Me.CNPJCliente & "'")
    strCriteria = "[Residuo]='" & Me.Residuo & "'" & " And [CNPJCliente]='" & Me.CNPJCliente & "'"
    rstMovPA.FindFirst strCriteria

    Set rstMovPA = CurrentDb.OpenRecordset("TbPrecosDespesas")
    CurFornecRecep = DLookup("[FornecReceptor]", "TbPrecosDespesas", "[Residuo]='" & Me.Residuo & "'" & " And [CNPJCliente]='" & Me.CNPJCliente & "'")
    strCriteria = "[Residuo]='" & Me.Residuo & "'" & " And [CNPJCliente]='" & Me.CNPJCliente & "'"
    rstMovPA.FindFirst strCriteria

    Set db = CurrentDb()
    Set rstMovPA = CurrentDb.OpenRecordset("TbDespesas_Classe2")
    Set rstMovPA = db.OpenRecordset("TbDespesas_Classe2")
    rstMovPA.AddNew
    rstMovPA("CodDesp2Medicoes") = Me.NumOS
    rstMovPA("CNPJCliente") = Me.CNPJCliente
    rstMovPA("DtColeta") = Me.DtColetada
    rstMovPA("NumManifesto") = Me.NumManifesto
    rstMovPA("Residuo") = Me.Residuo
    rstMovPA("FornecTransp") = CurFornecTransp
    rstMovPA("FornecReceptor") = CurFornecRecep
    rstMovPA("QtdEquip") = Me.QtdColetada
    rstMovPA("UnidMed") = Me.UnidMed
    rstMovPA("ValTransp") = CurValTranspCliente
    rstMovPA("ValTranspAmbVerde") = CurValTranspAmbVerde
    rstMovPA("ValUnit") = CurValUnitCliente
    rstMovPA("ValUnitAmbVerde") = CurValUnitAmbVerde
    rstMovPA.Update
    rstMovPA.Close

    RegInserido.Value = -1
    Else
    If Me.RegInserido = 0 And Me.ClasseRes = "Classe II" And Me.TipoOS = "Medição" And Me.Serviço = "Troca" Or Me.Serviço = "Retirada" Then
    Set rstMovPA = CurrentDb.OpenRecordset("TbPrecosDespesas")
    CurValTranspCliente = DLookup("[PrTransp]", "TbPrecosDespesas", "[Residuo]='" & Me.Residuo & "'" & " And [CNPJCliente]='" & Me.CNPJCliente & "'")
    strCriteria = "[Residuo]='" & Me.Residuo & "'" & " And [CNPJCliente]='" & Me.CNPJCliente & "'"
    rstMovPA.FindFirst strCriteria

    Set rstMovPA = CurrentDb.OpenRecordset("TbPrecosDespesas")
    CurValTranspAmbVerde = DLookup("[PrTranspAmbVerde]", "TbPrecosDespesas", "[Residuo]='" & Me.Residuo & "'" & " And [CNPJCliente]='" & Me.CNPJCliente & "'")
    strCriteria = "[Residuo]='" & Me.Residuo & "'" & " And [CNPJCliente]='" & Me.CNPJCliente & "'"
    rstMovPA.FindFirst strCriteria

    Set rstMovPA = CurrentDb.OpenRecordset("TbPrecosDespesas")
    CurValUnitCliente = DLookup("[ValUnit]", "TbPrecosDespesas", "[Residuo]='" & Me.Residuo & "'" & " And [CNPJCliente]='" & Me.CNPJCliente & "'")
    strCriteria = "[Residuo]='" & Me.Residuo & "'" & " And [CNPJCliente]='" & Me.CNPJCliente & "'"
    rstMovPA.FindFirst strCriteria

    Set rstMovPA = CurrentDb.OpenRecordset("TbPrecosDespesas")
    CurValUnitAmbVerde = DLookup("[ValUnitAmbVerde]", "TbPrecosDespesas", "[Residuo]='" & Me.Residuo & "'" & " And [CNPJCliente]='" & Me.CNPJCliente & "'")
    strCriteria = "[Residuo]='" & Me.Residuo & "'" & " And [CNPJCliente]='" & Me.CNPJCliente & "'"
    rstMovPA.FindFirst strCriteria

    Set rstMovPA = CurrentDb.OpenRecordset("TbPrecosDespesas")
    CurFornecTransp = DLookup("[FornecTransp]", "TbPrecosDespesas", "[Residuo]='" & Me.Residuo & "'" & " And [CNPJCliente]='" & Me.CNPJCliente & "'")
    strCriteria = "[Residuo]='" & Me.Residuo & "'" & " And [CNPJCliente]='" & Me.CNPJCliente & "'"
    rstMovPA.FindFirst strCriteria

    Set rstMovPA = CurrentDb.OpenRecordset("TbPrecosDespesas")
    CurFornecRecep = DLookup("[FornecReceptor]", "TbPrecosDespesas", "[Residuo]='" & Me.Residuo & "'" & " And [CNPJCliente]='" & Me.CNPJCliente & "'")
    strCriteria = "[Residuo]='" & Me.Residuo & "'" & " And [CNPJCliente]='" & Me.CNPJCliente & "'"
    rstMovPA.FindFirst strCriteria

    Set db = CurrentDb()
    Set rstMovPA = CurrentDb.OpenRecordset("TbDespesas2_Medicoes")
    Set rstMovPA = db.OpenRecordset("TbDespesas_Classe2")
    rstMovPA.AddNew
    rstMovPA("CNPJCliente") = Me.CNPJCliente
    rstMovPA("DtColeta") = Me.DtColetada
    rstMovPA("NumManifesto") = Me.NumManifesto
    rstMovPA("Residuo") = Me.Residuo
    rstMovPA("FornecTransp") = CurFornecTransp
    rstMovPA("FornecReceptor") = CurFornecRecep
    rstMovPA("QtdEquip") = Me.QtdColetada
    rstMovPA("UnidMed") = Me.UnidMed
    rstMovPA("ValTransp") = CurValTranspCliente
    rstMovPA("ValTranspAmbVerde") = CurValTranspAmbVerde
    rstMovPA("ValUnit") = CurValUnitCliente
    rstMovPA("ValUnitAmbVerde") = CurValUnitAmbVerde
    rstMovPA.Update
    rstMovPA.Close

    RegInserido.Value = -1
    Else
    MsgBox "Comando inválido. A adição do Registro está fora dos critérios estabelecidos !!!", vbInformation, "Atenção !!!"
    DoCmd.CancelEvent
    End If
    End If
    Case vbNo
    MsgBox "Adição do Registro Cancelado !!!", vbInformation, "Atenção !!!"
    DoCmd.CancelEvent
    End Select
    End Sub

    Não estou conseguindo acertar o IF ele está fazendo a operação mesmo fora dos critérios estabelecidos.

    Se estes forem os critérios : RegInserido = 0; ClasseRes = "Classe II"; TipoOS = "Normal"; Serviço = "Troca" ou Serviço = "Retirada"
    Insere registro na TabDespesas_Classe2

    Se estes forem os critérios : RegInserido = 0; ClasseRes = "Classe II"; TipoOS = "Medição"; Serviço = "Troca" ou Serviço = "Retirada"
    Insere registro na TabDespesas_Medição

    Alguém poderia me dar um help ?

    Muito grato,

    Abs,

    Regis
    =>Nois
    =>Nois
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 980
    Registrado : 09/11/2012

    [Resolvido]Condicional IF com vários campos Empty Re: [Resolvido]Condicional IF com vários campos

    Mensagem  =>Nois 17/2/2021, 18:37

    mude no if esse início e nos fale

    If Me.RegInserido.value = 0

    ou

    If Me.RegInserido = false


    .................................................................................
    Att. Nois

    Se tudo não der certo... tente de novo drunken
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    [Resolvido]Condicional IF com vários campos Empty Re: [Resolvido]Condicional IF com vários campos

    Mensagem  Noobezinho 17/2/2021, 19:05

    Caso a dica do Nóis não funfe, faça o seguinte:

    Experimente isso: Coloque esses parênteses em vermelho

    If Me.RegInserido = 0 And Me.ClasseRes = "Classe II" And Me.TipoOS = "Normal" And (Me.Serviço = "Troca" Or Me.Serviço = "Retirada") Then

    Explicando, os parênteses fazem com com que o código resolva  primeiro o que tem dentro deles para depois executar o IF.
    Por isso o não funfava.


    Se não deu certo:


    Teste cada If da frase separadamente, e quando todos estiver corretos, pode unir eles.

    Ex.:

    If Me.RegInserido = 0 then  
    ....
    endif
    funfou teste outra:

    Me.ClasseRes = "Classe II"  then
    ...
    Endif

    E assim vai até o final da linha.

    { }'s

    Balem


    Última edição por Noobezinho em 18/2/2021, 11:22, editado 1 vez(es)


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3492
    Registrado : 13/12/2016

    [Resolvido]Condicional IF com vários campos Empty Re: [Resolvido]Condicional IF com vários campos

    Mensagem  Alexandre Fim 17/2/2021, 19:08

    Ola Regis,

    Na linha que está gerando erro, tente isso:

    If Nz(IsNull(Me.RegInserido), 0) = 0 And _
      Me.ClasseRes = "Classe II" And _
      Me.TipoOS = "Normal" And _
      (Me.Serviço = "Troca" Or Me.Serviço = "Retirada") Then
      'executa conforme condição acima

    End If


    .................................................................................
    Arrow  Marcar tópico como Resolvido: clique aqui
    Arrow  Postar anexos no fórum: clique aqui

    [Resolvido]Condicional IF com vários campos Setinf11
    Sistemas e Tecnologia Ltda
    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3492
    Registrado : 13/12/2016

    [Resolvido]Condicional IF com vários campos Empty Re: [Resolvido]Condicional IF com vários campos

    Mensagem  Alexandre Fim 17/2/2021, 19:10

    Ops....
    Estava elaborando a resposta quando o caro amigo @noobezinho postou!!!
    Me desculpe !!!

    rsssss


    .................................................................................
    Arrow  Marcar tópico como Resolvido: clique aqui
    Arrow  Postar anexos no fórum: clique aqui

    [Resolvido]Condicional IF com vários campos Setinf11
    Sistemas e Tecnologia Ltda
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    [Resolvido]Condicional IF com vários campos Empty Re: [Resolvido]Condicional IF com vários campos

    Mensagem  Noobezinho 17/2/2021, 19:23

    Poxa Alexandre

    Você corroborou o que eu escrevi.

    E isso não é a primeira e nem será a ultima disso acontecer,

    num lugar que tem pessoas que manja dos paranauês do amado MSAcess. Razz

    Fica na paz irmão!


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.

    Alexandre Fim gosta desta mensagem

    Alexandre Fim
    Alexandre Fim
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3492
    Registrado : 13/12/2016

    [Resolvido]Condicional IF com vários campos Empty Re: [Resolvido]Condicional IF com vários campos

    Mensagem  Alexandre Fim 17/2/2021, 19:33

    HAHAHAHA...
    Valeu Noobezinho !!
    Se eu manjasse metade do que vc manja, já tava bom demais !!!
    Abraços Mestre


    .................................................................................
    Arrow  Marcar tópico como Resolvido: clique aqui
    Arrow  Postar anexos no fórum: clique aqui

    [Resolvido]Condicional IF com vários campos Setinf11
    Sistemas e Tecnologia Ltda
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    [Resolvido]Condicional IF com vários campos Empty Re: [Resolvido]Condicional IF com vários campos

    Mensagem  Noobezinho 17/2/2021, 19:43


    Sei, kkk

    Para encerrar, vendo tuas respostas,
    sou o neófito que senta aos pés do mestre para aprender!

    { }'s

    Balem


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    avatar
    RegisBorda
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 60
    Registrado : 07/02/2014

    [Resolvido]Condicional IF com vários campos Empty Condicional IF com vários campos

    Mensagem  RegisBorda 18/2/2021, 11:18

    Prezados,

    Muito grato pela ajuda de vocês.

    Bastou eu inserir os parenteses na condição do OR dentro do If.

    Funcionou perfeitamente.

    Muito Grato,

    Abs para todos.

    Regis Borda


    Última edição por RegisBorda em 11/9/2021, 19:10, editado 1 vez(es) (Motivo da edição : Resolvido)
    Noobezinho
    Noobezinho
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 4140
    Registrado : 29/06/2012

    [Resolvido]Condicional IF com vários campos Empty Re: [Resolvido]Condicional IF com vários campos

    Mensagem  Noobezinho 18/2/2021, 11:21

    Ótimo Regis

    Peço que edite teu último post, e aperte o botão Resolvido, para fechar o tópico.

    Boa sorte!

    Balem


    .................................................................................
    A pergunta que não quer calar:
    Por quê quando alguém vem pedir ajuda e conforme o caso pedimos
    para enviar parte do projeto, não temos mais continuidade do tópico?  
    Crê que temos bolas de cristal ou está com medo que "roubemos"  a
    idéia/projeto dele?  Twisted Evil
    Se é tão bom assim...


    Ajude a ser ajudado:
    Seja objetivo na dúvida, dê os detalhes do que precisa, sem rodeios.
    Quando anexar teu projeto, diga onde está o problema, ganhamos mais tempo
    sem precisar procurar o mesmo.
    avatar
    RegisBorda
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 60
    Registrado : 07/02/2014

    [Resolvido]Condicional IF com vários campos Empty Condicional IF com vários campos

    Mensagem  RegisBorda 11/9/2021, 19:34

    Prezados,

    Muito grato pela ajuda de vocês.

    Bastou eu inserir os parenteses na condição do OR dentro do If.

    Funcionou perfeitamente.

    Muito Grato,

    Abs para todos.

    Regis Borda

    Conteúdo patrocinado


    [Resolvido]Condicional IF com vários campos Empty Re: [Resolvido]Condicional IF com vários campos

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 06:20