[AccessD]

Kath Pelletti SDSSoftware at optusnet.com.au
Fri Nov 21 06:52:56 CST 2003


Hi Pedro - I had a very similar situation last year. My client was using a page of labels with 2 columns, 10 labels per column.

The code below prompts the user for a label no and they enter the no. of the label they want to use, ie. 1 for 10 would print in the first column, and 11-20 print in the second column. Then by adjusting the height of the report header (section1) you can push the data down to the right place.

It's a while since I wrote this and it looks like I had to create 2 reports to cater for the second column - the second report has a left margin of 11 cms.

The code does force you to open the report in design mode to adjust the report header height, so you would have to distrubute as an mdb, not mde. But it works really well.

HTH: code below - watch the wrap.
Kath

--------------------------------------
Private Sub PrintLabel_Click()
Dim strerrormsg As String
On Error GoTo Err_Handler
Dim IntLabelNo As Integer, strMsg As String, Rptname As String
Dim IntRptheight As Integer
If Me.Dirty Then
    DoCmd.RunCommand acCmdSaveRecord
End If
Rptname = "RptClientLabel"

'Each cm is 567 twips in measurement
    strMsg = "Enter label no (from 1 to 10 for first column, and 10 to 20 for second column):"
    IntLabelNo = InputBox(Prompt:=strMsg, _
        Title:="Client Labels", XPos:=2000, YPos:=2000)
    If IsNull(IntLabelNo) Or IntLabelNo = 0 Then
        MsgBox ("No label no selected"), vbOKOnly, "Reports"
        GoTo Normal_exit
    End If
    
    If IntLabelNo < 1 Or IntLabelNo > 20 Then
        MsgBox ("Label number can be from 1 to 20"), vbOKOnly, "Reports"
        GoTo Normal_exit
    End If
    If IntLabelNo > 10 Then
        Rptname = "RptClientLabelColumn2"
        'push data to 2nd column
        IntLabelNo = IntLabelNo - 10    '11 become position 1, 12 becomes pos 2 etc.
    End If

    If IntLabelNo = 1 Then
        IntRptheight = 800
    ElseIf IntLabelNo > 1 Then
        IntRptheight = ((IntLabelNo * 567) * 2.54) - 567
    End If
    
    Application.Echo False
    
    If Rptname = "RptClientLabelColumn2" Then
        DoCmd.OpenReport "RptClientLabelColumn2", acViewDesign
        DoCmd.SelectObject acReport, "RptClientLabelColumn2"
        Reports!RptClientLabelColumn2.Section(1).Height = IntRptheight
        DoCmd.Save acReport, "RptClientLabelColumn2"
        DoCmd.close
        Application.Echo True
        DoCmd.OpenReport "RptClientLabelColumn2", acViewPreview, [ClientID] = Me.ClientID
    Else
        DoCmd.OpenReport "RptClientLabel", acViewDesign
        DoCmd.SelectObject acReport, "RptClientLabel"
        Reports!RptClientLabel.Section(1).Height = IntRptheight
        DoCmd.Save acReport, "RptClientLabel"
        DoCmd.close
        Application.Echo True
        DoCmd.OpenReport "Rptclientlabel", acViewPreview, [ClientID] = Me.ClientID
    End If
    
    
Normal_exit:
    Application.Echo True
    DoCmd.SetWarnings True
    Exit Sub

Err_Handler:
    Select Case Err.Number
        Case 13
        Resume Normal_exit
    Case Else
        MsgBox "Error: [" & Err.Number & "]  " & IIf(Len(strerrormsg) > 0, strerrormsg, Err.Description), vbCritical, "Error Message"
        Resume Normal_exit
    End Select
End Sub
  ----- Original Message ----- 
  From: pedro at plex.nl 
  To: AccessD at databaseadvisors.com 
  Sent: Friday, November 21, 2003 10:05 AM
  Subject: [AccessD] 


  Hello group,

  i want to make adress-labels for 1 single adress. In our hospital we use sheets of labels. Is there a way on a form when i have selected one user, to give the position on the report, where the adress on the label must be printed.

  for example

  i have a labelsheet with 6 labels. Can i make command buttons an click on the third commandbutton, so that the adress is placed on the position of label3 

  "labelsheet"

   cmd1   cmd2   cmd3
   
   cmd4   cmd5   cmd6 


  TIA

  Pedro Janssen

  _______________________________________________
  AccessD mailing list
  AccessD at databaseadvisors.com
  http://databaseadvisors.com/mailman/listinfo/accessd
  Website: http://www.databaseadvisors.com


More information about the AccessD mailing list