Form on Reply or Forward

G

Guest

All,

I have created a form and I want that form to work on replies and forwards
just as it does when it is first created. How?

Thanks,
Jeff Riley
 
S

Sue Mosher [MVP-Outlook]

Set the Forward and Reply actions on the (Actions) page of the form, in design mode, to your published custom formm.

--
Sue Mosher, Outlook MVP
Author of Configuring Microsoft Outlook 2003

and Microsoft Outlook Programming - Jumpstart for
Administrators, Power Users, and Developers
 
G

Guest

What if the form is published to my personal form library. When the recipient
clicks on reply they get the following error:

"The form you selected could not be displayed."

I don't have permission to my company's organazational forms library. Is
there a way that I can send the form to be used for reply to be sent by the
email.

Thanks for your help,

Amir
 
S

Sue Mosher [MVP-Outlook]

You would have to make a prior arrangement with the recipient to send them the form as an .oft or .fdm file with instructions on how to publish or install it.

In other words, if you can't publish to the Org Forms library, you shouldn't plan on using a custom reply form.

--
Sue Mosher, Outlook MVP
Author of Configuring Microsoft Outlook 2003

and Microsoft Outlook Programming - Jumpstart for
Administrators, Power Users, and Developers
 
G

Guest

Thanks for your quick reply Sue.

How else can I send a form to a recipient and ask them to fill it out and
send it back to me withouth needing to publish or install the form to their
own personal form library.

by the way, would you please instruct me on how to create .oft or fdm file
and how to ask the users to publish or install the form.

I'm looking for the easiest way this is possible.

Many thanks for your help.

Amir
 
G

Guest

Sue,

Just a quick question. Do you have that noted somewhere in the book. I
must admit I have been jumping around the book so I may have missed that.

Thanks as always,
Jeff
 
G

Guest

Sue,

I am close, but now it is telling me after I select reply, that some of my
objects are missing. I am getting "Object required: 'my variable name' Line
No:212". I declared these variables as global outside of any subs and
functions. I am guessing that these are not getting re-initialized when I
select reply or forward. Do I have to declare all of them again inside the
Item_Reply, and Item_Forward functions?

Thanks,
Jeff
 
S

Sue Mosher [MVP-Outlook]

Outlook forms really aren't suitable for that kind of task, especially if the version is Outlook 2003 SP2. A web site form would be better for gathering data.

To create an .oft form template file, with Word as your editor, choose File | Save As. The user would then run the form (in OL2003 SP2, using Tools | Forms | Choose Form) and choose Tools | Forms | Publish Form to publish it.

--
Sue Mosher, Outlook MVP
Author of Configuring Microsoft Outlook 2003

and Microsoft Outlook Programming - Jumpstart for
Administrators, Power Users, and Developers
 
S

Sue Mosher [MVP-Outlook]

I don't think it's in the book anywhere, probably because I didn't play around with forwarding custom items until later.

It won't be in the next book either, because custom message forms are pretty much extinct as of Outlook 2007 + Exchange 2007, except possibly for some specialized applications like distributing holidays or other "settings" and some "poor person's workflow" scenarios. InfoPath 2007 forms are by far the better choice for ad hoc data gathering like Amir is trying to do.

--
Sue Mosher, Outlook MVP
Author of Configuring Microsoft Outlook 2003

and Microsoft Outlook Programming - Jumpstart for
Administrators, Power Users, and Developers
 
S

Sue Mosher [MVP-Outlook]

You're declaring the variables, but where are you instantiating them?

Show the statement on line 212 and enough preceding statements for us to know where the variable values come from.

--
Sue Mosher, Outlook MVP
Author of Configuring Microsoft Outlook 2003

and Microsoft Outlook Programming - Jumpstart for
Administrators, Power Users, and Developers
 
G

Guest

Where should the users save the .oft file that I send them with an email as
an attachment so to be then able to publish it into their personal library. I
mean how can they do the following:

"The user would then run the form (in OL2003 SP2, using Tools | Forms |
Choose Form) and choose Tools | Forms | Publish Form to publish it. "

If they don't have it on their system.

Amir
 
S

Sue Mosher [MVP-Outlook]

Where they save the .oft file doesn't matter at all. Any file folder will do.

--
Sue Mosher, Outlook MVP
Author of Configuring Microsoft Outlook 2003

and Microsoft Outlook Programming - Jumpstart for
Administrators, Power Users, and Developers
 
G

Guest

Thanks for your reply, Sue.

I'm trying to set the "When posting to this folder, use:" property of a
folder I've created under my inbox, but I'm not successful, would you please
let me know what I'm doing wrong:

I first created a fold with the following information:

Name: Custom Form Folder

Folder Conatains: Mail and Post Items

I then tried to set the following property on the Custom form folder
properties:

"When posting to this folder, use: My Custom Form"

I had previously publish "My Custom Form" to my personal form library on
outlook.

but I'm getting the following error: You cannot create an item of this type.

I'm trying to create a folder which contains items which were made using my
custom form.

By the way once this problem is solve. How do you save the filled forms to
this folder.

Thanks for your help in advance,

Amir





When posting to this folder, use: My Custom Form
 
G

Guest

Is it possible to send the "form definition with item" for the forms to be
used for reply. What if you are using the same form for both send and reply?
Will it work then? Can we set the actions for reply to use the same form as
the send?

Thanks for your help in advance,

Amir
 
S

Sue Mosher [MVP-Outlook]

I don't understand what you're trying to do with that folder. A message form is meant to be sent, not saved; it cannot be the default form for a folder. Furthermore, in order to work properly, a message form must be published to the Personal Forms or Organizational Forms library.
--
Sue Mosher, Outlook MVP
Author of Configuring Microsoft Outlook 2003

and Microsoft Outlook Programming - Jumpstart for
Administrators, Power Users, and Developers
 
S

Sue Mosher [MVP-Outlook]

If you want to use the same form for send and reply, then (a) the form must be published on both sender and recipient end, either in Personal Forms or Organizational Forms, and b) the publish form must be set on the (Actions) page in design mode as the form to be used for the Reply action.

You're still dealing with the same issue -- the recipient must have the ***published*** form definition or the reply won't use the custom form.

--
Sue Mosher, Outlook MVP
Author of Configuring Microsoft Outlook 2003

and Microsoft Outlook Programming - Jumpstart for
Administrators, Power Users, and Developers
 
G

Guest

I've already publish my custom form to personal forms library. I read
somewhere that we can set the "When posting to this folder, use:" property on
a folder so that all items saved in that particular folder would have the
same user interface. Is this not true?

Amir
 
S

Sue Mosher [MVP-Outlook]

No, that's not quite true. That property applies to *new* items (not all items) in non-message folders. It does not apply to your scenario.

--
Sue Mosher, Outlook MVP
Author of Configuring Microsoft Outlook 2003

and Microsoft Outlook Programming - Jumpstart for
Administrators, Power Users, and Developers
 
G

Guest

Ok, see code below,

Option Explicit

Dim m_blnIsNew
Dim m_ExcluYesCB
Dim m_ExcluAppCB
Dim m_ExcluntegCB
Dim m_OERNone
Dim m_OERRefData
Dim m_OERDealE
Dim m_OEReDown
Dim m_OERSNAP
Dim m_OERMDS
Dim m_OEREDI
Dim m_OEREDW
Dim m_OERUSEx
Dim m_OERALPS
Dim m_OERTAS
Dim m_OERPR4
Dim m_OERXI
Dim m_OERManu
Dim m_OERVitria
Dim m_OEROlym
Dim m_OERKinder
Dim m_TestIntegration
Dim m_TestString
Dim m_TestUAT
Dim m_TestTraining
Dim m_TestSoak
Dim m_TestStress
Dim m_TestOther
Dim m_TestText
Dim m_AppCodeRem
Dim m_ILCodeRem
Dim m_IMOSDatabase
Dim m_ODMDatabase
Dim m_ORMDatabase
Dim m_UEHDatabase
Dim m_SEQDatabase
Dim m_AuditDatabase

Function Item_Open()
Call InitForm
End Function

Function Item_Reply(ByVal Response)
Call InitForm
End Function

Function Item_ReplyAll(ByVal Response)
Call InitForm
End Function

Function Item_Forward(ByVal ForwardItem)
Call InitForm
End Function

Sub InitForm()
If Item.Size = 0 Then
m_blnIsNew = True
Else
m_blnIsNew = False
End If

Set m_ExcluYesCB =
Item.GetInspector.ModifiedFormPages("Message").Controls("CheckBox42")
Set m_ExcluAppCB =
Item.GetInspector.ModifiedFormPages("Message").Controls("CheckBox4")
Set m_ExcluntegCB =
Item.GetInspector.ModifiedFormPages("Message").Controls("CheckBox5")
Set m_OERNone =
Item.GetInspector.ModifiedFormPages("Message").Controls("CheckBox13")
Set m_OERRefData =
Item.GetInspector.ModifiedFormPages("Message").Controls("CheckBox14")
Set m_OERDealE =
Item.GetInspector.ModifiedFormPages("Message").Controls("CheckBox15")
Set m_OEReDown =
Item.GetInspector.ModifiedFormPages("Message").Controls("CheckBox21")
Set m_OERSNAP =
Item.GetInspector.ModifiedFormPages("Message").Controls("CheckBox22")
Set m_OERMDS =
Item.GetInspector.ModifiedFormPages("Message").Controls("CheckBox16")
Set m_OEREDI =
Item.GetInspector.ModifiedFormPages("Message").Controls("CheckBox17")
Set m_OEREDW =
Item.GetInspector.ModifiedFormPages("Message").Controls("CheckBox20")
Set m_OERUSEx =
Item.GetInspector.ModifiedFormPages("Message").Controls("CheckBox23")
Set m_OERALPS =
Item.GetInspector.ModifiedFormPages("Message").Controls("CheckBox24")
Set m_OERTAS =
Item.GetInspector.ModifiedFormPages("Message").Controls("CheckBox26")
Set m_OERPR4 =
Item.GetInspector.ModifiedFormPages("Message").Controls("CheckBox28")
Set m_OERXI =
Item.GetInspector.ModifiedFormPages("Message").Controls("CheckBox29")
Set m_OERManu =
Item.GetInspector.ModifiedFormPages("Message").Controls("CheckBox25")
Set m_OERVitria =
Item.GetInspector.ModifiedFormPages("Message").Controls("CheckBox27")
Set m_OEROlym =
Item.GetInspector.ModifiedFormPages("Message").Controls("CheckBox18")
Set m_OERKinder =
Item.GetInspector.ModifiedFormPages("Message").Controls("CheckBox19")
Set m_TestIntegration =
Item.GetInspector.ModifiedFormPages("Message").Controls("CheckBox6")
Set m_TestString =
Item.GetInspector.ModifiedFormPages("Message").Controls("CheckBox7")
Set m_TestUAT =
Item.GetInspector.ModifiedFormPages("Message").Controls("CheckBox8")
Set m_TestTraining =
Item.GetInspector.ModifiedFormPages("Message").Controls("CheckBox9")
Set m_TestSoak =
Item.GetInspector.ModifiedFormPages("Message").Controls("CheckBox10")
Set m_TestStress =
Item.GetInspector.ModifiedFormPages("Message").Controls("CheckBox11")
Set m_TestOther =
Item.GetInspector.ModifiedFormPages("Message").Controls("CheckBox12")
Set m_TestText =
Item.GetInspector.ModifiedFormPages("Message").Controls("TextBox4")
Set m_AppCodeRem =
Item.GetInspector.ModifiedFormPages("Message").Controls("CheckBox40")
Set m_ILCodeRem =
Item.GetInspector.ModifiedFormPages("Message").Controls("CheckBox41")
Set m_IMOSDatabase =
Item.GetInspector.ModifiedFormPages("Message").Controls("CheckBox30")
Set m_ODMDatabase =
Item.GetInspector.ModifiedFormPages("Message").Controls("CheckBox31")
Set m_ORMDatabase =
Item.GetInspector.ModifiedFormPages("Message").Controls("CheckBox32")
Set m_UEHDatabase =
Item.GetInspector.ModifiedFormPages("Message").Controls("CheckBox34")
Set m_SEQDatabase =
Item.GetInspector.ModifiedFormPages("Message").Controls("CheckBox33")
Set m_AuditDatabase =
Item.GetInspector.ModifiedFormPages("Message").Controls("CheckBox35")

If m_blnIsNew And Item.UserProperties.Find("Request Number").Value = ""
Then
Item.UserProperties.Find("Request Number").Value = Chr(64 +
Month(Now)) & _

AddLeadingZeroUnderTen(Day(Now)) & _
Chr(64 +
right(Year(Now), 2)) & _
"-" & Chr(65 +
Hour(Now)) & _

AddLeadingZeroUnderTen(Minute(Now)) & _

AddLeadingZeroUnderTen(Second(Now))
Else
Call SetExclusivity
Call SetEnvironmentsRequested
Call SetDatabaseSetup
Call SetEnvironmentListRequestType
End If
End Sub

Sub Item_CustomPropertyChange(ByVal Name)
Select Case Name
Case "Exclusivity Yes"
Call SetExclusivity
Case "Exclusivity No"
Call SetExclusivity
Case "Environments Requested None"
Call SetEnvironmentsRequested
Case "Database Setup None"
Call SetDatabaseSetup
Case "Environment List"
Call SetEnvironmentListRequestType
Case "Request Type"
Call SetEnvironmentListRequestType
End Select
End Sub

Function SetExclusivity()
If Item.UserProperties.Find("Exclusivity No").Value = "True" Then
Item.UserProperties.Find("Exclusivity Yes").Value = "False"
m_ExcluYesCB.Enabled = 0
m_ExcluAppCB.Enabled = 0
m_ExcluntegCB.Enabled = 0
Item.UserProperties.Find("Exclusivity Application").Value = "False"
Item.UserProperties.Find("Exclusivity Integration Layer").Value =
"False"
Else
Item.UserProperties.Find("Exclusivity Yes").Value = "True"
m_ExcluYesCB.Enabled = 1
m_ExcluAppCB.Enabled = 1
m_ExcluntegCB.Enabled = 1
End If
End Function

Function SetEnvironmentsRequested()
If Item.UserProperties.Find("Environments Requested None").Value =
"False" Then
m_OERRefData.Enabled = 1
m_OERDealE.Enabled = 1
m_OEReDown.Enabled = 1
m_OERSNAP.Enabled = 1
m_OERMDS.Enabled = 1
m_OEREDI.Enabled = 1
m_OEREDW.Enabled = 1
m_OERUSEx.Enabled = 1
m_OERALPS.Enabled = 1
m_OERTAS.Enabled = 1
m_OERPR4.Enabled = 1
m_OERXI.Enabled = 1
m_OERManu.Enabled = 1
m_OERVitria.Enabled = 1
m_OEROlym.Enabled = 1
m_OERKinder.Enabled = 1
Else
m_OERRefData.Enabled = 0
m_OERDealE.Enabled = 0
m_OEReDown.Enabled = 0
m_OERSNAP.Enabled = 0
m_OERMDS.Enabled = 0
m_OEREDI.Enabled = 0
m_OEREDW.Enabled = 0
m_OERUSEx.Enabled = 0
m_OERALPS.Enabled = 0
m_OERTAS.Enabled = 0
m_OERPR4.Enabled = 0
m_OERXI.Enabled = 0
m_OERManu.Enabled = 0
m_OERVitria.Enabled = 0
m_OEROlym.Enabled = 0
m_OERKinder.Enabled = 0
Item.UserProperties.Find("Environments Requested RefData").Value =
"False"
Item.UserProperties.Find("Environments Requested Deal Entr").Value =
"False"
Item.UserProperties.Find("Environments Requested eDown").Value =
"False"
Item.UserProperties.Find("Environments Requested SNAP").Value =
"False"
Item.UserProperties.Find("Environments Requested MDS").Value =
"False"
Item.UserProperties.Find("Environments Requested EDI").Value =
"False"
Item.UserProperties.Find("Environments Requested EDW").Value =
"False"
Item.UserProperties.Find("Environments Requested US Expo").Value =
"False"
Item.UserProperties.Find("Environments Requested ALPS").Value =
"False"
Item.UserProperties.Find("Environments Requested TAS").Value =
"False"
Item.UserProperties.Find("Environments Requested SAP PR4").Value =
"False"
Item.UserProperties.Find("Environments Requested SAP XI").Value =
"False"
Item.UserProperties.Find("Environments Requested Manugist").Value =
"False"
Item.UserProperties.Find("Environments Requested Vitria").Value =
"False"
Item.UserProperties.Find("Environments Requested Olympic").Value =
"False"
Item.UserProperties.Find("Environments Requested Kinder").Value =
"False"
End If
End Function

Function SetDatabaseSetup()
If Item.UserProperties.Find("Database Setup None").Value = "False" Then
m_IMOSDatabase.Enabled = 1
m_ODMDatabase.Enabled = 1
m_ORMDatabase.Enabled = 1
m_UEHDatabase.Enabled = 1
m_SEQDatabase.Enabled = 1
m_AuditDatabase.Enabled = 1
Else
m_IMOSDatabase.Enabled = 0
m_ODMDatabase.Enabled = 0
m_ORMDatabase.Enabled = 0
m_UEHDatabase.Enabled = 0
m_SEQDatabase.Enabled = 0
m_AuditDatabase.Enabled = 0
Item.UserProperties.Find("Database Setup IMOS").Value = "False"
Item.UserProperties.Find("Database Setup ODM").Value = "False"
Item.UserProperties.Find("Database Setup ORM").Value = "False"
Item.UserProperties.Find("Database Setup UEH").Value = "False"
Item.UserProperties.Find("Database Setup SEQ").Value = "False"
Item.UserProperties.Find("Database Setup Audit").Value = "False"
End If
End Function

Function SetEnvironmentListRequestType()
If Item.UserProperties.Find("Request Type").Value = "Testing Request" Then
m_TestOther.Enabled = 1
m_TestText.Enabled = 1
m_TestText.BackColor = &h80000005
If Item.UserProperties.Find("Environment List").Value = "Development" Then
m_TestIntegration.Enabled = 0
m_TestString.Enabled = 0
m_TestUAT.Enabled = 0
m_TestTraining.Enabled = 0
m_TestSoak.Enabled = 0
m_TestStress.Enabled = 0
Item.UserProperties.Find("Testing Integration").Value = "False"
Item.UserProperties.Find("Testing String").Value = "False"
Item.UserProperties.Find("Testing UAT").Value = "False"
Item.UserProperties.Find("Testing Training").Value = "False"
Item.UserProperties.Find("Testing Soak").Value = "False"
Item.UserProperties.Find("Testing Stress").Value = "False"
End If
If Item.UserProperties.Find("Environment List").Value = "Integration /
Migration" Then
m_TestString.Enabled = 1
m_TestIntegration.Enabled = 1
m_TestUAT.Enabled = 0
m_TestTraining.Enabled = 0
m_TestSoak.Enabled = 0
m_TestStress.Enabled = 0
Item.UserProperties.Find("Testing UAT").Value = "False"
Item.UserProperties.Find("Testing Training").Value = "False"
Item.UserProperties.Find("Testing Soak").Value = "False"
Item.UserProperties.Find("Testing Stress").Value = "False"
End If
If Item.UserProperties.Find("Environment List").Value = "UAT / Training" Then
m_TestUAT.Enabled = 1
m_TestTraining.Enabled = 1
m_TestIntegration.Enabled = 0
m_TestString.Enabled = 0
m_TestSoak.Enabled = 0
m_TestStress.Enabled = 0
Item.UserProperties.Find("Testing Integration").Value = "False"
Item.UserProperties.Find("Testing String").Value = "False"
Item.UserProperties.Find("Testing Soak").Value = "False"
Item.UserProperties.Find("Testing Stress").Value = "False"
End If
If Item.UserProperties.Find("Environment List").Value = "Technical
Testing" Then
m_TestSoak.Enabled = 1
m_TestStress.Enabled = 1
m_TestIntegration.Enabled = 0
m_TestString.Enabled = 0
m_TestUAT.Enabled = 0
m_TestTraining.Enabled = 0
Item.UserProperties.Find("Testing Integration").Value = "False"
Item.UserProperties.Find("Testing String").Value = "False"
Item.UserProperties.Find("Testing UAT").Value = "False"
Item.UserProperties.Find("Testing Training").Value = "False"
End If
Else
m_TestIntegration.Enabled = 0
m_TestString.Enabled = 0
m_TestUAT.Enabled = 0
m_TestTraining.Enabled = 0
m_TestSoak.Enabled = 0
m_TestStress.Enabled = 0
m_TestOther.Enabled = 0
m_TestText.Enabled = 0
m_TestText.BackColor = &h80000016
Item.UserProperties.Find("Testing Integration").Value = "False"
Item.UserProperties.Find("Testing String").Value = "False"
Item.UserProperties.Find("Testing UAT").Value = "False"
Item.UserProperties.Find("Testing Training").Value = "False"
Item.UserProperties.Find("Testing Soak").Value = "False"
Item.UserProperties.Find("Testing Stress").Value = "False"
Item.UserProperties.Find("Testing Text").Value = ""
End If
End Function

Function Item_Send()
Dim blnOKToSend
Dim recip
Dim oRecip
blnOKToSend = False
For Each recip in Item.Recipients
If recip.Address = "/o=BP/ou=USAHOU/cn=Users/cn=rilej3" Then
blnOKToSend = True
Exit For
End If
Next
If blnOKToSend = False Then
Set oRecip = Item.Recipients.Add("(e-mail address removed)")
oRecip.Resolve
blnOKToSend = True
Set oRecip = Nothing
End If
Item_Send = blnOKToSend
Set blnOKToSend = Nothing
Set recip = Nothing
Call SetNothing
End Function

Function Item_Close()
Call SetNothing
End Function

Function AddLeadingZeroUnderTen(strNum)
If CInt(strNum) < 10 Then
strNum = "0" & strNum
End If
AddLeadingZeroUnderTen = strNum
End Function

Function SetNothing()
Set m_blnIsNew = Nothing
Set m_ExcluYesCB = Nothing
Set m_ExcluAppCB = Nothing
Set m_ExcluntegCB = Nothing
Set m_OERNone = Nothing
Set m_OERRefData = Nothing
Set m_OERDealE = Nothing
Set m_OEReDown = Nothing
Set m_OERSNAP = Nothing
Set m_OERMDS = Nothing
Set m_OEREDI = Nothing
Set m_OEREDW = Nothing
Set m_OERUSEx = Nothing
Set m_OERALPS = Nothing
Set m_OERTAS = Nothing
Set m_OERPR4 = Nothing
Set m_OERXI = Nothing
Set m_OERManu = Nothing
Set m_OERVitria = Nothing
Set m_OEROlym = Nothing
Set m_OERKinder = Nothing
Set m_TestIntegration = Nothing
Set m_TestString = Nothing
Set m_TestUAT = Nothing
Set m_TestTraining = Nothing
Set m_TestSoak = Nothing
Set m_TestStress = Nothing
Set m_TestOther = Nothing
Set m_TestText = Nothing
Set m_AppCodeRem = Nothing
Set m_ILCodeRem = Nothing
Set m_IMOSDatabase = Nothing
Set m_ODMDatabase = Nothing
Set m_ORMDatabase = Nothing
Set m_UEHDatabase = Nothing
Set m_SEQDatabase = Nothing
Set m_AuditDatabase = Nothing
End Function
 
S

Sue Mosher [MVP-Outlook]

Sorry, but I can't count. Which is line 212?

--
Sue Mosher, Outlook MVP
Author of Configuring Microsoft Outlook 2003

and Microsoft Outlook Programming - Jumpstart for
Administrators, Power Users, and Developers
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top