Convidado 15/7/2011, 23:04
A explicação do colega JWano
É bem simples, são só quadro linhas de código.
No evento, AO ABRIR do Relatório:
Me.Printer.TopMargin = 3 * 567 'margem superior
Me.Printer.BottomMargin = 1* 567 'margem inferior
Me.Printer.LeftMargin = 3 * 567 'margem esquerda
Me.Printer.RightMargin =1 * 567 'margem direita
Os números em vermelho, são as medidas que vc. quer nas margens, em centimetros.
Os centimetros são multiplicados (*) por 567, para converte-los para twips, que é a medida que a propriedade aceita.
Para o uso em meu Sistema, estou pegando essas medidas em uma tabela que tenho em um BD auxiliar,
as quais o usuário personaliza de acordo com sua vontade.
então ficou assim:
Private Sub Report_Open(Cancel As Integer)
Dim Db As DAO.Database
Dim rs As DAO.Recordset
Dim cmh As String
Dim strSQL As String
cmh = CurrentProject.path & "\Wano_PC.mde"
strSQL = "SELECT * FROM tbImpr WHERE cdRel = " & 33
Set Db = OpenDatabase(cmh)
Set rs = Db.OpenRecordset(strSQL, dbOpenSnapshot)
If rs.RecordCount > 0 Then
Me.Printer.TopMargin = rs!nMargSup * 567 'margem superior
Me.Printer.BottomMargin = rs!nMargInf * 567 'margem inferior
Me.Printer.LeftMargin = rs!nMargEsq * 567 'margem esquerda
Me.Printer.RightMargin = rs!nMargDir * 567 'margem direita
End If
rs.Close
Set rs = Nothing
Db.Close
Set Db = Nothing
End Sub
Agora quero definir o papel: A4, A5, personalizado
O Access não aceita a definição direta como nas margens, terá que ser definida nas propriedades
tipo a escolha da Impressora. -
Assim que tiver um tempo, vou trabalhar nisso
Poderia postar depois um pequeno exemplo do que fez amigão?
Saudações