Beiträge von TBO

    Hallo nochmal.


    Kurze Info, hab mein Problem über einen anderen Lösungsansatz nun selber gelöst ;)


    Ich lasse nun beim ersten Erzeugen des Termins sowohl die ID "RecNo" als auch den Dateinamen inklusive Pfad "Filename" in eine Datenbank schreiben.


    Sobald nachträglich Änderungen stattfinden müssen, prüfe ich über die ID aus der Datenbank, ob die ID noch auf den korrekten Eintrag mit dem korrekten Betreff "Subject" verweist.
    Wenn dies nicht der Fall ist, da sich bei der automatischen Bereinigung die IDs ja ändern können, prüfe ich über den gespeicherten Dateinamen mit Pfad, ob der Eintrag noch auf den korrekten Eintrag verweist. Und sollte das auch nicht klappen, dann kommt die Schleife zum Einsatz mit der sämtliche Termine im Archiv durchsucht werden.


    Somit müsste ich zwei Lösungswege haben, damit die Änderungen auch performant ablaufen können und einen Lösungsweg, der zwar nicht mega performant ist, aber zumindest zum Ziel führt, wenn nichts anderes mehr geht.


    Trotzdem vielen Dank.


    Viele Grüße,
    Tobias

    Hallöle an alle und noch ein frohes neues Jahr ;)


    ich habe ein kleines Problem mit der DvAPI im Bezug auf bestehende Kalendereinträge.
    Es geht um folgendes:


    Ich lasse zurzeit per Excel VBA automatisiert neue Kalendereinträge in bestimmten Gruppenkalendern erzeugen.
    Das funktioniert auch schon seit Jahren wunderbar.
    Zusätzliche lasse ich mir über folgenden Quellcode schon die Auswahl der Einträge filtern, um im Anschluss über eine Schleife gewisse weitere Dinge durchführen zu lassen. Funktioniert alles wie gesagt seit Jahren bestens.

    Code
    Set oItems = oArchive.GetArchiveEntries("Default StatusTime=" & """" & Format(Range("W10").Value, "MM" & "-" & "DD" & "-" & "YYYY") & " 08:00:00 - " & Format(Range("W10").Value, "MM" & "-" & "DD" & "-" & "YYYY") & " 22:00:00" & """")


    Nun hat sich eine neue Anforderung ergeben und ich dachte, dass ich auf Grund des oben stehenden Quellcodes schon die halbe Lösung hätte und dass der Rest entsprechend easy zu erledigen wäre.......falsch gedacht :D


    Die Anforderung ist, dass ich bei bereits erzeugten Kalendereinträgen nachträglich in gewissen Fällen den Titel bzw. Betreff automatisiert anpassen lassen muss.
    Ich bin also davon ausgegangen, dass ich den oben stehenden Quellcode "nur" wie folgt anpassen müsste, um nach dem Titel/Betreff zu filtern.


    Code
    Set oItems = oArchive.GetArchiveEntries("Default Subject=" & Chr(34) & "Test" & Chr(34) & "")


    Das funktioniert aber leider nicht. Scheinbar kann man hier ausschließlich nach "StatusTime" filtern, oder?


    Also meine Frage, ob es eine Möglichkeit gibt, die Kalendereinträge die ich dursuchen möchte, vorab nach den Betreff/Titel zu filtern?


    Ich könnte natürlich alle Einträge mit einer Schleife nach dem "Subject" durchsuchen lassen, da in dem entsprechendn Gruppenkalender allerdings schon über 10000 Einträge vorhanden sind und jährlich nochmal gut 5000 Einträge hinzukommen, befürchte ich dadurch gewisse Performanceprobleme bei der Abfrage. Also würde ich die Einträge vorab möglichst auf ein paar eingrenzen.


    Wäre super, wenn mir hier jemand ein paar Tipps geben könnte, wie man das am schlauesten lösen kann.


    Vielen Dank im Voraus und beste Grüße,
    Tobias

    Kommando zurück.


    Habe meinen Fehler gefunden.


    Ich hab "vergessen" beim erzeugen des Eintrags per Makro die StopTime korrekt zu übergeben (war fälschlicherweise die gleiche zeit wie die StartTime bei mir :rolleyes: *blöd* ) und dann findet er den Termin nicht.


    Also funktioniert nun alls genau so wie ich das wollte und läuft wie ein Donnerwetter.


    Der Hinweis bezüglich "GetArchiveEntries" mit Sortierung nach "StatusTime" war die perfekte Lösung für mein Problem.


    In diesem Sinne riesen Dank für die Hilfe! :thumbup:


    Schöne Grüße


    Tobias

    So, ich hab das ganze nun mal getestet und funktioniert soweit auch alles richtig gut.


    Aber eine Sache verwirrt mich grade ziemlich.


    Wenn ich mit folgendem Quellcode:



    Einen Eintrag im David-Kalender erzeugen lasse, erscheint der genau dort wo er soll.
    Wenn ich nun aber mit


    Code
    Set oItems = oArchive.GetArchiveEntries("Default StatusTime=" & """" & format(Sheets("AV-Programm").Range("W10").Value, "MM" & "-" & "DD" & "-" & "YYYY") & " 08:00:00 - " & format(Sheets("AV-Programm").Range("W10").Value, "MM" & "-" & "DD" & "-" & "YYYY") & " 22:00:00" & """")
    
    MsgBox (oItems.Count)


    zählen und anzeigen lasse, wie viele Einträge an diesem Tag im Kalender enthalten sind sagt er mir 0.


    Lege ich nun auf dem "normalen" Weg per Doppelklick im Kalender selber einen Termin an und lasse mir mit dem selben Quellcode
    wieder die Anzahl der Einträge anzeigen sagt er mir 1 (das was ich eigentlich auch haben will).


    Warum wird mein automatisch generierter Eintrag per VB-Makro nicht gezählt/erkannt obwohl er im Kalender korrekt erscheint? ?(


    Schöne Grüße


    Tobias


    Edit:


    Selbst mit dieser Variante geht es nicht:

    Code
    Set oCalendarItem = oArchive.CreateArchiveEntry(DvCalendarItem)
    
    	oCalendarItem.Subject = "#" & format(Sheets("AV-Programm").Range("H14").Value, "00000") & " " & Sheets("AV-Programm").Range("M6").Value & " | BV: " & Sheets("AV-Programm").Range("M15").Value
    	oCalendarItem.Content = "AV-Nummer: " & format(Sheets("AV-Programm").Range("H14").Value, "00000") & vbCrLf & "Kunde: " & Sheets("AV-Programm").Range("M6").Value & vbCrLf & "BV: " & Sheets("AV-Programm").Range("M15").Value
    	oCalendarItem.LabelIndex = 10
    	oCalendarItem.SendTime = CDate(Sheets("AV-Programm").Range("W10").Value & " " & Start)
    	oCalendarItem.StopTime = CDate(Sheets("AV-Programm").Range("W10").Value & " " & Start)
    	oCalendarItem.Save

    Hallo Jens,


    danke schon mal für die schnelle Antwort.


    Mein Problem ist, dass ich nicht ganz weiß, wie ich herausfinden soll wie viele Kalendereinträge an einem bestimmten Tag schon vorhanden sind und welche Startzeiten diese Einträge haben.


    Ich hab mit der Doku bisher nur gefunden, wie ich ALLE Items zählen lassen kann und dann muss ich den Item.Type abfragen, ob es ein CalenderItem ist und sowas alles.
    Aber ich will ja nicht jedesmal erst sämtliche Einträge zählen lassen und ermitteln was es für ein Typ ist etc.
    Ich will einfach rausfinden wie viele Kalendereinträge an Tag "X" vorhanden sind und welche Startzeit der letzte Eintrag hat um die Startzeit für meinen neuen Termin zu generieren.


    Oder denke ich jetzt irgendwie zu kompliziert? ?(


    Momentan sieht mein provisorischer Code so aus:



    Der führt halt leider bisher nur so halb zum Ziel :S


    Gruß Tobias

    Hallo Leute,


    ich habe ein gewisses Problem mit der DvAPI.


    Um den Zusammenhang zu erklären fange ich einfach mal von ganz vorne an:


    Ich habe für meine Firma ein Programm im Excel mit einigen VBA-Makros getextet, um gewisse Abläufe für die Mitarbeiter zu automatisieren und zu vereinfachen.
    Nun kam der Wunsch einiger Kollegen auf, dass doch, wenn möglich, die von ihnen eigegebenen Versandtermine per Klick auf einen Button automatisch in dem entsprechenden "Versand"-Gruppenkalender im Tobit eingetragen werden.
    So weit eigentlich kein großes Problem. Das Automatische Eintragen über die DvAPI habe ich schon hinbekommen.


    Jetzt kommt das große ABER:


    Die Kollegen nutzen den Kalender etwas "seltsam". Die Termine sind lediglich auf einen Tag festgelegt und nicht auf eine Urhzeit bzw. einen Zeitraum. Und es ist so, dass die Termine, für eine "bessere" Übersicht nun automatisch an dem gewissen Tag immer untereinander erscheinen sollen. Also angenommen für Tag "X" ist noch kein Eintrag im Kalender soll der erste Termin für Tag "X" beginnen um 8 Uhr und enden um 8:30 Uhr, der zweite Termin für Tag "X" soll dann beginnen um 8:30 Uhr und enden um 9 Uhr....usw usw usw. bis maximal 22 Uhr. damit quasi jeder Termin übersichtlich untereinander erscheint. Sollten für Tag "X" die Einträge nun über 22 Uhr hinaus gehen, soll der nächste Termin wieder bei 8 Uhr beginnen und bei 8:30 Uhr enden, sodass er dann neben dem ersten Eintrag erscheint.


    Und genau da fängt mein Problem an, da ich nicht weiß, wie ich herausbekommen soll, wie viele Einträge an dem gewünschten Tag "X" eventuell schon im Kalender vorhanden sind und welche Zeiten diese haben.


    Ich hoffe ihr könnt mir einigermaßen folgen und mir einen Rat geben. Die Dokumentation der DvAPI hat mir da leider nur wenig helfen können ?(


    Also, ich hoffe, dass mir hier jemand helfen kann und dass ich hier nix doppelt gepostet hab.


    Bis denn dann und mfG und so


    Tobias :sleeping:


    P.S.: Fast vergessen..... David Version ist die FX 12.00a.2654 mit entsprechend aktuellster DvAPI32