Outlook Banter

Outlook Banter (http://www.outlookbanter.com/)
-   Outlook - Using Forms (http://www.outlookbanter.com/outlook-using-forms/)
-   -   Voting Button (http://www.outlookbanter.com/outlook-using-forms/12636-voting-button.html)

DavidW April 24th 06 07:25 PM

Voting Button
 
I have created a custom form and am using VBScript to manipulate the objects
on the form. The form has voting buttons added to it automatically but what I
am having difficulty with is dynamically setting the 'Have replies sent to
option'. I would like responses sent to the originator and also to another
fixed address. Can someone please provide me with some sample VBScript code
that I could use to accomplish this task?

Thanks

Hollis Paul [MVP - Outlook] April 24th 06 09:57 PM

Voting Button
 
In article ,
=?Utf-8?B?RGF2aWRX?= wrote:
. Can someone please provide me with some sample VBScript code
that I could use to accomplish this task?

Go to http://www.outlookcode.com/ and do a search on recipients. That
will give you a list of relevant entries for adding a recipient, and
then a list of relevant code samples.

--
Hollis Paul
Mukilteo, WA USA



DavidW April 25th 06 03:06 PM

Voting Button
 
Hi Paul,

I searched the site that you recommended but could not find anything that
referred directly to the option I am trying to set.

Within 'Message Options' there is a 'Have replies sent to:' checkbox, what I
want to do is to programatically check this option and to populate its field
with the two addresses.

Apologies if I have missed something obvious.


Regards

"Hollis Paul [MVP - Outlook]" wrote:

In article ,
=?Utf-8?B?RGF2aWRX?= wrote:
. Can someone please provide me with some sample VBScript code
that I could use to accomplish this task?

Go to http://www.outlookcode.com/ and do a search on recipients. That
will give you a list of relevant entries for adding a recipient, and
then a list of relevant code samples.

--
Hollis Paul
Mukilteo, WA USA




Hollis Paul [MVP - Outlook] April 25th 06 08:07 PM

Voting Button
 
In article ,
=?Utf-8?B?RGF2aWRX?= wrote:
I searched the site that you recommended but could not find anything that
referred directly to the option I am trying to set.

Within 'Message Options' there is a 'Have replies sent to:' checkbox, what I
want to do is to programatically check this option and to populate its field
with the two addresses.

I am not sure that you really want to worry about the have replies sent to
field. If you want a message to go to two destinations, you add two recipient
objects, with the email and other parameters defined within the recipient
object, to the recipients collection. Then send the message object.

Now, is your code intervening in the message after the vote has been cast?
Then just add the recipients and let it send. If you are intervening when the
original message is being sent, then add the two email addresses as text,
separated by commas, to the replies sent to field. But, doing that relies upon
the functions included in the coding for the voting action. You should look at
that.

As I recall, there is a type field in the recipient object. Check to see if a
reply-to type is defined. If it is, then just adding two objects of reply-to
type is probably the easiest way to go.

There are a lot of possibilities, depending on where in the message generation
cycle you are intervening, so perhaps you should specify that and see if it
simplifies things.

--
Hollis Paul
Mukilteo, WA USA



DavidW April 26th 06 12:02 PM

Voting Button
 
Hi Paul,

Sorry but I'm still confused. Here is the code I currently have in my form:

Public strFile

Function Item_Send()

Dim strVersion

Set cmbType = _
Item.GetInspector.ModifiedFormPages.Item("Message" ).Controls("cmbType")
Set txtVersion = _
Item.GetInspector.ModifiedFormPages.Item("Message" ).Controls("txtVersion")
strVersion = txtVersion.Value
[Subject] = "Document " & cmbType.Value & " - " & strFile & " v" & strVersion

End Function

Sub cmdBrowseFile_Click()

Dim strFilePath
Dim fso, f
Dim strOrigBody

Set objDialog = CreateObject("UserAccounts.CommonDialog")

objDialog.Filter = "All Files|*.xls;*.doc"
objDialog.InitialDir = "Y:\Comshare\Procedures and Guides\Review\"
intResult = objDialog.ShowOpen

If intResult 0 Then
strFilePath = "file://" & objDialog.FileName & ""
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFile(objDialog.FileName)
strFile = f.Name
strOrigBody = [Body]
[Body] = strFilePath & vbNewLine & _
vbNewLine & strOrigBody
End If

End Sub

I do not have any 'Have replies sent to' controls on the form. I did add one
and typed in an e-mail address but how would I be able to specify the
sender's e-mail address given that I don't know who the particular user is. I
looked at SenderEMailAddress but couldn't work out how to add this value to
the control.

Thanks for your patience!

Regards


"Hollis Paul [MVP - Outlook]" wrote:

In article ,
=?Utf-8?B?RGF2aWRX?= wrote:
I searched the site that you recommended but could not find anything that
referred directly to the option I am trying to set.

Within 'Message Options' there is a 'Have replies sent to:' checkbox, what I
want to do is to programatically check this option and to populate its field
with the two addresses.

I am not sure that you really want to worry about the have replies sent to
field. If you want a message to go to two destinations, you add two recipient
objects, with the email and other parameters defined within the recipient
object, to the recipients collection. Then send the message object.

Now, is your code intervening in the message after the vote has been cast?
Then just add the recipients and let it send. If you are intervening when the
original message is being sent, then add the two email addresses as text,
separated by commas, to the replies sent to field. But, doing that relies upon
the functions included in the coding for the voting action. You should look at
that.

As I recall, there is a type field in the recipient object. Check to see if a
reply-to type is defined. If it is, then just adding two objects of reply-to
type is probably the easiest way to go.

There are a lot of possibilities, depending on where in the message generation
cycle you are intervening, so perhaps you should specify that and see if it
simplifies things.

--
Hollis Paul
Mukilteo, WA USA




Hollis Paul [MVP - Outlook] April 26th 06 08:17 PM

Voting Button
 
In article ,
=?Utf-8?B?RGF2aWRX?= wrote:
I do not have any 'Have replies sent to' controls on the form. I did add one
and typed in an e-mail address but how would I be able to specify the
sender's e-mail address given that I don't know who the particular user is.

If you look at the fields in the recipient object, using the Object Explorer
(?) In the script editor, you will find that each recipient object has a type
field. Here is how it is defined:

MailItem recipient: one of the following OlMailRecipientType constants: olBCC,
olCC, olOriginator, or olTo.

So, all you need to do is loop through the recipient objects until you find the
one whose Type field is set to olOriginator. Then pick off the address field
and add it to your string. Remember: VBScript still does not automatically
assign values to constant, so you need to look in the olMailRecipientType to
get the value for olOriginator.

--
Hollis Paul
Mukilteo, WA USA



Hollis Paul [MVP - Outlook] April 26th 06 08:17 PM

Voting Button
 
In article ,
=?Utf-8?B?RGF2aWRX?= wrote:
Function Item_Send()

Dim strVersion

Set cmbType = _
Item.GetInspector.ModifiedFormPages.Item("Message" ).Controls("cmbType")
Set txtVersion = _
Item.GetInspector.ModifiedFormPages.Item("Message" ).Controls("txtVersion")
strVersion = txtVersion.Value
[Subject] = "Document " & cmbType.Value & " - " & strFile & " v" & strVersion

End Function

OK, it would appear that you are expecting your code to run after the receiver
has voted and is sending the reply back. In this case you want to add the
recipient object of type olOriginator back as a new recipient object and change
the type to olTo (see my other message for details). Then add a second
recipient object of type olTo with the fixed address that you want to use. Then
do a resolve as shown in this reply by Ken Slovak, except change the resolve to
ResolveAll.

***************************************
From: "Ken Slovak - [MVP - Outlook]"
Subject: Item.Recipients.Add Not Working for me
Date: Wed, 26 Apr 2006 09:54:12 -0400
Newsgroups: microsoft.public.outlook.program_forms


Does it work better if you instantiate a Recipient object and then resolve
it?

Set oRecip = ")
oRecip.Resolve

--
Ken Slovak
[MVP - Outlook]
http://www.slovaktech.com
Author: Absolute Beginner's Guide to Microsoft Office Outlook 2003
Reminder Manager, Extended Reminders, Attachment Options
http://www.slovaktech.com/products.htm
****************************************

Tip to the wise. The code line

Set oRecip = ")

creates a default recipient object. You want to use an explicit process:

dim omyRecipient
dim olTo = 0 '(or whatever it is)
set myoRecipient = Item.Recipients.Add
omyRecipient.Address = "
omyRecipient.Type = olTo

Another word to the wise. If you are going to be doing a significant amount of
Outlook forms design and programming, go to www.dimastr.com and buy a copy of
OutlookSpy and Outlook Redemption. It will save you a huge amount of trouble in
the future.



--
Hollis Paul
Mukilteo, WA USA



DavidW April 27th 06 12:36 PM

Voting Button
 
Hi Paul,

I think I must be doing something completely wrong! I've added the following
code to try and capture the voting button event:

Function Item_CustomAction(ByVal Action, ByVal NewItem)

Msgbox Action.Name

End Function

But this does not fire, all I get is the default 'Do you want to edit the
message before sending' prompt. I am trying to capture the event so that I
can test adding the recipients. When I publish the form all of the other code
works just not the Msgbox.

Any ideas?

Thanks
David

"Hollis Paul [MVP - Outlook]" wrote:

In article ,
=?Utf-8?B?RGF2aWRX?= wrote:
Function Item_Send()

Dim strVersion

Set cmbType = _
Item.GetInspector.ModifiedFormPages.Item("Message" ).Controls("cmbType")
Set txtVersion = _
Item.GetInspector.ModifiedFormPages.Item("Message" ).Controls("txtVersion")
strVersion = txtVersion.Value
[Subject] = "Document " & cmbType.Value & " - " & strFile & " v" & strVersion

End Function

OK, it would appear that you are expecting your code to run after the receiver
has voted and is sending the reply back. In this case you want to add the
recipient object of type olOriginator back as a new recipient object and change
the type to olTo (see my other message for details). Then add a second
recipient object of type olTo with the fixed address that you want to use. Then
do a resolve as shown in this reply by Ken Slovak, except change the resolve to
ResolveAll.

***************************************
From: "Ken Slovak - [MVP - Outlook]"
Subject: Item.Recipients.Add Not Working for me
Date: Wed, 26 Apr 2006 09:54:12 -0400
Newsgroups: microsoft.public.outlook.program_forms


Does it work better if you instantiate a Recipient object and then resolve
it?

Set oRecip = ")
oRecip.Resolve

--
Ken Slovak
[MVP - Outlook]
http://www.slovaktech.com
Author: Absolute Beginner's Guide to Microsoft Office Outlook 2003
Reminder Manager, Extended Reminders, Attachment Options
http://www.slovaktech.com/products.htm
****************************************

Tip to the wise. The code line

Set oRecip = ")

creates a default recipient object. You want to use an explicit process:

dim omyRecipient
dim olTo = 0 '(or whatever it is)
set myoRecipient = Item.Recipients.Add
omyRecipient.Address = "
omyRecipient.Type = olTo

Another word to the wise. If you are going to be doing a significant amount of
Outlook forms design and programming, go to www.dimastr.com and buy a copy of
OutlookSpy and Outlook Redemption. It will save you a huge amount of trouble in
the future.



--
Hollis Paul
Mukilteo, WA USA




Hollis Paul [MVP - Outlook] April 28th 06 05:37 AM

Voting Button
 
In article ,
=?Utf-8?B?RGF2aWRX?= wrote:
Any ideas?

No. I've never programmed for the voting buttons.

You can do your test by returning False from your Item_send event,
which will prevent the item from sending, and then just go to a button
and run your test code in the button click event.

--
Hollis Paul
Mukilteo, WA USA



Sue Mosher [MVP-Outlook] May 3rd 06 03:14 PM

Voting Button
 
You'd need to work with the ReplyRecipients collection, which works just like the main Recipients collection, e.g. to add two recipients:

Item.ReplyRecipients.Add ")
strUserAddress = Application.Session.CurrentUser.Address
If strUserAddress "" Then
Item.ReplyRecipients.Add strUserAddress
End If

--
Sue Mosher, Outlook MVP
Author of Configuring Microsoft Outlook 2003
http://www.turtleflock.com/olconfig/index.htm
and Microsoft Outlook Programming - Jumpstart for
Administrators, Power Users, and Developers
http://www.outlookcode.com/jumpstart.aspx

"DavidW" wrote in message ...
I have created a custom form and am using VBScript to manipulate the objects
on the form. The form has voting buttons added to it automatically but what I
am having difficulty with is dynamically setting the 'Have replies sent to
option'. I would like responses sent to the originator and also to another
fixed address. Can someone please provide me with some sample VBScript code
that I could use to accomplish this task?

Thanks



All times are GMT +1. The time now is 09:05 AM.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 2.4.0
Copyright ©2004-2006 OutlookBanter.com