Susan Harkins
ssharkins at setel.com
Sat Jul 14 13:09:04 CDT 2007
Just in case anybody's curious -- this is the code I ended up using to get
the internal field names -- I call them fields, but Outlook calls them
properties -- this code gave me properties I don't want, but I can deal with
that. It seems like these "fields" or properties should be separate from the
others and maybe there is a way to get at them without the other properties,
but I couldn't find it:
Sub GetFieldNames()
Dim myolApp As Application
Dim myNameSpace As Outlook.NameSpace
Dim myFolder As Outlook.MAPIFolder
Dim myItem As Outlook.MailItem
Dim prop As Object
Set myolApp = CreateObject("Outlook.Application")
Set myNameSpace = myolApp.GetNamespace("MAPI")
Set myFolder = myNameSpace.GetDefaultFolder(olFolderInbox)
Set myItem = myFolder.Items(2)
For Each prop In myItem.ItemProperties
Debug.Print prop.Name
Next
End Sub
Susan H.
-----Original Message-----
From: dba-tech-bounces at databaseadvisors.com
[mailto:dba-tech-bounces at databaseadvisors.com] On Behalf Of MartyConnelly
Sent: 14 July 2007 01:15 PM
To: Discussion of Hardware and Software issues
Subject: Re: [dba-Tech] Cycling through Outlook Items using VBA
Usually the error I see here is
adoRS("CCName") = .CCName
.CCName is Null and
adoRS("CCName")doesn't allow Nulls
in the table field
Occassionally on some models like WMI but not Outlook .CCName is defined as
an array rather than a string
adoRS("CCName") = .CCName(0)
so you pass the start of the null terminated array
Susan Harkins wrote:
>Marty, I'm using code. Here's what I'm currently using and it works
>fine, but I am confused about a few things:
>
> For intCounter = objFolder.Items.Count To 1 Step -1
>
> '-----
> 'database and table can be open, but records won't show 'up until
> you close and reopen table.
> '-----
>
> With objFolder.Items(intCounter)
> If .Class = olMail Then
> adoRS.AddNew
> adoRS("Subject") = .Subject
> adoRS("Body") = .Body
> adoRS("FromName") = .SenderName
> adoRS("ToName") = .To
> 'adoRS("FromName") = .FromName
> 'adoRS("FromAddress") = .FromAddress
> 'adoRS("FromType") = .FromType
>' adoRS("ToName") = .ToName
>' adoRS("ToAddress") = .ToAddress
>' adoRS("ToType") = .ToType
>' adoRS("CCName") = .CCName
>' adoRS("CCAddress") = .CCAddress
>' adoRS("CCType") = .CCType
>' adoRS("BCCName") = .BCCName
>' adoRS("BCCAddress") = .BCCAddress
>' adoRS("BCCType") = .BCCType
>' adoRS("Importance") = .Importance
>' adoRS("Sensitivity") = .Sensitivity
> adoRS.Update
> End If
> End With
> Next
>
>
>First, I simply can't get a For Each right -- I'm sure that's my
>misunderstanding of the object model. I'd also rather use a second For
>Each to cycle through all the current mail item's "fields" -- but can't
>get that either. I tried to hard code them, but most throw an error --
>as you can see by the comment out lines.
>
>To learn the field names, I used the export wizard to create a target
>database. I used the resulting table field names, but apparently, they
>don't match Outlook's internal names -- that just doesn't make good sense
to me.
>:( Does anyone know of a link that maps Outlook's internal field names?
>I'm totally lost.
>
>Susan H.
>
>Here is a sample of code. You'll need
>to modify it to accomplish what you want exactly.
>'From: "siebeneck yon (slc1yps)" <slc1yps at UPS.COM>
>Public Function ReadMail()
>
>
>
>
--
Marty Connelly
Victoria, B.C.
Canada
_______________________________________________
dba-Tech mailing list
dba-Tech at databaseadvisors.com
http://databaseadvisors.com/mailman/listinfo/dba-tech
Website: http://www.databaseadvisors.com
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.476 / Virus Database: 269.10.4/898 - Release Date: 2007/07/12
04:08 PM