Em um evento ao clicar no botão salvar apresenta erro na linha do While e não consigo ver o erro.
Dim strSql5 As String, rstVerifica As DAO.Recordset
Dim strSql4 As String, rstImped As DAO.Recordset
strSql4 = "Select * From tblimpedimento WHERE coduser = int(val('" & Me.txtcoduser & "'))"
Set rstImped = CurrentDb.OpenRecordset(strSql4, dbOpenSnapshot)
If Not rstImped.EOF Then
rstImped.MoveFirst
xid = " "
xresultado = 0
Do While Not rstImped.EOF
xid = rstImped("idfuncional")
xdatainicio = txtdatainicio
xdatafim = txtdatatermino
strSql5 = "Select * From tblFerias WHERE idfuncional = '" & xvid & "' and anoreferencia = int(val('" & txtanoref & "')) and mes = '" & cmbmesref & "' AND status <> 'QUITADO' and datainicial >= cdate('" & xdatainicio & "') and datainicial <= cdate('" & xdatafim & "')" 'and datafinal cdate('" & xdatainicio & "') and cdate('" & xdatafim & "')"
Set rstVerifica = CurrentDb.OpenRecordset(strSql5, dbOpenSnapshot)
If Not rstVerifica.EOF Then
xresultado = xresultado + 1
End If
rstImped.MoveNext
If rstImped.EOF Then
rstImped.Close
rstVerifica.Close
End If
Loop
End If
Set rstImped = Nothing
Set rstVerifica = Nothing
If xresultado = 0 Then
Call UltimoReg
strSql = "Select * from tblFerias where idferias = int(val('" & txtidferias & "'))"
Set rstTemp = CurrentDb.OpenRecordset(strSql, dbOpenDynaset)
rstTemp.AddNew
rstTemp("coduser") = txtcoduser
rstTemp("idfuncional") = txtidfuncional
rstTemp("anoreferencia") = txtanoref
rstTemp("mes") = cmbmesref
rstTemp("datainicial") = txtdatainicio
rstTemp("datafinal") = txtdatatermino
rstTemp("datasolicitacao") = Now()
rstTemp("status") = "PENDENTE"
rstTemp.Update
rstTemp.Close
Set rstTemp = Nothing
MsgBox "Informações salvas com sucesso.", vbOKOnly + vbInformation, "Atenção!"
Call LimpaCampo
Call Desabilita
cmdnovo.Enabled = True
cmdnovo.SetFocus
cmdsalvar.Enabled = False
Else
MsgBox "Sua solicitação não será deferida." & vbNewLine & "Seu(s) Impedidor(es) já solicitou férias nesse período." & vbNewLine & "Favor selecionar outro mês e intervalo de data.", vbExclamation + vbOKOnly, "Atenção!"
Call LimpaCampo
Call Desabilita
cmdnovo.Enabled = True
cmdnovo.SetFocus
cmdsalvar.Enabled = False
End If
Dim strSql5 As String, rstVerifica As DAO.Recordset
Dim strSql4 As String, rstImped As DAO.Recordset
strSql4 = "Select * From tblimpedimento WHERE coduser = int(val('" & Me.txtcoduser & "'))"
Set rstImped = CurrentDb.OpenRecordset(strSql4, dbOpenSnapshot)
If Not rstImped.EOF Then
rstImped.MoveFirst
xid = " "
xresultado = 0
Do While Not rstImped.EOF
xid = rstImped("idfuncional")
xdatainicio = txtdatainicio
xdatafim = txtdatatermino
strSql5 = "Select * From tblFerias WHERE idfuncional = '" & xvid & "' and anoreferencia = int(val('" & txtanoref & "')) and mes = '" & cmbmesref & "' AND status <> 'QUITADO' and datainicial >= cdate('" & xdatainicio & "') and datainicial <= cdate('" & xdatafim & "')" 'and datafinal cdate('" & xdatainicio & "') and cdate('" & xdatafim & "')"
Set rstVerifica = CurrentDb.OpenRecordset(strSql5, dbOpenSnapshot)
If Not rstVerifica.EOF Then
xresultado = xresultado + 1
End If
rstImped.MoveNext
If rstImped.EOF Then
rstImped.Close
rstVerifica.Close
End If
Loop
End If
Set rstImped = Nothing
Set rstVerifica = Nothing
If xresultado = 0 Then
Call UltimoReg
strSql = "Select * from tblFerias where idferias = int(val('" & txtidferias & "'))"
Set rstTemp = CurrentDb.OpenRecordset(strSql, dbOpenDynaset)
rstTemp.AddNew
rstTemp("coduser") = txtcoduser
rstTemp("idfuncional") = txtidfuncional
rstTemp("anoreferencia") = txtanoref
rstTemp("mes") = cmbmesref
rstTemp("datainicial") = txtdatainicio
rstTemp("datafinal") = txtdatatermino
rstTemp("datasolicitacao") = Now()
rstTemp("status") = "PENDENTE"
rstTemp.Update
rstTemp.Close
Set rstTemp = Nothing
MsgBox "Informações salvas com sucesso.", vbOKOnly + vbInformation, "Atenção!"
Call LimpaCampo
Call Desabilita
cmdnovo.Enabled = True
cmdnovo.SetFocus
cmdsalvar.Enabled = False
Else
MsgBox "Sua solicitação não será deferida." & vbNewLine & "Seu(s) Impedidor(es) já solicitou férias nesse período." & vbNewLine & "Favor selecionar outro mês e intervalo de data.", vbExclamation + vbOKOnly, "Atenção!"
Call LimpaCampo
Call Desabilita
cmdnovo.Enabled = True
cmdnovo.SetFocus
cmdsalvar.Enabled = False
End If