Populating a Label/Text Box with Random Number

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

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?
 
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
 
You code generates random strings happily enough; but it doesn't do anything
with them. If you want these random values to appear in your document, you
need to put them there. Currently they just sit in your VBA code.

Is there any particular reason you want to use labels and textboxes for
this? -- much easier to insert the values into bookmarks or document
properties.
 
I don't use Word that much if at all. I am pretty savy in Access and Vb but
not at all in word. I have not used word as a function of my job for
probably over 4 years. So I am not all that familiar with the functions that
are used.

I thought I would be able to create a quick form that generates the AutoNum
I need so that I can send the Doc to an outside person to open fill out the
info then fax to our clients and back to me to update on my side business.
 
In that case, save the random number into a document property, and use a
DocProperty field in the body of the document to display it --

ActiveDocument.CustomDocumentProperties("DocNum") = Format(Now, "yyyymmdd")
& Format(Clng(9999 * Rnd + 1000)
 
Back
Top