0

Outlook 2010 で VBA を使用して、連絡先リストの写真を取り込もうとしています。Outlook 2007 でこれを最後に試したときは、問題なく動作しました。しかし、Outlook 2010 にアップグレードしたところ、機能しなくなりました。Dim rec as ADODB.record set 行でエラーが発生し、Compile Error: User-defined type not defined が発生します。

これを Outlook 2010 で機能させるために変更する必要があるアイデアはありますか?

Public Sub UpdateContactPhoto()

Dim myOlApp As Outlook.Application
Dim myNamespace As Outlook.Namespace
Dim myContacts As Outlook.Items
Dim myItems As Outlook.Items
Dim myItem As Object
Set myOlApp = CreateObject("Outlook.Application")
Set myNamespace = myOlApp.GetNamespace("MAPI")

Set myContacts = myNamespace.Folders.Item("Mailbox - Thomas, Susan"). _
                 Folders.Item("Temp Contacts").Items

Dim fs As Object
Set fs = CreateObject("Scripting.FileSystemObject")
For Each myItem In myContacts
    If (myItem.Class = olContact) Then
        Dim myContact As Outlook.ContactItem
        Set myContact = myItem
        Dim strPhoto As String

        Dim rec As ADODB.Recordset
        Dim strSQL As String

        strSQL = "SELECT abcdefg from 123456 Where FullName = '" & myItem & "'"

        Set con = New ADODB.Connection
        con.Open = "Provider=SQLOLEDB;Data Source=ABC;Initial Catalog=XYZ;User ID=867;Password=5309;"
        Set rec = con.Execute(strSQL)

        If Not rec.EOF Then
            TheValue = rec.Fields(3).Value
            strPhoto = "\\picserver\EmployeePics\" & TheValue

            If fs.FileExists(strPhoto) Then
                myContact.AddPicture strPhoto
                myContact.Save
            End If
        End If
    Else

    End If
Next

End Sub
4

1 に答える 1

0

コード エディターで、ADODB ライブラリへの参照を追加する必要があります。

[ツール] -> [参照] メニューに移動します。
アクセスメニュー

Microsoft ActiveX Data Objects xx Libraryを検索します。バージョン番号は、マシンにロードされているバージョンによって異なることに注意してください。

参考文献

于 2013-04-03T16:12:09.903 に答える