Ok,

My program writes address labels to a Word template from a database. Avery 5160 standard labels come 30 to a page... There will be days where we have more than 30 labels, though...

My question is:

How do I create a new page in the current open template in Word, but use the same bookmarks as page 1?

VB Code:
  1. Private Sub cmdGetLabels_Click()
  2.  
  3.     Dim template As String
  4.     Dim WordApp As Word.Application
  5.     Dim WordDoc As Word.Document
  6.     Dim WordTemp As Word.Document
  7.     Dim docPath As String
  8.     Dim intTimes As Integer
  9.     Dim strLetter As String
  10.     Dim strUser As String
  11.     Dim strStatus As String
  12.     Dim docPageCount As Integer
  13.    
  14.     '--> Get template and document storage path
  15.     template$ = getTemplate
  16.  
  17.     ConnectDatabase
  18.        
  19.     '--> Start MS Word and open template
  20.     Set WordApp = CreateObject("Word.Application")
  21.     WordApp.Visible = False
  22.     'Set WordTemp = WordApp.Documents.Open("C:\Documents and Settings\" & Environ("Username") & "\Application Data\Microsoft\Templates\Normal.dot")
  23.     Set WordDoc = WordApp.Documents.Open(FileName:=template$, Revert:=True)
  24.    
  25.    
  26. intTimes = 1
  27.    
  28. With rsCustomerTable
  29.  
  30. Do Until .EOF
  31.    
  32.     Select Case intTimes
  33.    
  34.         Case "1"
  35.             strLetter = "A"
  36.         Case "2"
  37.             strLetter = "B"
  38.         Case "3"
  39.             strLetter = "C"
  40.         Case "4"
  41.             strLetter = "D"
  42.         Case "5"
  43.             strLetter = "E"
  44.         Case "6"
  45.             strLetter = "F"
  46.         Case "7"
  47.             strLetter = "G"
  48.         Case "8"
  49.             strLetter = "H"
  50.         Case "9"
  51.             strLetter = "I"
  52.         Case "10"
  53.             strLetter = "J"
  54.         Case "11"
  55.             strLetter = "K"
  56.         Case "12"
  57.             strLetter = "L"
  58.         Case "13"
  59.             strLetter = "M"
  60.         Case "14"
  61.             strLetter = "N"
  62.         Case "15"
  63.             strLetter = "O"
  64.         Case "16"
  65.             strLetter = "P"
  66.         Case "17"
  67.             strLetter = "Q"
  68.         Case "18"
  69.             strLetter = "R"
  70.         Case "19"
  71.             strLetter = "S"
  72.         Case "20"
  73.             strLetter = "T"
  74.         Case "21"
  75.             strLetter = "U"
  76.         Case "22"
  77.             strLetter = "V"
  78.         Case "23"
  79.             strLetter = "W"
  80.         Case "24"
  81.             strLetter = "X"
  82.         Case "25"
  83.             strLetter = "Y"
  84.         Case "26"
  85.             strLetter = "Z"
  86.         Case "27"
  87.             strLetter = "AA"
  88.         Case "28"
  89.             strLetter = "BB"
  90.         Case "29"
  91.             strLetter = "CC"
  92.         Case "30"
  93.             strLetter = "DD"
  94.        
  95.    End Select
  96.  
  97.            '--> Insert data in MS Word template
  98.            
  99.             If Len(rsCustomerTable!Name) <> 0 Then
  100.                 WordDoc.Bookmarks("" & strLetter & "1").Range.Text = rsCustomerTable!Name
  101.                 Debug.Print rsCustomerTable!Name
  102.             End If
  103.            
  104.             If Len(rsCustomerTable!Address) <> 0 Then
  105.             WordDoc.Bookmarks("" & strLetter & "2").Range.Text = rsCustomerTable!Address
  106.                 Debug.Print rsCustomerTable!Address
  107.             End If
  108.            
  109.             If Len(rsCustomerTable!City) <> 0 Then
  110.             WordDoc.Bookmarks("" & strLetter & "3").Range.Text = rsCustomerTable!City
  111.                 Debug.Print rsCustomerTable!City
  112.             End If
  113.            
  114.             If Len(rsCustomerTable!State) <> 0 Then
  115.             WordDoc.Bookmarks("" & strLetter & "4").Range.Text = rsCustomerTable!State
  116.                 Debug.Print rsCustomerTable!State
  117.             End If
  118.                
  119.             If Len(rsCustomerTable!Zip) <> 0 Then
  120.             WordDoc.Bookmarks("" & strLetter & "5").Range.Text = rsCustomerTable!Zip
  121.                 Debug.Print rsCustomerTable!Zip
  122.             End If
  123.            
  124.             rsCustomerTable.MoveNext
  125.            
  126.             vbalProgressBar1.Max = rsCustomerTable.RecordCount
  127.             vbalProgressBar1.Value = intTimes
  128.            
  129.             intTimes = intTimes + 1
  130.            
  131.         Loop
  132. End With
  133.  
  134.         '--> Save new document and quit MS Word
  135.        
  136.         MsgBox "There are " & rsCustomerTable.RecordCount & " labels to Print, " & strUser & "", vbOKOnly, "Label Count"
  137.        
  138.         WordDoc.SaveAs "F:\Shared\Cust Serv\Programs\LabelCreatorPlus\testLabels.doc"
  139.         'WordDoc.PrintOut
  140.         WordDoc.Close (Word.WdSaveOptions.wdDoNotSaveChanges)
  141.         WordApp.Quit
  142.  
  143.     Set WordDoc = Nothing
  144.     Set WordTemp = Nothing
  145.     Set WordApp = Nothing
  146.    
  147.     CloseDatabase
  148.    
  149.         End
  150.        
  151. End Sub