MS Word 2003 Case statement code

D

dworst

I've created a word form with 4 radio buttons on it and a command
button. Inside of my code for the button I want the button upon click
to evaluate which radio button is true and then perform a function.
Below is what I have so far but it doesn work correctly. Could anyone
guide me as to what I'm doing incorrectly?

Thanks so much!.

Sub SendDocumentAsAttachment2()
Dim vmailbox
Dim bStarted As Boolean
Dim oOutlookApp As Outlook.Application
Dim oItem As Outlook.MailItem


On Error Resume Next

If Len(ActiveDocument.Path) = 0 Then
MsgBox "Document needs to be saved first"
Exit Sub
End If

Set oOutlookApp = New Outlook.Application
If Err <> 0 Then
Set oOutlookApp = New Outlook.Application
bStarted = True
End If

Set oItem = oOutlookApp.CreateItem(olMailItem)

vmailbox = " "

Select Case Yes214.Value
Case True
vmailbox = "(e-mail address removed)"
End Select

Select Case Yes215.Value
Case True
vmailbox = "DL-GAI.ITServices.Database.Services"
End Select

Select Case Yes216.Value
Case True
vmailbox = "(e-mail address removed)"
End Select

Select Case Yes2141.Value
Case True
vmailbox = "DL-GAI.ITServices.Info.Services.Informatica"
End Select

Select Case text13.Value
Case True
vmailbox = text13
Case Else
vmailbox = ""
End Select

With oItem
.To = vmailbox
.Subject = ActiveDocument.Name
'Add the document as an attachment, you can use the .displayname
property
'to set the description that's used in the message
.Attachments.Add Source:=ActiveDocument.FullName, Type:=olByValue,
DisplayName:="Document as attachment"
.Display

End With

If bStarted Then
oOutlookApp.Quit
End If

Set oItem = Nothing
Set oOutlookApp = Nothing

End Sub
 
D

Doug Robbins - Word MVP

You only have 4 Option Buttons, but your code is "evaluating" 6 conditions.

After you sort out that inconsistency, use an If...ElseIf...Else...End If
construction as follows

Use

If Yes214.Value = True Then
vmailbox = "(e-mail address removed)"
ElseIf Yes215.Value = True Then
vmailbox = "DL-GAI.ITServices.Database.Services"
ElseIf Yes216.Value = True Then
vmailbox = "(e-mail address removed)"
Else Yes2141.Value = True Then 'If there are only 4 buttons and the first 3
are False, then this one must be True
vmailbox = "DL-GAI.ITServices.Info.Services.Informatica"
End If


--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP
 
D

dworst

Doug:

Thanks for replying.

I have 4 Option Buttons and a text box so that is why it is evaluating
6 options. I didn't include that in my first email.

I put your code into my module, modifying it to fit the structure, but
even if the first condition Yes214.Value = True isn't true, it is
placing that email address in the To: field in my email. It doesn't go
past the first If statement.

What am I doing wrong???

Here is my code

Sub SendDocumentAsAttachment2()
Dim vmailbox
Dim bStarted As Boolean
Dim oOutlookApp As Outlook.Application
Dim oItem As Outlook.MailItem


On Error Resume Next

If Len(ActiveDocument.Path) = 0 Then
MsgBox "Document needs to be saved first"
Exit Sub
End If

Set oOutlookApp = New Outlook.Application
If Err <> 0 Then
Set oOutlookApp = New Outlook.Application
bStarted = True
End If

Set oItem = oOutlookApp.CreateItem(olMailItem)

vmailbox = " "

If Yes214.Value = True Then
vmailbox = "(e-mail address removed)"
If Yes215.Value = True Then
vmailbox = "DL-GAI.ITServices.Database.Services"
ElseIf Yes216.Value = True Then
vmailbox = "(e-mail address removed)"
ElseIf Yes2141.Value = True Then
vmailbox = "DL-GAI.ITServices.Info.Services.Informatica"
ElseIf text13.Value = True Then
vmailbox = text13
Else
vmailbox = ""
End If

With oItem
.To = vmailbox
.Subject = ActiveDocument.Name
'Add the document as an attachment, you can use the .displayname
property
'to set the description that's used in the message
.Attachments.Add Source:=ActiveDocument.FullName, Type:=olByValue,
DisplayName:="Document as attachment"
.Display

End With

If bStarted Then
oOutlookApp.Quit
End If

Set oItem = Nothing
Set oOutlookApp = Nothing

End Sub
 
D

dworst

Doug:

Sorry, I had an error in my code, but it still doesn't work.

Sub SendDocumentAsAttachment2()
Dim vmailbox
Dim bStarted As Boolean
Dim oOutlookApp As Outlook.Application
Dim oItem As Outlook.MailItem


On Error Resume Next

If Len(ActiveDocument.Path) = 0 Then
MsgBox "Document needs to be saved first"
Exit Sub
End If

Set oOutlookApp = New Outlook.Application
If Err <> 0 Then
Set oOutlookApp = New Outlook.Application
bStarted = True
End If

Set oItem = oOutlookApp.CreateItem(olMailItem)

vmailbox = " "

If Yes214.Value = True Then
vmailbox = "(e-mail address removed)"
ElseIf Yes215.Value = True Then
vmailbox = "DL-GAI.ITServices.Database.Services"
ElseIf Yes216.Value = True Then
vmailbox = "(e-mail address removed)"
ElseIf Yes2141.Value = True Then
vmailbox = "DL-GAI.ITServices.Info.Services.Informatica"
ElseIf text13.Value = True Then
vmailbox = text13
Else
vmailbox = ""
End If





With oItem
.To = vmailbox
.Subject = ActiveDocument.Name
'Add the document as an attachment, you can use the .displayname
property
'to set the description that's used in the message
.Attachments.Add Source:=ActiveDocument.FullName, Type:=olByValue,
DisplayName:="Document as attachment"
.Display

End With

If bStarted Then
oOutlookApp.Quit
End If

Set oItem = Nothing
Set oOutlookApp = Nothing

End Sub
 
D

Doug Robbins - Word MVP

You still have a problem with trying to evaluate more items that there are
option buttons!

There is a very good chance that one of your option buttons will be true,
even if the user enters something into Text13 (which will not return the
Boolean value True in any event). This is because once one of the Option
buttons has been checked, there is no way that it can be unchecked.

I think you best plan might be to use a ComboBox containing the the first
four destinations, plus an item for "Enter Destination" and another one for
Do Nothing. The you evaluate what is selected in the ComboBox and if it is
the Enter Destination item, make the Textbox visible for the user to enter
the Destination.



--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP
 

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