I'm assuming that you can only have one of each DELEGATEID on your TBLEVENTDELEGATE. If not you are not necessarily going to get the same result every time you perform this dlookup. If you do indeed have only one DELEGATEID on this table you have to alter your dlookup function.
Code:
estartdate = DLookup("[EventStartDate]", "tblEventDelegate", """ & [DelegateID] = " & Me.DelegateID & """")
You basically have to encapsulate the " marks in your dlookup function for it to correctly build the statement plus you have to have opening and closing " marks to capture me.delegateID. So in this case you want an opening " mark in your criteria (""") then a denotation that you're going to add form field name (" before the first &), then at the end you want to close your form field name (" after the second &) and then insert a closing " mark (""") before the closing paren.
After that if you change your ABS function to be 14 days instead of 28 you should be ok.
EDIT: This is the code I used and it works as expected.
Code:
Dim estartdate As Date
estartdate = DLookup("[EventStartDate]", "tblEventDelegate", """ & [DelegateID] = " & Me.DelegateID & """")
If Abs(DateDiff("d", estartdate, Me.cmboEvents.Column(1))) <= 14 Then
MsgBox "You have scheduled this delegate onto an event within 2 weeks"
Else
MsgBox "Event greater than two weeks away"
End If
End Sub