Public Sub Execute_SQL_SP(ByRef SPname As String, _
ByRef StatusMessage As String, _
ByRef TimeoutSecs As Integer, _
ByRef ErrMsgTitle As String)
Dim qdf As QueryDef
Dim txt As String
Dim minutes As Integer
On Error GoTo Error_Execute_SQL_SP
Set qdf = CurrentDb().CreateQueryDef("")
txt = StatusMessage & " - timeout "
If TimeoutSecs > 60 Then
minutes = Int(TimeoutSecs / 60)
txt = txt & CStr(minutes) & " minutes "
If TimeoutSecs - 60 * minutes <> 0 Then
txt = txt & CStr(TimeoutSecs - 60 * minutes) & " seconds"
End If
Else
txt = txt & CStr(TimeoutSecs) & " seconds"
End If
Application.Echo True, txt
DoCmd.Hourglass True
With qdf
.Connect = GetConnect()
.ReturnsRecords = False
.sql = "Exec " & SPname
.ODBCTimeout = TimeoutSecs
End With
qdf.Execute
Exit_Execute_SQL_SP:
Set qdf = Nothing
Application.Echo True
DoCmd.Hourglass False
Exit Sub
Error_Execute_SQL_SP:
txt = "An error occurred: " & Str(Err.Number) & _
vbCrLf & Err.Description
MsgBox txt, vbCritical + vbOKOnly, ErrMsgTitle
Resume Exit_Execute_SQL_SP
End Sub