2017-06-15 4 views
0

Ich habe versucht, ein Outlook-Aufgabenelement über Access und einen Laufzeitfehler 440 durch eine benutzerdefinierte Nachricht ersetzen. Dieser Fehler trat auf, wenn ein bestimmtes Feld (me.dueBy) leer war. Momentan ist der Code, den ich habe, erfolgreich beim Erstellen einer Aufgabe für Datensätze mit dueBy-Daten, aber wenn ich auf die Schaltfläche für einen Datensatz ohne Fälligkeitsdatum klicke, passiert nichts. Keine Nachrichtenbox, kein Fehler, nichts.Zugriff vba Ersetzen Laufzeitfehler durch benutzerdefinierte Nachricht

Ich brauche nur ein Meldungsfeld, das mir sagt, dass ich ein Fälligkeitsdatum benötige, um eine Aufgabe zu setzen, wenn dieses Feld leer ist.

Private Sub Command15_Click() 
Dim db As DAO.Database 
Dim rs As DAO.Recordset 
Dim DataErr As Integer 
Dim Response As Integer 

On Error GoTo err_handler 

Set db = CurrentDb 
Set rs = db.OpenRecordset("tblActions") 

Set outLookApp = CreateObject("outlook.application") 
Set OutlookTask = outLookApp.CreateItem(olTaskItem) 


With OutlookTask 
.Subject = "Action Due Date: " & Me.dueBy & " for Contract ID " & Me.contractID 
.Body = "Due date for Action: < " & Me.actionNote & " > is " & Me.dueBy & "." 
.ReminderSet = True 
.ReminderTime = Me.dueBy + TimeValue("8:00:00 AM") 
.Save 
End With 
MsgBox "Action Task has been set in Outlook successfully." 


exit_err_handler: Exit Sub 
err_handler: 
If DataErr = 440 Then 
Response = acDataErrContinue 
MsgBox "Due date is required.", vbOKOnly, "Due date Error" 
End If 
Resume exit_err_handler 

Set rs = Nothing 
Set db = Nothing 

End Sub 
+0

Ich denke, Sie müssen einen anderen Fehlerhandler innerhalb der Outlook-Task festlegen, da der Fehler von Outlook nicht zurückgegeben werden würde. – Minty

Antwort

1

DataErr und Response sind Argumente des Form_Error-Ereignis. Sie haben keine Auswirkungen auf die Fehlerbehandlung im Allgemeinen. In Ihrer Prozedur ist DataErr einfach eine Ganzzahlvariable und hat immer den Wert 0, es sei denn, Sie weisen explizit einen anderen Wert zu.

Sie müssen im Fehlerhandler nach Err.Number suchen, um bestimmte Fehlerbedingungen zu identifizieren.

+0

Vielen Dank! Es funktioniert perfekt! –