View Single Post
  #2   Report Post  
Posted to microsoft.public.word.docmanagement
Doug Robbins - Word MVP
 
Posts: n/a
Default Populating a Label/Text Box with Random Number

Replace the last line of your function with:

With ActiveDocument
.Variables("ProNum").Value = GenPrimaryValue
.PrintPreview
.ClosePrintPreview
End With

and in the textbox and the labels, insert a { DOCVARIABLE ProNum } field.

When the function is called, the variable ProNum will be set to the
generated number in GenPrimaryValue and the PrintPreview will cause the
fields in the document to be updated so that the generated number is
displayed in the document.

Are you sure that you should not be doing this in a template and using an
autonew macro rather that the Document_Open() event?

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

"Tony" wrote in message
...
I have put a txt box and a label in a word doc. I am trying to populate it
with code that I have written to generate a random number and I am not
having
any luck.

Is there a property that I am not aware of for labels and txt boxes in
word.

For all I know it could be my Option Explicit code at the top. Here is my
code:
It starts in the Word Project:

Option Explicit

Public Function GenPrimaryValue() As String
Dim strStart As String
Dim strDate As String
Dim strEnd As String
Dim CrntDate As Date
Dim intChar As Integer
Dim upperbound As Long
Dim lowerbound As Long
Dim X As Long
Randomize

CrntDate = Now
upperbound = 65
lowerbound = 89
intChar = CInt((upperbound - lowerbound + 1) * Rnd + lowerbound)

strStart = Chr(intChar)

strDate = DatePart("YYYY", CrntDate)
strDate = strDate & Format(DatePart("m", CrntDate), "00")
strDate = strDate & Format(DatePart("d", CrntDate), "00")

strEnd = ""

For X = 1 To 5
upperbound = 0
lowerbound = 4
intChar = CInt((upperbound - lowerbound + 1) * Rnd + lowerbound)
Select Case intChar
Case 1
upperbound = 65
lowerbound = 89
intChar = CInt((upperbound - lowerbound + 1) * Rnd + lowerbound)
Case Else
upperbound = 51
lowerbound = 48
intChar = CInt((upperbound - lowerbound + 1) * Rnd + lowerbound)
End Select
strEnd = strEnd & Chr(intChar)
Next X

GenPrimaryValue = strStart & strDate & strEnd
PRONUM = GenPrimaryValue

End Function

Private Sub Document_Open()

Call GenPrimaryValue

End Sub

Can someone someone please tell me what the hang up is?