If field in forms

A

ab

I have created a form to be filled in using Word 2003. I have two drop-down
boxes which I need to link somehow.

What I want to do is:

If the name in the first drop-down box is "John Smith"

The qualification in the next drop-down box is "ARIBA"

If the name in the first drop-down box is "Jane Brown",

The qualification in the next drop-down box is "ARICS"

Help would be appreciated please.

TIA
 
G

Graham Mayor

You shouldn't need the second drop down box at all. What you appear to need
is a conditional field (or fields) that give a result based on the content
of the first field. Thus :

{IF {Dropdown1} = "John Smith" "ARIBA"}{IF {Dropdown1} = "Jane Brown"
"ARICS" } etc

Check the 'calculate on exit' check box of Dropdown1 and when you select and
tab out of the field the appropriate result will be written to the
conditional field.

See also http://www.gmayor.com/SelectFile.htm

--
<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
Graham Mayor - Word MVP

My web site www.gmayor.com

<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
 
D

Doug Robbins - Word MVP

Do you want the user to be able to select an alternate qualification from
the second DropDown, or is the qualification intended to be fixed based on
the name selected in the first DropDown?

If that is not the case, it would be better to use a Text FormField for the
qualification and run a macro on exit from the Drop Down to determine the
entry that was selected and then use the .Result property of the Text
FormField to display the appropriate qualification.

If there are only a couple of entries in the DropDown list, an If field
could be used

With ActiveDocument.FormFields("Name").DropDown
If .ListEntries(.Value) = "John Smith" Then
ActiveDocument.FormFields("Qualification").Result = "ARIBA"
Else 'Jane Brown was selected
ActiveDocument.FormFields("Qualification").Result = "ARICS"
End If
End With

but if there are many more than that, then it may be better to use a Select
Case construction.



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

Suzanne S. Barnhill

To add to what Graham has said, if your dropdown offers only two choices
(the two you cited), you need only one IF field, as you can compare to
either of the possibilities, and the TrueText and FalseText of that one
field will take care of both eventualities.

--
Suzanne S. Barnhill
Microsoft MVP (Word)
Words into Type
Fairhope, Alabama USA

Email cannot be acknowledged; please post all follow-ups to the newsgroup so
all may benefit.
 
A

ab

There are three names and three qualifications.

Doug Robbins - Word MVP said:
Do you want the user to be able to select an alternate qualification from
the second DropDown, or is the qualification intended to be fixed based on
the name selected in the first DropDown?

If that is not the case, it would be better to use a Text FormField for
the qualification and run a macro on exit from the Drop Down to determine
the entry that was selected and then use the .Result property of the Text
FormField to display the appropriate qualification.

If there are only a couple of entries in the DropDown list, an If field
could be used

With ActiveDocument.FormFields("Name").DropDown
If .ListEntries(.Value) = "John Smith" Then
ActiveDocument.FormFields("Qualification").Result = "ARIBA"
Else 'Jane Brown was selected
ActiveDocument.FormFields("Qualification").Result = "ARICS"
End If
End With

but if there are many more than that, then it may be better to use a
Select Case construction.



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

ab

Reading through, I don't think I explained it very well.

The form has a drop-down box for the three people.
Further down the form I have to enter their qualifications. One is RIBA, one
is RICS, one is ACIAT.
Depending on which of the three are required, I then put in the appropriate
qualifiication.
 
D

Doug Robbins - Word MVP

With ActiveDocument.FormFields("Name").DropDown
If .ListEntries(.Value) = "John Smith" Then
ActiveDocument.FormFields("Qualification").Result = "RIBA"
ElseIf .ListEntries(.Value) = "Jane Brown" Then
ActiveDocument.FormFields("Qualification").Result = "RICS"
Else
ActiveDocument.FormFields("Qualification").Result = "ACIAT"
End If
End With


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

ab

Sorry but I don't think I've got the hang of this.

The drop-down box with the names works fine - I have that in the template.

When I go to the box lower down the page where I want the qualification, I
can't get this right. I have tried creating a new macro with the details
(amended with the correct names, etc) but when I try to run it, I get "run
time error 438, Object does not support this property".

If I try to do an If field, I am not sure how to enter the info.

Thanks for your help.
 
G

Graham Mayor

The conditional (IF) field certainly works (provided you tab out of the
field). You insert the field boundary pairs in place of the second drop-down
form field with CTRL +F9 and insert the information to match that in my
earlier post. You can get the bookmark name of the drop down field by double
clicking with the form unlocked and use it in pace of Dropdown1 in the
example.

--
<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
Graham Mayor - Word MVP

My web site www.gmayor.com

<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
 
A

ab

Sorry to be a nuisance - I have been experimenting with the different advice
given and now appear to have got the fields OK with the drop-down box and
the If field in the qualification box.

Next problem: when I protect the template and save it, on opening a new
document I have to unprotect it to get the drop-down box to work and then
protect it again to be able to type on the rest of the form which is one
page laid out in two columns.
What am I missing here, please?
 
G

Graham Mayor

It depends on whose advice you are following :)
If mine, you only need 1 drop down field. The calculate on exit property of
that field must be checked.
Lock the form. The conditional (IF) field is updated from the choice in the
dropdown field.

--
<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
Graham Mayor - Word MVP

My web site www.gmayor.com

<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
 
A

ab

Thanks Graham, that seems to be working for me now. I just have the problem
with the protect/unprotect bit (i.e. when I protect the template and save
it, on opening a new document I have to unprotect it to get the drop-down
box to work and then protect it again to be able to type on the rest of the
form which is one page laid out in two columns.
Can you help, please?
 
G

Graham Mayor

Insert a section and protect only the section that contains your form
fields, though really you would do better to investigate autotext for the
insertion of your variable data or better still userforms to gather the data
and place it
Word MVP FAQ - Userforms
http://word.mvps.org/FAQs/Userforms.htm

see also http://www.gmayor.com/Macrobutton.htm

--
<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
Graham Mayor - Word MVP

My web site www.gmayor.com

<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
 
A

ab

I will look into that - I have never used autotext for inserting variable
data or used userforms.
 

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

Similar Threads


Top