Redemption MAPITable Question

  • Thread starter Thread starter Patrick Pirtle
  • Start date Start date
P

Patrick Pirtle

Well, this seems like it should be simple. So, I assume I'm
overlooking something small.

Here's my code:


Public Sub TestMapiTable()
Dim oRecordset As Object
Dim oTable As Object

Set oTable = CreateObject("Redemption.MAPITable")
oTable.item = Outlook.Session.GetDefaultFolder(olFolderContacts).Items

Set oRecordset = oTable.ExecSQL("SELECT * from Folder")
While Not oRecordset.EOF
Debug.Print (oRecordset.Fields("Email1DisplayName").Value)
oRecordset.MoveNext
Wend
End Sub


The line beginning "Set oRecordset = oTable.ExecSQL"
gives me an error "Object doesn't support this property
or method." TIA for any help as to what I'm missing.



____________________________________________
The impossible just takes a little longer...
 
Your code works here.

Are you using a version of Redemption that supports ExecSQL? Check your
version and check the Object Browser to see if your version of Redemption
supports that method.
 
Also note that if you use "select *", Redemption will decide what names the
columns will have, and those will DASL names.
If you need Email1DisplayName, explicitly request it; there is no reason to
use * besides slowing down your network :-)

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
 
Hmmm...Well, I'm using V4.4.0.714, and have purchased
the redistributable version. Just to be sure, I uninstalled it,
downloaded the developer version from Dmitry's site, and
reinstalled it.

The MAPITable doesn't seem to have the ExecSQL
method. Any idea where I'm going wrong? Thanks.

____________________________________________
The impossible just takes a little longer...Hmmm...

Your code works here.

Are you using a version of Redemption that supports ExecSQL? Check
your version and check the Object Browser to see if your version of
Redemption supports that method.
[snip]
 
Thanks for the reply, Dmitry. I simply must be overlooking
something. I re-downloaded the developer version, uninstalled,
and reinstalled, but can't get it to work. Any idea what I'm
missing? Thanks, again, for your help.

____________________________________________
The impossible just takes a little longer...
 
Did you remove Redemption from your project references and re-add it again
to make sure VB can see the latest version?
Can you try to run the following script from OutlookSpy (click "Script
Editor", paste the script, click Run)?

set Table = CreateObject("Redemption.MAPITable")
Table.Item =Application.ActiveExplorer.CurrentFolder.Items
Set Recordset = Table.ExecSQL("SELECT Subject, ReceivedTime, EntryID from
Folder " & _
"order by ReceivedTime desc")
while not Recordset.EOF
Debug.Print(Recordset.Fields("ReceivedTime").Value & " - " &
Recordset.Fields("Subject").Value)
Recordset.MoveNext
wend


Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

Patrick Pirtle said:
Hmmm...Well, I'm using V4.4.0.714, and have purchased
the redistributable version. Just to be sure, I uninstalled it,
downloaded the developer version from Dmitry's site, and
reinstalled it.

The MAPITable doesn't seem to have the ExecSQL
method. Any idea where I'm going wrong? Thanks.

____________________________________________
The impossible just takes a little longer...Hmmm...

Your code works here.

Are you using a version of Redemption that supports ExecSQL? Check
your version and check the Object Browser to see if your version of
Redemption supports that method.
[snip]
 
Try removing the reference to Redemption as Dmitry indicated, in VB and/or
VBA and then OK the change then add it back again. See what happens.
 
Dmitry -
As always, many thanks for your help. The problem turned
out to be that, although I had installed the latest DLL into
"C:\program files\redemption", the version that was *really*
getting used was in "C:\Windows\System32". Although I
tried unregistering the one in the System32 folder, followed
by registering the one in "Program Files", I couldn't get it to
work. Ultimately, I just copied the new one over into the
System32 folder and re-registered it.

The code below worked just fine in OutlookSpy. Now,
it's back to working on my little app. Thanks, again, to
both yourself and Ken Slovak.
- Patrick
____________________________________________
The impossible just takes a little longer...


Dmitry said:
Did you remove Redemption from your project references and re-add it
again to make sure VB can see the latest version?
Can you try to run the following script from OutlookSpy (click "Script
Editor", paste the script, click Run)?

set Table = CreateObject("Redemption.MAPITable")
Table.Item =Application.ActiveExplorer.CurrentFolder.Items
Set Recordset = Table.ExecSQL("SELECT Subject, ReceivedTime, EntryID
from Folder " & _
"order by ReceivedTime
desc") while not Recordset.EOF
Debug.Print(Recordset.Fields("ReceivedTime").Value & " - " &
Recordset.Fields("Subject").Value)
Recordset.MoveNext
wend


Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

Patrick Pirtle said:
Hmmm...Well, I'm using V4.4.0.714, and have purchased
the redistributable version. Just to be sure, I uninstalled it,
downloaded the developer version from Dmitry's site, and
reinstalled it.

The MAPITable doesn't seem to have the ExecSQL
method. Any idea where I'm going wrong? Thanks.

____________________________________________
The impossible just takes a little longer...Hmmm...

Your code works here.

Are you using a version of Redemption that supports ExecSQL? Check
your version and check the Object Browser to see if your version of
Redemption supports that method.
[snip]

--
 
Since System32 is in the PATH,
regsvr32.exe redemption.dll
will register the dll in System32. Specify fully qualified path when
registering with regsvr32.exe:
regsvr32.exe "c:\program files\redemption\redemption.dll"

Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

Patrick Pirtle said:
Dmitry -
As always, many thanks for your help. The problem turned
out to be that, although I had installed the latest DLL into
"C:\program files\redemption", the version that was *really*
getting used was in "C:\Windows\System32". Although I
tried unregistering the one in the System32 folder, followed
by registering the one in "Program Files", I couldn't get it to
work. Ultimately, I just copied the new one over into the
System32 folder and re-registered it.

The code below worked just fine in OutlookSpy. Now,
it's back to working on my little app. Thanks, again, to
both yourself and Ken Slovak.
- Patrick
____________________________________________
The impossible just takes a little longer...


Dmitry said:
Did you remove Redemption from your project references and re-add it
again to make sure VB can see the latest version?
Can you try to run the following script from OutlookSpy (click "Script
Editor", paste the script, click Run)?

set Table = CreateObject("Redemption.MAPITable")
Table.Item =Application.ActiveExplorer.CurrentFolder.Items
Set Recordset = Table.ExecSQL("SELECT Subject, ReceivedTime, EntryID
from Folder " & _
"order by ReceivedTime
desc") while not Recordset.EOF
Debug.Print(Recordset.Fields("ReceivedTime").Value & " - " &
Recordset.Fields("Subject").Value)
Recordset.MoveNext
wend


Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool

Patrick Pirtle said:
Hmmm...Well, I'm using V4.4.0.714, and have purchased
the redistributable version. Just to be sure, I uninstalled it,
downloaded the developer version from Dmitry's site, and
reinstalled it.

The MAPITable doesn't seem to have the ExecSQL
method. Any idea where I'm going wrong? Thanks.

____________________________________________
The impossible just takes a little longer...Hmmm...


Ken Slovak - [MVP - Outlook] wrote:
Your code works here.

Are you using a version of Redemption that supports ExecSQL? Check
your version and check the Object Browser to see if your version of
Redemption supports that method.
[snip]
 
Back
Top