How JustAnswer Works:

  • Ask an Expert
    Experts are full of valuable knowledge and are ready to help with any question. Credentials confirmed by a Fortune 500 verification firm.
  • Get a Professional Answer
    Via email, text message, or notification as you wait on our site.
    Ask follow up questions if you need to.
  • 100% Satisfaction Guarantee
    Rate the answer you receive.

Ask Greg Maxey Your Own Question

Greg Maxey
Greg Maxey, Consultant\Microsoft Word Expert
Category: General
Satisfied Customers: 62
Experience:  Microsoft Word Most Valuable Professional (6 years)
16468162
Type Your Question Here...
Greg Maxey is online now
A new question is answered every 9 seconds

Ask a Microsoft Word Question I am making a form with conditonal

This answer was rated:

Ask a Microsoft Word Question
>I am making a form with conditonal drop down fields. I know I can make a drop down field conditional on another one. However, I need to make two or three different drop down fields conditional on a single other field. is this possible?
Thanks,
Jeff

Yes it is possible. The below link shows you how to make a DD bookmarked "DDSecondary" dependent on a selection in another dropdown bookmarkd "DDPrimary"

 

All you would need to do is create the additional dropdown objects e.g.:

 

Dim oDDim oDD As DropDown
Set oDD2 = ActiveDocument.FormFields(AnnotherDD).DropDown

and then add the necessary lines of code in the Case statements.

Customer: replied 5 years ago.

Greg,

 

Thanks for the quick response. I think I understand, but I am not a programmer. I've tried a couple times to modify my form per your instructions. So far it sort of works (I can get options to show up on the second conditional field, but they are not the correct options) but I still have problems. I suspect it is just coding errors on my part. Let me see if i can figure out what I may still be doing wrong. If I can get it to work correctly, I'll accept your answer by tomorrow. If not, I may need some additional guidance.

 

Jeff

Customer: replied 5 years ago.

Greg,

 

I still have a minor problem. I can get everything to work if my two conditional fields have the same number of options. For instance, given the first field is dropdown1, I can get the fields identified as dropdown2 and dropdown3 to both work if they each have 14 entries. If dropdown2 has 14 entries and dropdown3 has 7 entries, I can't seem to program them properly.

 

Here is an excerpt of my programming for this step:

Case 1 ActiveDocument.FormFields("Dropdown2").DropDown.ListEntries.Clear ActiveDocument.FormFields("Dropdown3").DropDown.ListEntries.Clear For var = 1 To 14 ActiveDocument.FormFields("Dropdown2").DropDown.ListEntries.Add Name:=DefenceDD2(i) ActiveDocument.FormFields("Dropdown3").DropDown.ListEntries.Add Name:=DefenceDD3(i) i = i + 1 Next ActiveDocument.FormFields("Dropdown2").DropDown.Value = 1

ActiveDocument.FormFields("Dropdown3").DropDown.Value = 1

Case 2

 

In this case, DefenceDD2 is a list of 14 entries. DefenceDD3 is a list of 7 entries. I get error messages. I can put seven blank lines in DefenceDD3, but that just doesn't seem to be the proper way to do it.

 

If you can mark up this excerpt to show me how to program it properly, I would appreciate it. If that is beyond the scope of your answer, I understand. You have given me enough that I can make it work, even if my programming sucks.

 

Thanks,

 

Jeff

Well you didn't explain what DefenceDD2 or DefenceDD3 are but I assume they are arrays containing the list values. You are getting the error because you are trying obtain data that is out of scope.

 

Try this:

Sub DD1OnExit()
Dim var As Long
Dim aDefDD2() As String
Dim aDefDD3() As String
aDefDD2 = Split("A1,A2,A3,A4,A5,A6,A7,A8,A(,A10,A11,A12,A13,A14", ",")
aDefDD3 = Split("Alpha,Bravo,Charlie,Delta,Echo,Foxtrot,Golf", ",")
Select Case ActiveDocument.FormFields("DropDown1").DropDown.Value
Case 1
ActiveDocument.FormFields("Dropdown2").DropDown.ListEntries.Clear
ActiveDocument.FormFields("Dropdown3").DropDown.ListEntries.Clear
For var = 0 To 13
ActiveDocument.FormFields("Dropdown2").DropDown.ListEntries.Add Name:=aDefDD2(var)
On Error Resume Next
ActiveDocument.FormFields("Dropdown3").DropDown.ListEntries.Add Name:=aDefDD3(var)
On Error GoTo 0
Next var
'Or do it like this:
ActiveDocument.FormFields("Dropdown2").DropDown.ListEntries.Clear
ActiveDocument.FormFields("Dropdown3").DropDown.ListEntries.Clear
For var = 0 To UBound(aDefDD2)
ActiveDocument.FormFields("Dropdown2").DropDown.ListEntries.Add Name:=aDefDD2(var)
Next var
For var = 0 To UBound(aDefDD3)
ActiveDocument.FormFields("Dropdown3").DropDown.ListEntries.Add Name:=aDefDD3(var)
Next var
ActiveDocument.FormFields("Dropdown2").DropDown.Value = 1
ActiveDocument.FormFields("Dropdown3").DropDown.Value = 1
Case 2
End Select
End Sub

Greg Maxey and 45 other General Specialists are ready to help you