Fråga
Hej experten!
Detta är inget problem i just PHP, men kanske en möjlig lösning med PHP/PHP-Gtk2.
Jo det är så att jag använder Office 2007: Outlook och Access. I access har jag en tabell med arbetsuppgifter + startdatum + slutdatum. Nu har jag sökt på Internet i flera dagar efter lösningar att uppdatera en befintlig kalender i Outlook 2007 så att följande infogas:
– Kort beskrivning av arbetsuppgift
– Startdatum (markerar datumet i kalendern)
– Slutdatum ( ” )
Observera att jag använder en kalender som visar ”tasks” ungefär som Google Calendar.
För nån dag sedan kom jag på att det kanske går att modifiera kalendern i Outlook med PHP (kör lokal webbserver) eller med PHP-Gtk2 så att den hämtar information från Access och kopplar detta till kalendern. Tror du detta går att genomföra? Vill helst använda PHP-Gtk2 eftersom jag älskar PHP som skriptspråk. Har i och för sig bara arbetat med MySQL innan men ODBC mod Access är väl ganska likt!?
Jag tror att Outlook lagrar kalendern i nån XML-fil eller liknande någonstans i Windows XP men kan inte komma på var.
Svar
Att använda PHP för detta ändamål är säkert möjligt men frågan är om det är den smidigaste vägen. Microsofts egna språk har väldigt enkla mappningar mot både Outlook och Access som du kan använda dig av. Med C# eller Visual Basic for Applications (VBA) blir det i princip bara en fråga om att skapa ODBC bryggan till Access, plocka ut din information och peta in den i ett Outlook-objekt (i C#-fallet, ett OlItemType.olTaskItem). Något som ytterligare talar emot PHP är att Outlook lagrar sin data i ”.pst” filer (Personal Storage Table). Det är ett format uppfunnet av Microsoft och inte fullt så lätt att modifiera som klartext-XML. Använder du Microsofts API:er slipper du på så sätt bry dig om att parsa filformatet. Tyvärr är min erfarenhet är att det kan vara svårt att automatisera saker i Outlook fullständigt, eftersom programmet skickar fram dialoger som frågar om man verkligen vill tillåta skriptet att ändra eller läsa information- detta är ju naturligtvis en säkerhetsåtgärd.