After printing the report the user is asked if it was OK and then starts a procedure. The problem is that it returns an error message "3001".
The code is:
Private Sub Report_Close()
On Error GoTo Err_Report_Close
Dim db_contratos As Database
Dim rst As Recordset
Dim rst2 As Recordset
Dim sql As String
Dim num_rec As Long
Dim count As Long
Dim varReturn As Variant
Dim datahoje As Date
datahoje = Date
MsgBox datahoje, vbInformation
If MsgBox("As Fichas de Aptidão foram bem impressas?", vbYesNo, " ") = vbYes Then
DoCmd.Hourglass True
sql = "SELECT CONTRATOS.* FROM CONTRATOS "
If Forms!Abertura!Criterio <> "" Then
sql = sql + "WHERE "
sql = sql + Forms!Abertura!Criterio
End If
sql = sql + " ORDER BY CONTRATOS.[Nº Contrato];"
Set db_contratos = DBEngine.Workspaces(0).Databases(0)
Set rst = db_contratos.OpenRecordset("Q_FICHA_APTIDAO", dbOpenDynamic)
Set rst2 = db_contratos.OpenRecordset(sql)
rst.MoveLast
num_rec = rst.RecordCount
rst.MoveFirst
varReturn = SysCmd(acSysCmdInitMeter, "Updating Contratos Renovados", num_rec)
count = 0
Do While ((Not rst2.EOF) And (count <= num_rec))
Do While (Not rst.EOF)
If rst2("Nº Contrato") = rst("CONTRATOS.Nº Contrato") Then
rst.Edit
rst(TRABALHADORES.FichaAptidao) = True
rst(TRABALHADORES.datafaptidao) = Me.UltConsulta.Value
rst.Update
varReturn = SysCmd(acSysCmdUpdateMeter, count)
count = count + 1
End If
rst.MoveNext
Loop
rst.MoveFirst
rst2.MoveNext
Loop
rst.Close
rst2.Close
db_contratos.Close
varReturn = SysCmd(acSysCmdRemoveMeter)
DoCmd.Hourglass False
End If
Exit_Report_Close:
Exit Sub
Err_Report_Close:
MsgBox Err.Source & Err.HelpContext, vbCritical, "Erro a actualizar Fichas de Aptidão"
varReturn = SysCmd(acSysCmdRemoveMeter)
DoCmd.Hourglass False
Resume Exit_Report_Close
End Sub
What is missing?
Thanks in advance
The code is:
Private Sub Report_Close()
On Error GoTo Err_Report_Close
Dim db_contratos As Database
Dim rst As Recordset
Dim rst2 As Recordset
Dim sql As String
Dim num_rec As Long
Dim count As Long
Dim varReturn As Variant
Dim datahoje As Date
datahoje = Date
MsgBox datahoje, vbInformation
If MsgBox("As Fichas de Aptidão foram bem impressas?", vbYesNo, " ") = vbYes Then
DoCmd.Hourglass True
sql = "SELECT CONTRATOS.* FROM CONTRATOS "
If Forms!Abertura!Criterio <> "" Then
sql = sql + "WHERE "
sql = sql + Forms!Abertura!Criterio
End If
sql = sql + " ORDER BY CONTRATOS.[Nº Contrato];"
Set db_contratos = DBEngine.Workspaces(0).Databases(0)
Set rst = db_contratos.OpenRecordset("Q_FICHA_APTIDAO", dbOpenDynamic)
Set rst2 = db_contratos.OpenRecordset(sql)
rst.MoveLast
num_rec = rst.RecordCount
rst.MoveFirst
varReturn = SysCmd(acSysCmdInitMeter, "Updating Contratos Renovados", num_rec)
count = 0
Do While ((Not rst2.EOF) And (count <= num_rec))
Do While (Not rst.EOF)
If rst2("Nº Contrato") = rst("CONTRATOS.Nº Contrato") Then
rst.Edit
rst(TRABALHADORES.FichaAptidao) = True
rst(TRABALHADORES.datafaptidao) = Me.UltConsulta.Value
rst.Update
varReturn = SysCmd(acSysCmdUpdateMeter, count)
count = count + 1
End If
rst.MoveNext
Loop
rst.MoveFirst
rst2.MoveNext
Loop
rst.Close
rst2.Close
db_contratos.Close
varReturn = SysCmd(acSysCmdRemoveMeter)
DoCmd.Hourglass False
End If
Exit_Report_Close:
Exit Sub
Err_Report_Close:
MsgBox Err.Source & Err.HelpContext, vbCritical, "Erro a actualizar Fichas de Aptidão"
varReturn = SysCmd(acSysCmdRemoveMeter)
DoCmd.Hourglass False
Resume Exit_Report_Close
End Sub
What is missing?
Thanks in advance