Você pode definir opções de configuração de página para cada relatório de um banco de dados, mas as configurações não serão armazenadas para cada usuário do banco de dados. Ou seja, se fizer alterações nas configurações de impressão do relatório Fatura, estas sobrescreverão as modificações feitas pelo usuário anterior.
Escrevendo código, você pode permitir que os usuários especifiquem configurações personalizadas em tempo de execução, sem alterar as opções de configuração de página ou de impressora padrão do relatório. Além disso, é necessário fornecer aos usuários uma caixa de diálogo ou um formulário onde possam especificar as configurações desejadas.
A ilustração a seguir apresenta o formulário Configurações da Impressora, que permite ao usuário personalizar configurações de impressão e visualizar ou imprimir um relatório.
Selecione um relatório para visualizar ou imprimir.
Selecione a impressora a ser usada para o relatório.
Especifique o tamanho e a orientação do papel.
Clique para visualizar o relatório.
Clique para aplicar as configurações de impressão mais recentes a um relatório que já esteja aberto na janela Visualizar.
Clique para imprimir o relatório.
Criar o formulário Configurações da Impressora
- Crie um formulário no modo Design e adicione os seguintes controles, conforme mostrado na ilustração acima.
- lbxSelectReport: caixa de listagem para exibir a lista de relatórios
- cmbPrinter: caixa de combinação para exibir a lista de impressoras disponíveis
- cmbPaperSize: caixa de combinação para exibir a lista de tamanhos de papel
- opgOrientation: grupo com duas opções para exibir os tipos de orientação
- cmdPreview: botão de comando para abrir um relatório no modo de visualização
- cmdApplyChanges: botão de comando para aplicar as últimas configurações ao relatório atual
- cmdPrint: botão de comando para imprimir o relatório selecionado com as configurações especificadas no formulário
- Adicione código ao evento Open do formulário para inicializar os controles.
Subprocedimento de exemplo do evento Open
Private Sub Form_Open(Cancel As Integer)
' Variable to hold the default printer index.
Dim strDefaultPrinter As String
' Variable to hold the printer object.
Dim prt As Printer
' Variable to hold the report object while cycling
' through the AllReports collection.
Dim accObj As AccessObject
' Fill the printer list.
' Make sure the RowSource is empty.
Me!cmbPrinter.RowSource = ""
Me!lbxSelectReport.RowSource = ""
' Cycle through the printers installed on the machine and add them to the combo box.
For Each prt In Application.Printers
' Use the new AddItem method to add the printer name to the combo box.
Me!cmbPrinter.AddItem prt.DeviceName
Next
' Remember the default printer.
strDefaultPrinter = Application.Printer.DeviceName
' Set the combo box to the default printer.
Me!cmbPrinter = strDefaultPrinter
Me!cmbPaperSize = 1
' Fill the report list.
For Each accObj In CurrentProject.AllReports
Me!lbxSelectReport.AddItem accObj.Name
Next
' Set the list box to the first report.
Me!lbxSelectReport.SetFocus
Me!lbxSelectReport.ListIndex = 0
End Sub
- Adicione código ao botão de comando Visualizar Relatório para abrir o relatório selecionado no modo de visualização.
Procedimento de exemplo do evento OnClick para o botão de comando Visualizar Relatório
Private Sub cmdPreview_Click()
' Variable to hold the printer object to manipulate.
Dim prt As Printer
' Grab the printer object for the selected printer.
Set prt = Application.Printers(Me!cmbPrinter.Value)
' Read user-specified settings.
prt.PaperSize = Me!cmbPaperSize
prt.Orientation = Me!opgOrientation
' Open the report in preview mode.
DoCmd.OpenReport Me!lbxSelectReport, acViewPreview
' Set the report's printer to the modified printer object.
Reports(Me!lbxSelectReport).Printer = prt
End Sub
- Adicione código ao botão de comando Aplicar Alterações para realizar modificações no relatório que já está aberto no modo de visualização.
Procedimento de exemplo do evento OnClick para o botão de comando Aplicar Alterações
Private Sub cmdApplyChanges_Click()
If CurrentProject.AllReports(Me!lbxSelectReport).IsLoaded Then
With Reports(Me!lbxSelectReport).Printer
.PaperSize = Me!cmbPaperSize
.Orientation = Me!opgOrientation
End With
Else
MsgBox "Please preview the report first."
End If
End Sub
- Adicione código ao botão de comando Imprimir relatório para impressão do relatório selecionado com base nas configurações especificadas pelo usuário.
Procedimento de exemplo do evento OnClick para o botão de comando Imprimir Relatório
Private Sub cmdPrint_Click()
' Check if the report is open.
If CurrentProject.AllReports(Me!lbxSelectReport).IsLoaded Then
' Print report if already open.
DoCmd.OpenReport Me!lbxSelectReport, acViewNormal
Else
' Set up the application printer with custom settings.
Application.Printer = Application.Printers(Me!cmbPrinter.Value)
Application.Printer.PaperSize = Me!cmbPaperSize
Application.Printer.Orientation = Me!opgOrientation
' Open and print the report using the new application-level printer settings.
DoCmd.OpenReport Me!lbxSelectReport, acViewNormal
' Reset the application printer as the default.
Set Application.Printer = Nothing
End If
End Sub
Para obter mais informações sobre como programar no Microsoft Access, visite o Office Developer Center
no MSDN (Microsoft Developer Network).