0x80040109 fout wanneer Outlook Object Model wordt gebruikt met een IMAP-account in Outlook 2013
Symptomen
Wanneer u het Outlook-objectmodel gebruikt om een UserProperty-object toe te voegen aan een e-mailbericht voor een IMAP-account in Microsoft Outlook 2013, ontvangt u het volgende foutbericht:
Uitvoeringsfout '-2147221239 (80040109)': de bewerking kan niet worden uitgevoerd omdat het bericht is gewijzigd.
Opmerking
- Dit probleem treedt alleen op wanneer u de code snel achter elkaar uitvoert om de tweede keer een UserProperty-object toe te voegen aan hetzelfde e-mailbericht.
- Dit probleem treedt niet op wanneer het voorbeeldvenster is uitgeschakeld of als u schakelt tussen e-mailberichten voordat u de code voor de tweede keer uitvoert.
Tijdelijke oplossing
Als u dit probleem wilt omzeilen, sluit u alle items nadat u de code hebt uitgevoerd om een UserProperty-object toe te voegen aan een e-mailbericht. Of voer de code slechts één keer uit voor hetzelfde e-mailbericht. Dit probleem treedt op omdat het bewerken en opslaan van een e-mailbericht meerdere keren voor een IMAP-account inefficiënt is. Wanneer een e-mailbericht wordt opgeslagen, moet het als een volledig nieuw e-mailbericht naar de server worden geüpload en wordt het oorspronkelijke e-mailbericht verwijderd. Als het voorbeeldvenster is ingeschakeld, blijft het oorspronkelijke e-mailbericht in het geheugen, terwijl het onderliggende e-mailbericht wordt gewijzigd vanwege de meerdere uploads.
Voer de volgende stappen uit om dit probleem te reproduceren:
Selecteer een e-mailbericht in de berichtenlijst.
Zorg ervoor dat het voorbeeldvenster is ingeschakeld.
Voer de volgende code voor hetzelfde e-mailbericht twee keer snel achter elkaar uit:
Function ReproCode() Dim oExp As Outlook.Explorer Dim oSel As Outlook.Selection Dim oMail As Outlook.MailItem Dim oProp As UserProperty Dim oProps As UserProperties Set oExp = Application.ActiveExplorer Set oSel = oExp.Selection For iCount = 1 To oSel.Count If oSel.Item(iCount).Class = OlObjectClass.olMail Then Set oMail = oSel.Item(iCount) Set oProps = oMail.UserProperties Set oProp = oProps.Add("TextProp", olText, False, 1) oProp.Value = "Sample Text" oMail.Save End If Next iCount Set oExp = Nothing Set oSel = Nothing Set oMail = Nothing Set oProp = Nothing Set oProps = Nothing End Function
Opmerking
Microsoft verstrekt programmeervoorbeelden alleen ter illustratie, zonder expliciete of impliciete garantie. daaronder mede begrepen, maar niet beperkt tot impliciete garanties met betrekking tot de verkoopbaarheid en/of geschiktheid voor een bepaald doel. In dit artikel wordt ervan uitgegaan dat u bekend bent met de programmeertaal VBScript, alsmede met de hulpprogramma's waarmee procedures worden gemaakt en waarmee fouten in procedures worden opgespoord. Ondersteuningsmedewerkers van Microsoft kunnen helpen bij de uitleg over de functionaliteit van een bepaalde procedure. Deze medewerkers zullen de voorbeelden echter niet aanpassen om extra functionaliteit toe te voegen of om procedures te maken die aan uw specifieke eisen voldoen.