I have a database with calendar entries and want to sync both ways with outlook, the only problem is I dont get the result I require, I get duplicate entries in my database.
I am querying items in outlook, based on entryID stored in my database, if the entryID exists in outlook, then edit the database entry with the same entryID. If entryID doesn't exist in my database, add new entry into database as an appointment.
Any help, much appreciated.
I am querying items in outlook, based on entryID stored in my database, if the entryID exists in outlook, then edit the database entry with the same entryID. If entryID doesn't exist in my database, add new entry into database as an appointment.
Code:
For Each Me.objItem In objItems.Restrict(sFilter)
txtProgressText.Text = "Checking " & Numrecs & " Outlook appointments and updating Calendar"
ProgressBar1.Maximum = objItems.Count
ProgressBar1.Value = CInt(objItems.Count / objItems.Count + 1)
' search for items in database with outlook id
Dim OutLookID As String = objItem.EntryID
Dim Itemsindatabase As DataTable
Itemsindatabase = Me.Calendar.GetOutlookCalendarItems(userID, OutLookID)
If Itemsindatabase.Rows.Count = 0 Then
Dim itemid As Integer = CInt(resID)
Dim StartTime = CDate("30/12/1899" & " " & objItem.Start.ToString("H:mm:ss")) '(Format(objItem.Start, "dd/mm/yyyy") & " " & Format(objItem.Start, "hh:mm:ss.t"))
Dim EndTime = CDate("30/12/1899" & " " & objItem.End.ToString("H:mm:ss")) '(Format(objItem.End, "dd/mm/yyyy") & " " & Format(objItem.End, "hh:mm:ss.t"))
Dim ENDDATE = CDate(objItem.End.ToString("dd/MM/yyyy") & " " & "00:00:00.000")
Dim mystartdate = CDate(objItem.Start.ToString("dd/MM/yyyy") & " " & "00:00:00.000")
Dim Notes = objItem.Body
Dim Purpose = objItem.Subject
Dim allday = objItem.AllDayEvent
Dim location = objItem.Location
Dim User As String = User
Dim BookedFor As String = User
Dim myuserid = userID
Dim Bookedby As String = User
Dim UPDATED = True
Dim myOutLookID = objItem.EntryID
Dim CANCELLED = False
Dim MODIFIED = objItem.LastModificationTime
Dim Reminded = objItem.ReminderSet
Dim RemindedPeriod = objItem.ReminderMinutesBeforeStart
Me.calendarTableAdapter1.AddAppointment(itemid, StartTime, EndTime, mystartdate, _
Notes, Purpose, User, BookedFor, CANCELLED, userID, _
Bookedby, myOutLookID, UPDATED, MODIFIED, ENDDATE, _
allday, location, Reminded, RemindedPeriod)
ElseIf Itemsindatabase.Rows.Count = 1 Then
Dim itemid As Integer = CInt(resID)
Dim StartTime = CDate("30/12/1899" & " " & objItem.Start.ToString("H:mm:ss")) '(Format(objItem.Start, "dd/mm/yyyy") & " " & Format(objItem.Start, "hh:mm:ss.t"))
Dim EndTime = CDate("30/12/1899" & " " & objItem.End.ToString("H:mm:ss")) '(Format(objItem.End, "dd/mm/yyyy") & " " & Format(objItem.End, "hh:mm:ss.t"))
Dim ENDDATE = CDate(objItem.End.ToString("dd/MM/yyyy") & " " & "00:00:00.000")
Dim mystartdate = CDate(objItem.Start.ToString("dd/MM/yyyy") & " " & "00:00:00.000")
Dim Notes = objItem.Body
Dim Purpose = objItem.Subject
Dim allday = objItem.AllDayEvent
Dim location = objItem.Location
Dim User As String = User
Dim BookedFor As String = User
Dim mystaffid = userID
Dim Bookedby As String = User
Dim UPDATED = True
Dim myOutLookID = objItem.EntryID
Dim CANCELLED = False
Dim MODIFIED = Date.Now
Dim Reminded = objItem.ReminderSet
Dim RemindedPeriod = objItem.ReminderMinutesBeforeStart
Me.calendar.EditAppointments(itemid, StartTime, EndTime, mystartdate, Notes, _
Purpose, User, BookedFor, CANCELLED, _
Bookedby, UPDATED, MODIFIED, ENDDATE, _
allday, location, Reminded, RemindedPeriod, myOutLookID, userid)
next
End If