Clear Form Fields

J

Jamie

I am working in Word 2003.

I have a table made up of 3 rows, the first two rows have 4 columns, the
last is one column. The table looks like this:

Row 1: Date: FormField Client Name: FormField
Row 2: Referred To: FormField Follow-Up Date:FormField
Row 3: Comments:
FormField

This is a template and when the user tabs out of the Comments FormField I
have an On Exit macro that copies the table including the FormFields. I can’t
come up with coding to clear the FormFields in the new rows. My coding for
copying and pasting the table is as follows:

CopyTable Macro

ActiveDocument.Unprotect

Selection.MoveUp Unit:=wdLine, Count:=3
Selection.MoveDown Unit:=wdLine, Count:=2, Extend:=wdExtend
Selection.Copy
Selection.MoveDown Unit:=wdLine, Count:=1
Selection.PasteAndFormat (wdTableOriginalFormatting)
Selection.MoveUp Unit:=wdLine, Count:=4

ActiveDocument.Protect Type:=wdAllowOnlyFormFields, NoReset:=True

End Sub

Again this works as far as copying the table but I need the newly pasted
FormFields to be blank instead of having duplicate info from above. Any help
with this is greatly appreciated.
 
G

Graham Mayor

See the examples - Add a row to a table in a protected form and Repeat a
block of formatted text and form fields based upon the content of another
form field at http://www.gmayor.com/word_vba_examples.htm

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


<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
 
J

Jamie

Thanks for your reply Graham. I’ve looked at your coding for Add a Row to a
Table in a Protected Form and I am still at a loss as to how to clear the
pasted formfields. The coding that I currently have, copies all the
information including the formfields, now I just need to clear the
formfields. My columns are not the same width and the last row is a merge of
all 4 columns. I’ve been pulling things out of your code to see if I can get
the formfields to clear, but unfortunately I don’t know enough to be
successful.

Thanks for your help.
 
G

Graham Mayor

Having inserted the fields, you need to set their values to nul

eg

ActiveDocument.FormFields("Bookmarkname").Result = ""#

However when copying and pasting the pasted row will not have bookmark
names, so you would need to define the copied range (here Table 1 row 2) and
zero all the fields in that range - eg along the lines of

Sub ResetFormFields()
Dim oRng As Range
Dim oFld As FormFields
Dim i As Long
Set oRng = ActiveDocument.Tables(1).Rows(2).Range
Set oFld = oRng.FormFields
For i = 1 To oFld.Count
oFld(i).Select
If oFld(i).Type = wdFieldFormDropDown Then
oFld(i).Result = oFld(i).DropDown.ListEntries(1).name
Else
oFld(i).Result = ""
End If
Next
End Sub


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


<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
 
G

Graham Mayor

Oops - I don't know where that # sneaked in from :(
It should have read
ActiveDocument.FormFields("Bookmarkname").Result = ""

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


<>>< ><<> ><<> <>>< ><<> <>>< <>><<>
 
J

Jamie

Hi Graham, I've been trying to use your code, but cannot seem to get it to
work. I keep trying which has only resulted in me prolonging this new
posting to you as well as admitting that I am at a loss.

My only suggestion, if you are still willing to help, is to send my document
to you. Of course, you'll need to walk me through that as well as I have
never attached a file to a post.
 
G

Graham Mayor

Send that message using the link on the home page of my web site.Your e-mail
message should have a toolbar option (usually looks like a paper clip) or a
menu option Insert > file or similar which will allow you to select and add
the document to a message.

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