Outlook Geburtstage ganztägig

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von picoflop.

    Outlook Geburtstage ganztägig

    hallo leute

    muss für die firma, die geburtstage der mitarbeiter ins outlook eintragen.
    mein code funktioniert eigentlich ganz gut, aussert dass die termine nicht ganztägig eingetragen werden.

    kann mir jemand helfen, die lösung zu finden?

    VB.NET-Quellcode

    1. Imports System.Reflection
    2. Public Class Form1
    3. Private Declare Unicode Function GetPrivateProfileString Lib "kernel32" _
    4. Alias "GetPrivateProfileStringW" (ByVal lpApplicationName As String, _
    5. ByVal lpKeyName As String, ByVal lpDefault As String, _
    6. ByVal lpReturnedString As String, ByVal nSize As Int32, _
    7. ByVal lpFileName As String) As Int32
    8. Private Sub btnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStart.Click
    9. newAppointment()
    10. End Sub
    11. Sub newAppointment()
    12. Dim ini As String = "geburtstage.ini"
    13. Dim oItem() As String
    14. Dim anzahlItem As Integer
    15. anzahlItem = INIRead(ini, "Geburtstage", "Anzahl Feiertage", "")
    16. For i = 1 To anzahlItem
    17. Dim myOLApp As Object
    18. Dim myItem As Object
    19. myOLApp = CreateObject("Outlook.Application")
    20. myItem = myOLApp.CreateItem(1)
    21. Dim myPattern = myItem.GetRecurrencePattern
    22. Dim initext = INIRead(ini, "Geburtstage", "Geburtstag" & i, "")
    23. oItem = Split(initext, ",")
    24. With myItem
    25. .Subject = oItem(0)
    26. .BusyStatus = oItem(5)
    27. .ReminderMinutesBeforeStart = 0
    28. .ReminderSet = False
    29. End With
    30. With myPattern
    31. .RecurrenceType = 5
    32. .PatternStartDate = oItem(1)
    33. .PatternEndDate = oItem(2)
    34. End With
    35. myItem.Save()
    36. myOLApp = Nothing
    37. myItem = Nothing
    38. myPattern = Nothing
    39. Next
    40. MsgBox("Geburtstage erfolgreich hinzugefügt")
    41. End Sub
    42. Public Overloads Function INIRead(ByVal INIPath As String, _
    43. ByVal SectionName As String, ByVal KeyName As String, _
    44. ByVal DefaultValue As String) As String
    45. ' primary version of call gets single value given all parameters
    46. Dim n As Int32
    47. Dim sData As String
    48. sData = Space$(1024) ' allocate some room
    49. n = GetPrivateProfileString(SectionName, KeyName, DefaultValue, _
    50. sData, sData.Length, INIPath)
    51. If n > 0 Then ' return whatever it gave us
    52. INIRead = sData.Substring(0, n)
    53. Else
    54. INIRead = ""
    55. End If
    56. End Function
    57. End Class


    geburtstage.ini

    Quellcode

    1. [Geburtstage]
    2. Anzahl Feiertage=1
    3. Geburtstag1=Geburtstag 1,03/4/2012,03/4/2012,8:00:00 AM,5:00:00 PM,0


    vielen dank im voraus.

    grüsse
    gianni27
    Trage ins Outlook von Hand einen Geburtstag ein, so wie er erscheinen soll, und sieh Dir an, was Outlook dann abspeichert. Dies empfinde einfach nach. :thumbsup:
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Was schreibt denn Outlook selbst da rein?
    Gibt es noch andere Outlook-Datenbanken?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    hmmm, wollte das thema nicht als erledigt markieren.. :(

    outlook schreib alles richtig in der richtige datenbank,
    aber die zeit ist falsch. es wird immer die aktuelle zeit (des
    ausführens) eingetragen.

    wenn ich also das programm starte und es ist 20:00 uhr,
    trägt outlook den termin von 20:00 -21:00 ein.
    Ich denke, Du solltest erst mal ein paar Einträge von Outlook selbst machen lassen, dann versuchst Du, solche Einträge selbst zu machen (im Notepad oder so) und siehst nach, wie Outlook darauf reagiert.
    Wenn dies alles klar ist, kannst Du sdas programmtechnisch umsetzen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    vielen dank für die tipps, aber es waren keine grosse hilfen!

    @SystemUnknow
    ein termin erstellen kann ich ja, aber nit ganztägig...

    habt ihr noch nie einen ganz tägigen termin im outlook erstellt?
    die erscheinen anders als ein normaler termin mit zeit.

    kann mir keiner helfen?

    Gianni27 schrieb:

    kann mir keiner helfen?

    Ist VB das Problem oder ist Outlook das Problem?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Mein Problem:

    VB.NET-Quellcode

    1. myOLApp = CreateObject("Outlook.Application")

    Keine Typen, keinen nix. Object ...

    Kannst du das ganze nicht mit den Office Interops machen? Dann hast du wenigstens schon mal korrekte Typen etc

    zb:

    VB.NET-Quellcode

    1. Dim z As Outlook.AppointmentItem
    2. z.AllDayEvent = True

    Aha? Ein Event vom Typ "ganztägig"? Offensichtlich etwas ohne "Uhrzeit"?