Re: Problem using VBA to create sequentially numbered documents in Word
- From: "Doug Robbins - Word MVP" <dkr@xxxxxxxxxxxxxxxxxx>
- Date: Thu, 17 Nov 2005 21:44:01 +0100
The following code in an autonew macro in the template from which the
documents are created will add 1 to the last number used in an Access
database, and insert that number into a document variable in the document
Dim vConnection As New ADODB.Connection
Dim vRecordSet As New ADODB.Recordset
Dim LastNumber As Long, NewNumber As Long
vConnection.ConnectionString = _
"data source=c:\AQS\AQS.mdb;" & _ 'Use your own database
"Provider=Microsoft.Jet.OLEDB.4.0;"
vConnection.Open
vRecordSet.Open "tblNumbers", vConnection, adOpenKeyset, adLockOptimistic
vRecordSet.MoveLast
LastNumber = vRecordSet!Number
NewNumber = LastNumber + 1
vRecordSet.AddNew
vRecordSet!Number = NewNumber
vRecordSet.Update
ActiveDocument.Variables("varNumber").Value = NewNumber
ActiveDocument.Fields.Update
vRecordSet.Close
vConnection.Close
Set vRecordSet = Nothing
Set vConnection = Nothing
It is based on the datasource having a table called tblNumbers which
contains a number field with the fieldname of number. The Template must
have a { DOCVARIABLE varNumber } field in it to display the number.
In the template, you need to set a reference to the Microsoft ActiveX Data
Objects #.# Library under Tools>References in the Visual Basic Editor.
--
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
"SLind via OfficeKB.com" <u15764@uwe> wrote in message
news:577b594572876@xxxxxx
> Thanks for your reply.
> The problem I am running into is:
> I need to create a new sequential number everytime one of 4-5 other
> documents
> is opened. In other words, if I opened document B, it might have an
> invoice
> number of, say 10027. If someone else opens document D a second later, it
> would need to have an invoice number of 10028. The use of a
> "privateprofilestring" does not appear to work when there are multiple
> users
> on multiple computers in a network.
> Any help is greatly appreciated.
> thanks,
> Steve
> dfwtxsteve (at) aol.com
>
> Jezebel wrote:
>>You can't update another document without opening it. A macro in document
>>1
>>could update document2, but it would have to open it to do so. But using a
>>second document just to store your number is unnecessary.
>>
>>A simpler method would be to store a document variable in the template
>>containing the code (or in normal.dot). Or store the variable in a text
>>file, using ordinary input/print statements. Or even in the registry, for
>>that matter.
>>
>>> Thanks for your help, but I'm new to VBA programming and lost looking at
>>> the
>>[quoted text clipped - 30 lines]
>>>>>
>>>>> End Sub
>
> --
> Message posted via OfficeKB.com
> http://www.officekb.com/Uwe/Forums.aspx/word-programming/200511/1
.
- References:
- Problem using VBA to create sequentially numbered documents in Word
- From: SLind
- Re: Problem using VBA to create sequentially numbered documents in Word
- From: Jonathan West
- Re: Problem using VBA to create sequentially numbered documents in Word
- From: SLind via OfficeKB.com
- Re: Problem using VBA to create sequentially numbered documents in Word
- From: Jezebel
- Re: Problem using VBA to create sequentially numbered documents in Word
- From: SLind via OfficeKB.com
- Problem using VBA to create sequentially numbered documents in Word
- Prev by Date: Re: Coding help please.
- Next by Date: Re: Coding help please.
- Previous by thread: Re: Problem using VBA to create sequentially numbered documents in Word
- Next by thread: Re: How do I Import text into Word
- Index(es):
Relevant Pages
|