468,167 Members | 1,951 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 468,167 developers. It's quick & easy.

Deleting an Outlook Appointment in VBA

101 100+
I am trying to delete an outlook appointment based upon the value of variables for Location, Start Date, Start Time & Name (Subject)

I am at a loss as where to start on declarations for Outlook Objects. I found some code on the Web and tried to alter it. Could you please help with the declarations for finding the appointment in Outlook. My rubbish attempt at coding is as follows:-
Expand|Select|Wrap|Line Numbers
  1. Dim olApp As Outlook.Application
  2.   Dim objAppts As Outlook.AppointmentItem
  3.  
  4.   Dim AP_Date As Date
  5.   Dim AP_Start_Time As Date
  6.   Dim AP_Location As String
  7.   Dim AP_Subject As String
  8.  
  9.   Dim OutlookStartTime As Date
  10.   Dim OutlookLocation As String
  11.   Dim OutlookSubject As String
  12.   Dim sFilter As Variant
  13.  
  14.   AP_Date = Module1.oldDate
  15.   AP_Start_Time = Module1.oldStart
  16.   AP_Location = Module1.oldLocation
  17.   AP_Subject = Module1.oldName
  18.  
  19.   OutlookStartTime = CDate(AP_Date & " " & AP_Start_Time)
  20.   OutlookLocation = (AP_Location)
  21.   OutlookSubject = (AP_Subject)
  22.  
  23.   Set olApp = CreateObject("Outlook.Application")
  24.   Set objAppointments = objAppts.DeleteItem(olAppointmentItem)
  25.  
  26.   sFilter = "[Start] = '" & OutlookStartTime & _
  27.     "' And [Location] = '" & OutlookLocation & "' " & _
  28.     " And [Subject] = '" & OutlookSubject & "'"
  29.  
  30.   Set objAppointments = objAppointments.Items.Find(sFilter)
  31.  
  32.   If Not TypeName(objAppointments) = "Nothing" Then
  33.     MsgBox ("Appointment Found")
  34.     'objAppointment.Delete
  35.   End If
  36.  
  37.   Set objAppointments = Nothing
  38.   Set objAppts = Nothing
  39.   Exit Sub
If I can have some help on declaration I could possibly work out the rest.

Many thanks in advance
Oct 28 '11 #1

✓ answered by ADezii

Here is some that that I simplified and adapted to your general needs. It will DELETE All Outlook Appointments where the Subject = 'Corporate', the Location = 'HQ', and which occur after 11/15/2011. The Msgbox will then tell you how many Appointments were actually Deleted.
  1. Set a Reference to the Microsoft Outlook X.X Object Library.
  2. Execute the following Code substituting you own Values for Lines 11 to 13.
    Expand|Select|Wrap|Line Numbers
    1. Dim objOutlook As Outlook.Application
    2. Dim objNamespace As Outlook.NameSpace
    3. Dim objFolder As Outlook.MAPIFolder
    4. Dim objAppointment As Outlook.AppointmentItem
    5. Dim lngDeletedAppointements As Long
    6. Dim strSubject As String
    7. Dim strLocation As String
    8. Dim dteStartDate As Date
    9.  
    10. '******************************** Set Criteria for DELETION here ********************************
    11. strSubject = "Corporate"
    12. strLocation = "HQ"
    13. dteStartDate = #11/15/2011#
    14. '************************************************************************************************
    15.  
    16. Set objOutlook = Outlook.Application
    17. Set objNamespace = objOutlook.GetNamespace("MAPI")
    18. Set objFolder = objNamespace.GetDefaultFolder(olFolderCalendar)
    19.  
    20. For Each objAppointment In objFolder.Items
    21.   If objAppointment.Subject = strSubject And objAppointment.Location = strLocation And _
    22.      objAppointment.Start > dteStartDate Then
    23.        objAppointment.Delete
    24.          lngDeletedAppointements = lngDeletedAppointements + 1
    25.   End If
    26. Next
    27.  
    28. MsgBox lngDeletedAppointements & " appointment(s) DELETED.", vbInformation, "DETETE Appointments"
  3. I'm sure that you will now be able to adapt it to your specific needs.

20 15587
NeoPa
32,042 Expert Mod 16PB
Cyd, you need to post the question with care. Not just dump code in and expect us to work out what the question should be. Describe what you're actually doing and where you get stuck. The declarations seem fine to me, but you don't really provide a question to work with.

General tips on items and how they fit into the Outlook class structure can be found by using Object Explorer within the VBA IDE. You can do it from Access too, but probably easier to do it in the native application. See Debugging in VBA for how to invoke and have a play.
Oct 28 '11 #2
Cyd44
101 100+
Ok NeoPa Sorry if I am not asking correctly. I will try to explain better.

I have successfully managed to create appointments in Outlook using the following sub:-
Expand|Select|Wrap|Line Numbers
  1. 'Add a new appointment.
  2.  
  3.                 Dim objOutlook As Outlook.Application
  4.                 Dim objAppt As Outlook.AppointmentItem
  5.                 'Dim objRecurPattern As Outlook.RecurrencePattern
  6.  
  7.                 Set objOutlook = CreateObject("Outlook.Application")
  8.                 Set objAppt = objOutlook.CreateItem(olAppointmentItem)
  9.  
  10.                 With objAppt
  11.                     .Start = Me!BookStartDate & " " & Me!BookTime
  12.                     .Duration = Me!TImeConversion
  13.                     .Subject = Me!BookName
  14.                     .Location = Me!BookLocation
  15.                     If Not IsNull(Me!BookNotes) Then .Body = Me!BookNotes
  16.  
  17.                     .Save
  18.                     .Close (olSave)
  19.                     End With
  20.                     'Release the AppointmentItem object variable.
  21.                     Set objAppt = Nothing
  22.  
  23.  
  24.             'Release the Outlook object variable.
  25.               Set objOutlook = Nothing
  26.               MsgBox " Changes have been Saved and  New Appointment Added to Outlook!"
I now wish to turn this around so that find an appointment by using the unique identfiers which are Location, StartDate, BookTime, Location and BookName. I want to delete this appointment if found.

I am unsure as to how I call outlook to find and delete the appointment using the above variables as I do not know the correct variable decalartions for Outlook (IE Setting Object required)

I hope this clarifies my position. I can see now that giving you code that is not working has confused things. When I try to run the delete sub I keep getting a mismatch error on declaring the Start date as both StartDate & StartTime. I do not actually understand why we cannot set the date and time separately.
Oct 28 '11 #3
NeoPa
32,042 Expert Mod 16PB
It wasn't the code that confused things. It was the lack of any discernable question or even explanation of why the code is there at all. I'm sure I've linked you before to how to ask questions and what to do when posting code that isn't working as expected. The line number and error message are necessary as well as explaining what is going on. All these important elements are again missing from the question. You should also include the code that defines the procedure like the header so that when you refer to a 'Delete Sub' I don't go through all the code again just to find that nothing is identified as a 'Delete Sub'. I guess it's your first bit of code, but I frankly ought not to be spending my time guessing what you should be telling me. I guess also you're referring to line #19, but all the lines are numbered. If you use the numbers that are provided I don't need to try to read your mind.

Assuming then, that it is indeed line #19 of your first posted code that is causing some unspecified problem, I would suggest that you breakpoint your code at line #19 and see what the string representations are of [AP_Date] and [AP_Start_Time] (Debugging in VBA may help with this). I have no way of knowing what data you have in there so I can only guess. If they are a valid date and time stored in Date format though, you may get away with :
Expand|Select|Wrap|Line Numbers
  1. OutlookStartTime = AP_Date + AP_Start_Time
Remember, Include the procedure declaration when posting a procedure (Not always necessary for small snippets but when posting a whole procedure it's very important). Especially if you want to refer to the named procedure in your explanation.
Oct 29 '11 #4
Cyd44
101 100+
Back to this problem having first worked out how to capture pre-edit data.

My problem here is with lack of knowledge on the syntax required to connect to Outlook and find an appointment for deletion. I have comented the code so that you can see what I am trying to achieve here. Am getting a complie error on GetdefaultFolder and I am not sure of my logic for the declarations surounding Outlook.

I hope this question makes sense as I think you can see what I am trying to do within the code. All the record field variables work fine and the values are as expected. My major problem is trying to understand the object requirements for OutLook.
My code is as follows:-
Expand|Select|Wrap|Line Numbers
  1. Delete_Old_Appointment:
  2. ' The Following variable assignments will pick-up the old booking data prior to the change in order
  3. ' to find and delete an Outlook booking. Variables have been caputured by the Sub Form_Current()procedure
  4. ' and declared Public in the basMyEmpID Standard Code Module.
  5.  
  6.     Dim goldLocation As String
  7.     Dim goldStart As Date
  8.     Dim goldDate As Date
  9.     Dim goldName As String
  10.  
  11.     goldLocation = basMyEmpID.gstroldLocation
  12.     goldStart = basMyEmpID.gdteoldStart
  13.     goldDate = basMyEmpID.gdteoldDate
  14.     goldName = basMyEmpID.gstroldName
  15.  
  16.     MsgBox (goldLocation & goldStart & goldDate & goldName) ' Take Out when fully developed
  17.  
  18. ' Connection to Outlook Variables
  19.  
  20.     Dim objOlook As outlook.Application
  21.     Dim objFolder As outlook.MAPIFolder
  22.     Dim objOAppt As outlook.AppointmentItem
  23.     Dim objOItems As outlook.Items
  24.     Dim appStart As Variant
  25.     Dim strFilter As String
  26.  
  27.     Set objOlook = CreateObject("Outlook.Application")
  28.     Set objFolder = objOlook.GetNamespace("MAPI").GetDefaultFolder
  29.     Set objOAppt = objFolder.Items
  30.     Set objOItems = objOAppt.Item
  31.  
  32.  ' Set the Filter String to find Outlook Appointment
  33.  
  34.     appStart = goldDate & " " & goldStart ' Joins Date & Time together for OLook
  35.     MsgBox (appStart)
  36.     strFilter = "[Start]= " '" appStart & "'" & " And [Location]= " & "'" & goldLocation & "'" & " And [Subject]= " & "'" & goldName & "'"
  37.  
  38.  ' Find the outlook appointment based upon the above strFilter condition
  39.  
  40.     Set objOAppt = objOItems.Find(strFilter)
  41.     MsgBox (strFilter)
  42.     ' objOAppt.Delete
  43.     '.Close (olSave)
  44.     'Release the AppointmentItem object variable.
  45.     Set objOAppt = Nothing
  46.  
  47.     'Release the Outlook object variable.
  48.     Set objOlook = Nothing
  49.     MsgBox (" Old Appointment Has been deleted in Outlook!")
  50.     GoTo Add_New_Appointment
  51. Exit Sub
Could you please advise how the outlook objects should look?
Oct 30 '11 #5
NeoPa
32,042 Expert Mod 16PB
I'm still struggling to understand what you're asking for Cyd. Still no line numbers to refer to. However, my best guess is that you're asking about the code in lines #20 through #30, as these seem to declare and set the Outlook objects.

Lines #20 through #25 :
objOlook, objFolder, objOAppt, objOItems and strFilter all appear to be declared perfectly. appStart is declared as a Variant, no doubt in line with what's been said earlier, but the way it is assigned (Line #34) stops any possibility of its being used to determine if a value exists or not as a Null. Line #34 will always return a valid string - in all circumstances.

Lines #27 through #30 :
#27 and #28 look fine, but lines #29 and #30 appear to be assigning each other's values. IE They should probably read :
Expand|Select|Wrap|Line Numbers
  1. Set objOItems = objFolder.Items
  2. Set objOAppt = objOItems(???)
Of course you probably don't know yet which item in objOItems() to select.

Line #36 (Bonus) :
It is not necessary to concatenate literal strings together using the format "xxx" & "yyy". The result is much easier and more logically achieved by simply using a single string "xxxyyy".
Expand|Select|Wrap|Line Numbers
  1. strFilter = "[Start]= '" & appStart & "' AND [Location]= '" & goldLocation & "' AND [Subject]= '" & goldName & "'"
Oct 30 '11 #6
Cyd44
101 100+
Sorry again if I am confusing you. I am realy struggling with the logic of declaring Outlook objects when I want to find an appointment (rather than create one).

I do not understand how to declare the Set obj variables I am afraid.

I have connected successfully to create an appointment but do not know what I need to do to just open the calendar and find one.

Is there not a generic set of object setting to open appointments to find one.?

I suppose my question should be

How do you set the objects to connect to outlook in order to find an appointment to delete.? I have played around so much now I am totally confused. when I search the web I cannot find a diffinitive answer and have seen so many variations....non of which answer my basic problem.

I have noted where you suggest change and have done so but what would I set objOAppt to....I have not a clue I am afraid
Oct 30 '11 #7
NeoPa
32,042 Expert Mod 16PB
It's so much easier to work with posts that are as clear as this one Cyd. Let's see what we can do with it.

First let's check out Application Automation for some of the basics. Frankly, your basics are already not too far off the mark, but it doesn't hurt to synchronise.

Assuming you're up on all the points from there then, your code seems to get the Outlook.Application object ok (Remember it is not visible at this stage). Next it gets the default MAPI folder (This will probably be the Inbox folder). If you want the Calendar folder specifically, then you can use either of :
Expand|Select|Wrap|Line Numbers
  1. Set objFolder = objOlook.GetNamespace("MAPI").GetDefaultFolder(olFolderCalendar)
  2. Set objFolder = objOlook.GetNamespace("MAPI").Folders("Calendar")
After that your new code is fine for setting the Items object but then I suspect you'd need to use its Find() method.

Expand|Select|Wrap|Line Numbers
  1. Set objOItems = objFolder.Items
  2. Set objOAppt = objOItems.Find(strFilter)
Of course, your code doesn't currently have any strFilter set, so you should probably be looking to set it up first, to match your requirements. At this point I need to point you at the Context-Sensitive Help article again as you need to look for yourself. There is a (pretty large) list in there of the available fields that can be matched and it seems none of the values you are searching on have a match to any of the available fields.
Oct 30 '11 #8
NeoPa
32,042 Expert Mod 16PB
It appears I misread the help page. The list was one of invalid properties to check rather than one of the only valid properties. Nevertheless, look through it yourself for most benefit. It gives some examples and how to avoid the more obvious errors.

NB. Choose (click on) Find method as it applies to the Items object.
Oct 30 '11 #9
Cyd44
101 100+
Hi NeoPa,

Have looked at all of your recomendation and am still no wiser for my dilema I am afraid. I have already been successful in Creating an appointment on Outlook and there are many items on the web dealing with creation. However, I cannot find any items dealing specifically with deleting an appointment which I find strange as I would have thought this was as normal as Creating.

My Creation script does not bother with MAPI as we are on a single laptop. When I have tried to set MAPI variables for deletion it complains so I have left this out.

I have reached the stage where I have used the same 2 variables for Creating access to Outlook and Appointments as I have used when I add an appointment (the add works fine). This is the coding I have for the deletion now
Expand|Select|Wrap|Line Numbers
  1.  Dim objOlook As Outlook.Application
  2.                 Dim objOAppt As Outlook.AppointmentItem
  3.                 Dim objOItem As Outlook.AppointmentItem
  4.                 Dim appStart As Variant
  5.                 Dim strFilter As String
  6.  
  7.  
  8.                 Set objOlook = CreateObject("Outlook.Application")
  9.                 Set objOItem = objOlook.CreateItem(olAppointmentItem)
  10.  
  11.  ' Set the Filter String to find Outlook Appointment
  12.  
  13.                 appStart = goldDate & " " & goldStart ' Joins Date & Time together for OLook
  14.  
  15.  
  16.                 strFilter = "[Start]= '" & appStart & "' AND [Location]= '" & goldLocation & "' AND [Subject]= '" & goldName & "'"
  17.                 If IsNull(strFilter) Then
  18.                 MsgBox ("No App")
  19.                 Else
  20.                    If IsNull(objOAppt) Then
  21.                    MsgBox ("No OL Appointement found")
  22.                    Else
  23.                    Set objOAppt = objOItem.Items.Find(strFilter)
  24.                    'objOAppt.Delete
  25.                    MsgBox (objOAppt)
  26.                    End If
  27.                 End If
  28.  
On running the code it complains at the
"Set objOAppt = objOItem.Items.Find(strFilter)" giving an error 438 - Object doesnt support this method or property

I have trapped the variables up to this line and they appear to be OK.

Would you have any ideas on this please. I still think it is my Syntax and, in particular, the use of the .Find statement. Had tried to use your suggestion earlier and it did not like this at all. The Context help does not really help I am afraid.
Nov 1 '11 #10
ADezii
8,799 Expert 8TB
Here is some that that I simplified and adapted to your general needs. It will DELETE All Outlook Appointments where the Subject = 'Corporate', the Location = 'HQ', and which occur after 11/15/2011. The Msgbox will then tell you how many Appointments were actually Deleted.
  1. Set a Reference to the Microsoft Outlook X.X Object Library.
  2. Execute the following Code substituting you own Values for Lines 11 to 13.
    Expand|Select|Wrap|Line Numbers
    1. Dim objOutlook As Outlook.Application
    2. Dim objNamespace As Outlook.NameSpace
    3. Dim objFolder As Outlook.MAPIFolder
    4. Dim objAppointment As Outlook.AppointmentItem
    5. Dim lngDeletedAppointements As Long
    6. Dim strSubject As String
    7. Dim strLocation As String
    8. Dim dteStartDate As Date
    9.  
    10. '******************************** Set Criteria for DELETION here ********************************
    11. strSubject = "Corporate"
    12. strLocation = "HQ"
    13. dteStartDate = #11/15/2011#
    14. '************************************************************************************************
    15.  
    16. Set objOutlook = Outlook.Application
    17. Set objNamespace = objOutlook.GetNamespace("MAPI")
    18. Set objFolder = objNamespace.GetDefaultFolder(olFolderCalendar)
    19.  
    20. For Each objAppointment In objFolder.Items
    21.   If objAppointment.Subject = strSubject And objAppointment.Location = strLocation And _
    22.      objAppointment.Start > dteStartDate Then
    23.        objAppointment.Delete
    24.          lngDeletedAppointements = lngDeletedAppointements + 1
    25.   End If
    26. Next
    27.  
    28. MsgBox lngDeletedAppointements & " appointment(s) DELETED.", vbInformation, "DETETE Appointments"
  3. I'm sure that you will now be able to adapt it to your specific needs.
Nov 1 '11 #11
Cyd44
101 100+
Hi ADezii

Once again, you are a star, this worked fine and did not find an appointment as I did not have one there. I am sure it will delete one once I have added it. Nonetheless your scipt proved spot on. I have been pulling my hair out over this as I could not work out the logic for the decalarations and the finding of an appointment that match.

I have set you as Best answer and thank you so much
Nov 1 '11 #12
ADezii
8,799 Expert 8TB
@Cyd44:
You are quite welcome. I actually pulled some Code off the Internet and modified it, so I do not deserve all the credit here. Glad it all worked out for you.

P.S. - NeoPa put much more time into this Thread than I did, he deserves the majority of the credit.
Nov 1 '11 #13
Cyd44
101 100+
Oops Adezii, I spoke too soon. The script appears to look in the calendar but does not delete one that I created in line with the variables.
I suspect it something to do with the .Start Outlook variable. I have declared my dteStartDate as StartDate & " " & StartTime. I know that the variable comes back as (say) 04/10/2011 09:00:00 but I think that Outlook may be interpreting this in a different way because I have read somewhere that we need to supress seconds?
Is there a .Variable within Outlook for the Start Time or must we put Date & time together to creat .Start?
Nov 1 '11 #14
ADezii
8,799 Expert 8TB
Expand|Select|Wrap|Line Numbers
  1. 'Extract the Date Component only
  2. AND objApointment.Start = CDate(Format$(dteStartDate, "Short Date"))
Nov 1 '11 #15
Cyd44
101 100+
Fraid not ADezii,

I am not getting any errors, have also tried taking out all reference to the .Start date and used just Subject & Location but it still comes back with Deleted 0 Appointments. This is crazy isnt it? Here is the code I am using which has been cahnged to the code you kindly gave me (I have made reference to .Start as a comment to see if this was the problem. Result of running the code is 0 Appointments deleted.

I have a calendar Appointment created for Room 9, Cyd and 4/10/2011 for 9;00 - 10:3O and a table appointment for the same room and name for 9AM to 10:30AM. I am trying to amend the booking so the above details are the details captured for the old booking and this appointment is to be deleted from outlook. It doesnt delet it however. With no error it is diffilcult to know what is wrong.

Expand|Select|Wrap|Line Numbers
  1. Delete_Old_Appointment:
  2.  
  3. ' The Following variable assignments will pick-up the old booking data prior to the change in order
  4.     ' to find and delete an Outlook booking. Variables have been caputured by the Sub Form_Current()procedure
  5.     ' and declared Public in the basMyEmpID Standard Code Module.
  6.  
  7.             Dim goldLocation As String
  8.             Dim goldStart As Date
  9.             Dim goldDate As Date
  10.             Dim goldName As String
  11.  
  12.             goldLocation = basMyEmpID.gstroldLocation
  13.             goldStart = basMyEmpID.gdteoldStart
  14.             goldDate = basMyEmpID.gdteoldDate
  15.             goldName = basMyEmpID.gstroldName
  16.  
  17.  
  18.  
  19. ' Connection to Outlook Variables
  20.  
  21.  
  22.                 Dim objOlook As Outlook.Application
  23.                 Dim objNamespace As Outlook.NameSpace
  24.                 Dim objFolder As Outlook.MAPIFolder
  25.                 Dim objAppointment As Outlook.AppointmentItem
  26.                 Dim objOAppt As Outlook.Items
  27.                 Dim lngDeletedAppointements As Long
  28.                 Dim strSubject As String
  29.                 Dim strLocation As String
  30.                 Dim dteStartDate As Date
  31.  
  32. '******************************** Set Criteria for DELETION here ********************************
  33.                 strSubject = goldName
  34.                 strLocation = goldLocation
  35.                 dteStartDate = goldDate & " " & goldStart ' goldDate is Short Date goldStart is medium time
  36.  
  37.                 MsgBox (strSubject & dteStartDate & strLocation)
  38. '************************************************************************************************
  39.  
  40.               Set objOlook = CreateObject("Outlook.Application")
  41.              Set objNamespace = objOlook.GetNamespace("MAPI")
  42.              Set objFolder = objNamespace.GetDefaultFolder(olFolderCalendar)
  43.              For Each objAppointment In objFolder.Items
  44.  
  45.  
  46.             If objAppointment.Subject = strSubject And objAppointment.Location = strLocation Then _
  47.             'objAppointment.Start = CDate(Format$(dteStartDate, "Short Date"))
  48.  
  49.  
  50.  
  51.              objAppointment.Delete
  52.              lngDeletedAppointements = lngDeletedAppointements + 1
  53.             End If
  54. Next
  55.  
  56. MsgBox lngDeletedAppointements & " appointment(s) DELETED.", vbInformation, "DETETE Appointments"
  57.  
  58. 'I 'm sure that you will now be able to adapt it to your specific
  59.  
  60.               GoTo Ender
  61.               Exit Sub
  62.  
  63.  
Nov 1 '11 #16
ADezii
8,799 Expert 8TB
Add the following Debugging Code to verify Object and variable Values (Lines 2, 3, and 4):
Expand|Select|Wrap|Line Numbers
  1. For Each objAppointment In objFolder.Items
  2.   Debug.Print "Subject: " & objAppointment.Subject & vbCrLf & "Location: " & _
  3.                objAppointment.Location & vbCrLf & "Start: " & objAppointment.Start
  4.   Debug.Print "Variable Values ==> " & " | " & strSubject & " | " & strLocation & " | " & dteStartDate
  5.     If objAppointment.Subject = strSubject And objAppointment.Location = strLocation Then _
  6.        objAppointment.Delete
  7.          lngDeletedAppointements = lngDeletedAppointements + 1
  8.     End If
  9.   Debug.Print "************************************************************************"
  10. Next
Sample OUTPUT:
Expand|Select|Wrap|Line Numbers
  1. Subject: Corporate
  2. Location: HQ
  3. Start: 12/26/2010
  4. Variable Values ==>  | Corporate | HQ | 11/15/2011
  5. *****************************************************
  6. Subject: Corporate
  7. Location: HQ
  8. Start: 11/1/2011
  9. Variable Values ==>  | Corporate | HQ | 11/15/2011
  10. *****************************************************
  11. Subject: Subject 1
  12. Location: Location 1
  13. Start: 11/18/2011
  14. Variable Values ==>  | Corporate | HQ | 11/15/2011
  15. *****************************************************
  16. Subject: Subject 2
  17. Location: Location 2
  18. Start: 11/21/2011
  19. Variable Values ==>  | Corporate | HQ | 11/15/2011
  20. *****************************************************
Nov 1 '11 #17
NeoPa
32,042 Expert Mod 16PB
@Cyd
It seems ADezii is helping you along now, which is fine. For me to proceed I would need you to junk most of what you'd done since my last post as I feel you have skipped important steps in the process of understanding what you're building. Trying out new things is fine, but skipping from one thing to another (which itself is not thoroughly tested and understood) within the thread of a logic process seems to me to be an unreliable approach. Only sound logic will lead you to your goal, and that does not include unfounded stabs in the dark. It can seem slow and laborious, but if you deviate from that path you often find yourself back at the start point.

I'll leave you in ADezii's very capable hands but I'll still monitor the thread in case I can help in any other ways.
Nov 2 '11 #18
Cyd44
101 100+
Hi ADezii,

Panick over, I manged to get it working at last. I assigned the StartDate and Start time together outside of the If objAppointment statement and simply joined them as
dteStartDate = StartDate + StartTime then called them within the If stayemen as = dteStartDate. This worked like a treat.

I am sorry for all of the toing and froing, and NeoPa is quite correct, I was fumbling in the dark instead of standing back. The truth is, my problem was in understanding how to bind to Outlook properly to find and delete an appointment and there were no examples to be found anywhere.

I do thank you so much as your help as been invaluable.
I would also like to thank NeoPa and promise him I will think about my question in future before asking.

Thanks a bunch guys.
Nov 2 '11 #19
NeoPa
32,042 Expert Mod 16PB
It's a long learning process Cyd, and you're clearly developing as time passes. Keep it up and I'll be asking you questions soon :-)
Nov 2 '11 #20
mnorton123
1 Bit
Have to agree, that's outstanding, very slick, works perfectly.
4 Weeks Ago #21

Post your reply

Sign in to post your reply or Sign up for a free account.

Similar topics

2 posts views Thread by Kamyk | last post: by
reply views Thread by Georges | last post: by
6 posts views Thread by chuckdfoster | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.