A Microsoft Outlook email forum. Outlook Banter

If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.

Go Back   Home » Outlook Banter forum » Microsoft Outlook Email Newsgroups » Outlook - Using Forms
Site Map Home Register Authors List Search Today's Posts Mark Forums Read Web Partners

Tags: , ,

Phone Message - Custom





 
 
Thread Tools Display Modes
  #21  
Old October 12th 06, 11:05 PM posted to microsoft.public.outlook.program_forms
Corey H.
external usenet poster
 
Posts: 18
Default Phone Message - Custom

The "object variable not set" comes up when you send the form with the script
running in the background. All of the sudden the debugger comes up and
states that the
strBody1 = strbody1 & Item.UserProperties("Caller") &
Item.UserProperties("Companytext") & Item.UserProperties("Phonetext")
"object variable not set." Then goes into the script debugger so you can
step into the problem and try and resolve it.





"Sue Mosher [MVP-Outlook]" wrote:

I feel like my head is going to explode. Maybe I'm making this way more
difficult than it is.


Yes, I agree that's probably the case. Some key ideas just don't seem to be sinking in. When they do, you'll probably feel a great sense of relief.

I figured that you can have thousands of variables for the text boxes.


Not likely for two reasons. First, a form that complex would blow up in your face.

But more importantly, you said you are using text boxes bound to Outlook properties. That means you have zero need to have any variables for any text boxes at all. You don't see any code related to text boxes below, do you? Stop thinking about text boxes, and start thinking about Outlook properties.

Where when you set a checkbox, you have "checked = True", "unchecked = False"


Not quite. You have it right in your earlier code:

If Item.UserProperties("WillCallAgain") = True Then

Item.UserProperties("WillCallAgain") returns the value of the custom property named "WillCallAgain." In the case of a Yes/No (Boolean) property, that value can be True or False, no other value. Checked and unchecked are just the way it usually looks in the user interface. True and False are the values that Outlook can actually return for such properties.

This is where the if/then script comes in.


In your original code, you made a good decision to use If ... Then statements to provide a text representation of that value, appropriate for each Yes/No property.

But what about text properties? If Caller is a text property, does Item.UserProperties("Caller") return True or False?

No, it returns the value of the text property, in other words, the text that the user typed into the text box that is bound to the Caller property. That's why I keep saying that you already know everything you need to know, as evidenced by the fact that you already put this together:

strBody1 = strbody1 & Item.UserProperties("Caller") & Item.UserProperties("Companytext") & Item.UserProperties("Phonetext")

So you wouldn't be able to make an if / then for the text box, so you have
to tell it to take whatever values are in the text box and transfer it to the
message box.


You ***don't need*** and if /then for the text box. See above. You already know what the text is.

More questions? You realize, don't you, that you never said where the "object variable is not set" comes up.

"Corey H." wrote in message ...

Being that the object variable is not set, does that mean that I have to set
each area because there is nothing inserted into the text box (i.e. "Caller",
"Phonetext") as a null value.

So I'm thinking it'd be
Set item.userproperties("Caller") = null
Set item.userproperties("Caller") = null
Set item.userproperties("Caller") = null
strBody1 = strbody1 & Item.UserProperties("Caller") &
Item.UserProperties("Companytext") & Item.UserProperties("Phonetext")
Item.Body=strBody1


"Corey H." wrote in message ...
Well, the TO: field was just an example.
I'm just going to be using the Caller, Companytext and Phonetext. This is
in order for the Blackberries to see it. The only thing the BB see's on any
phone message form is the message box field.
Corey


"Sue Mosher [MVP-Outlook]" wrote:

strBody1 = strbody1 & Item.UserProperties("Caller") &
Item.UserProperties("Companytext") & Item.UserProperties("Phonetext")

Yes, if Caller, Companytext, and Phonetext are the names of custom fields and you also have a statement to set the message body to the string you're building:

Item.Body = strBody1

After the TO: field, anyone can insert the name from Outlook or Exchange.

Maybe this is a dumb question, but why do you need the recipient information in the body of the message? It's going to be on the message anyway.

If there is a reason, then use the code I provided earlier:

For Each recip in Item.Recipients
strAddr = strAddr & ";" & recip.Address
Next
strAddr = Mid(strAddr, 2)

Or use recip.Name if you want the names. Or both if you want both.


"Corey H." wrote in message ...
Yes and here is the stumbling block.
After the TO: field, anyone can insert the name from Outlook or Exchange. I
don't know the coding because the text information entered varies from phone
call to phone call. So how can you enter that into your vbscript?

Wouldn't the coding be:
strBody1 = strbody1 & Item.UserProperties("Caller") &
Item.UserProperties("Companytext") & Item.UserProperties("Phonetext")


Hopefully my explanation here can make my question more understandable.

TO: ________________________________________

COMPANY : __________________________________

PHONE: _____________________________________

MESSAGE____________________________________
X X
X X
X X
X X
X X
X___________________________________________ X

Lets say that the above is the form. Where the underlines are there is a
text box in which you fill in the information. So say I wanted to collect
the information that was entered into the text box next to Phone, and the
text box next to Company. then have it submitted into the text box upon
hitting send, what would the vbscript need to look like? These are bound
text boxes.

"Sue Mosher [MVP-Outlook]" wrote:

When you start talking about CDO, Recipient collections, post form, etc,
it's all greek to me.

Then you're probably going to need to learn more about basic Outlook programming. It's difficult for us to know what you don't know or what you need to know until you ask a specific question.

This is a "custom phone message form" as in the subject line.

As I said, in a message form, the details about the recipients in the "To" box are in the Item.Recipients collection. The Item.To property will give you only a display name or address -- whatever you see in the UI. What information do you want to extract and put in the message body? For example, this code snippet builds a string of the addresses for all recipients:

For Each recip in Item.Recipients
strAddr = strAddr & ";" & recip.Address
Next
strAddr = Mid(strAddr, 2)

If you go to the default "while you were out" form from Microsoft, and you
want to take the information from the fillable text fields and enter them
into the message body, how would you do it?

I would examine the controls to see what field each one is bound to and then write code to build a string from the values in those fields (or in unbound controls if that's what the form uses), just as you did in the code you originally posted.

If I wanted some fancy formatted HTML, I'd write functions that would allow me to input plain text and return formatted text. Only you, of course, know what kind of formatting you have in mind. There are many basic HTML tutorials on the Internet if you don't know anything about HTML formatting.

"Corey H." wrote in message ...
Sue,
This is a "custom phone message form" as in the subject line.
When you start talking about CDO, Recipient collections, post form, etc,
it's all greek to me.
I'd take screen shots and send them to you so you could see what I'm dealing
with. But, I'm unable to paste into a text field on these responses.
If you go to the default "while you were out" form from Microsoft, and you
want to take the information from the fillable text fields and enter them
into the message body, how would you do it?
Corey



"Sue Mosher [MVP-Outlook]" wrote:

I need that attached text box information to be entered into the message box.

If it's a message form, that information is in the Recipients collection. If it's a Post form, which has no Recipients collection, you'd need to use CDO 1.21 or, to avoid security prompts, Redemption to get to the recipients. Each recipient has a name and address.

You never said what kind of form this is, by the way.


"Corey H." wrote in message ...
I'm not exactly sure why we're using html coding for this.
If you use the field chooser to drop the TO: field onto your form, it drops
the box for selecting addresses from your global if you're on exchange. And
drops the information you select from the global into the attached text box.
I need that attached text box information to be entered into the message box.

The other vbscripting for the checkboxes gets the information from an If
then function. If "True", paste into the message area.
Where this would be "take this final value and paste it into the message
area".
I hope that makes sense.


"Sue Mosher [MVP-Outlook]" wrote:

No, that's just the snippet you don't seem to already have. p/p is the HTML element that creates a new paragraph. If you want a proper HTML message, you'd use that tag along with any desired formatting tags to build the final string, using the same technique you already know for getting Outlook property values. To get the right font tags, create text similar to what you want to show in an HTML editor and then take a look at the HTML source.

"Corey H." wrote in message ...
And this is for the text boxes?
In the To: field, the entry changes.
Same for the Company: field, and the Phone: field.
So the user of the form actually types the information into this text box
field.
I just want to take the final value of those fields and enter it into the
message body.

So is the vbscript still strBody = "pTelephoned/p"?

"Sue Mosher [MVP-Outlook]" wrote:

strBody = "pTelephoned/p" etc.


"Corey H." wrote in message ...
And the vbscript for that would look how??
Corey


"Sue Mosher [MVP-Outlook]" wrote:

Then you'd set HTMLBody, not Body and your strBody would need to include all the HTML formatting you want to show.

"Corey H." wrote in message ...
This vbscript is great for returning a set value.
But what if you needed to display font in a text area of the form that
always changes per call, and paste it within the message body.

Sub Item_Send()
strBody = Item.Body
If Item.UserProperties("Telephoned") = True Then
strBody = strBody & vbCrLf & "Telephoned"
End If
If Item.UserProperties("PleaseCall") = True Then
strBody = strBody & vbCrLf & "Please Call"
End If
If Item.UserProperties("Confidential") = True Then
strBody = strBody & vbCrLf & "Confidential"
End If
If Item.UserProperties("WantstoSeeYou") = True Then
strBody = strBody & vbCrLf & "Wants to See You"
End If
If Item.UserProperties("CameToSeeYou") = True Then
strBody = strBody & vbCrLf & "Came To See You"
End If
If Item.UserProperties("ReturnedYourCall") = True Then
strBody = strBody & vbCrLf & "Returned Your Call"
End If
If Item.UserProperties("WillCallAgain") = True Then
strBody = strBody & vbCrLf & "Will Call Again"
End If
If Item.UserProperties("Rush") = True Then
strBody = strBody & vbCrLf & "RUSH!"
End If

Item.Body = strBody

End Sub



Ads
  #22  
Old October 12th 06, 11:50 PM posted to microsoft.public.outlook.program_forms
Sue Mosher [MVP-Outlook]
external usenet poster
 
Posts: 11,651
Default Phone Message - Custom

The statement with the problem:

strBody1 = strbody1 & Item.UserProperties("Caller") & Item.UserProperties("Companytext") & Item.UserProperties("Phonetext")

has 3 different objects in it, all Item.UserProperties("propname". The error indicates that one or more of these properties does not exist on the current item. There are two main reasons for that error:

1) You typed the wrong property name into the code.

2) You didn't add the property to the form design in such a way that it becomes part of the form design (and thus part of any created with the form) *and* the user has not entered any data into the corresponding text box that is bound to the property.

Both of these can be solved, you'll be happy to know, by opening the form in design mode.

The first thing to do is to check the property names. To do this, right-click on each text box control, switch to the Value tab, and get the field name from the top of that tab. The name of the control is irrelevant. All that matters here is the bound field name.

Once you do that, switch to the All Fields page of your form, and bring up the "User-defined fields in this item" list NOT the "User-defined fields in this folder" list. Do you see all your fields in that list? If not, go to any blank custom form page, bring up the Field Chooser, and drag the missing field(s) to the form page. Go back to All Fields and check that they're now on the list. You should be able to delete the fields from that custom page now and hide it. After you do, check back on All Fields one more time to make sure the fields are there. (You can read more about best practices for adding custom fields to forms at http://www.outlookcode.com/d/fields.htm)

Now, to make it easier to diagnose any problems if they remain, break up your code so that you have only one object per statement:

strBody1 = strbody1 & Item.UserProperties("Caller")
strBody1 = strBody1 & Item.UserProperties("Companytext")
strBody1 = strBody1 & Item.UserProperties("Phonetext")

Run it, and let us know how it goes.

--
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

"Corey H." wrote in message ...
The "object variable not set" comes up when you send the form with the script
running in the background. All of the sudden the debugger comes up and
states that the
strBody1 = strbody1 & Item.UserProperties("Caller") &
Item.UserProperties("Companytext") & Item.UserProperties("Phonetext")
"object variable not set." Then goes into the script debugger so you can
step into the problem and try and resolve it.


 




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Outlook send message mobile phone Max Bialystock Outlook and VBA 1 August 15th 06 03:45 PM
Create a phone message Pamela Outlook - General Queries 1 August 1st 06 04:36 AM
Phone Message? Folder Customization? La Vonna Outlook - General Queries 3 March 17th 06 02:42 PM
How to send pre-recorded message to outlook phone contacts? MDCMillsaps Outlook - General Queries 1 February 23rd 06 03:22 PM
Cannot programmatically open custom message in custom form ms Outlook - Using Forms 1 January 20th 06 04:01 PM


All times are GMT +1. The time now is 01:53 PM.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.Search Engine Friendly URLs by vBSEO 2.4.0
Copyright ©2004-2008 Outlook Banter, part of the NewsgroupBanter project.
The comments are property of their posters.
Loans - Credit Cards UK - Company Reports - Debt Help - Buy Anything On eBay