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
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