Eis aqui um pequeno exemplo da rotina....
Public Sub ImprimirEtiquetas(Tipo As String, MargEsq As Single, MargSup As Single, NLinhas As Single, NColunas As Single, Largura As Single, Altura As Single)
Dim Linha As Single
Dim Coluna As Single
Coluna = 1: Linha = 1
Set RstP2 = DbRelatorios.OpenRecordset("SELECT * FROM Etiquetas")
Do Until RstP2.EOF
Imprimir MargEsq + (Largura * (Coluna - 1)), MargSup + (Altura * (Linha - 1)) + (0.4 * 0), RstP2("Campo1") & ""
Imprimir MargEsq + (Largura * (Coluna - 1)), MargSup + (Altura * (Linha - 1)) + (0.4 * 1), RstP2("Campo2") & ""
Imprimir MargEsq + (Largura * (Coluna - 1)), MargSup + (Altura * (Linha - 1)) + (0.4 * 2), RstP2("Campo3") & ""
Imprimir MargEsq + (Largura * (Coluna - 1)), MargSup + (Altura * (Linha - 1)) + (0.4 * 3), RstP2("Campo4") & ""
Imprimir MargEsq + (Largura * (Coluna - 1)), MargSup + (Altura * (Linha - 1)) + (0.4 * 4), RstP2("Campo5") & ""
If Coluna = NColunas Then Coluna = 1: Linha = Linha + 1 Else Coluna = Coluna + 1
If Linha > NLinhas Then Linha = 1: Printer.NewPage
RstP2.MoveNext
Loop
RstP2.Close
Printer.EndDoc
End Sub