![]() |
| 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. |
|
|||||||
| Tags: custom, message, phone |
|
|
Thread Tools | Display Modes |
|
#21
|
|||
|
|||
|
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
|
|||
|
|||
|
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 | |
|
|
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 |