good guy 22/3/2013, 15:00
Olá wmantovani,
Tente com esta sub. O campo Quantidade coloquei como não acoplado. O campo CPF pode ser uma combo com uma consulta a todos os CPF's como origem da linha.
Option Compare Database
Option Explicit
Private Sub Quantidade_AfterUpdate()
Call ComparaQuant
End Sub
Public Sub ComparaQuant()
Dim Procura As String
Dim nCPF As String 'Considerando o número do CPF no formato original (com pontos).
Dim nAno As Long
Dim Total As Integer
Const nQuant = 30
Dim sQuant As Integer
Dim sSaldo As Integer
Dim strSQL As String
Dim nMes As String
nAno = Year(Date)
nMes = UCase(MonthName(Month(Date), True))
nCPF = CPF
sQuant = Quantidade
Procura = Nz(DSum("Quantidade", "tblSaidas", "CPF= '" & nCPF & "'"))
Total = Procura + sQuant
MsgBox "A quantidade existente é " & Procura & ", mais este valor o total é " & Total & ".", vbInformation, "Controle"
sSaldo = nQuant - Procura
If Total > nQuant Then
MsgBox "Número acima do limite. Saldo restante é " & sSaldo & ".", vbCritical, "Controle"
Else
MsgBox "OK. Dentro do limite. Saldo restante é " & sSaldo & ".", vbInformation, "Controle"
DoCmd.SetWarnings False
strSQL = "INSERT INTO tblSaidas(CPF,Quantidade,Ano, Mes)VALUES('" & nCPF & "','" & sQuant & "','" & nAno & "','" & nMes & "')"
DoCmd.RunSQL strSQL
DoCmd.SetWarnings True
MsgBox "Dados Atualizados com Sucesso !!!", vbExclamation, "Controle"
End If
End Sub
CPF Quantidade Ano Mes
3.859.069 20 2013 JAN
2.451.618 10 2013 JAN
3.546.818 29 2013 JAN
2.451.618 15 2013 FEV
2.451.618 4 2013 MAR
2.451.618 1 2013 MAR