If you are using Access XP or above you can use the Printers collection to
choose a specific printer.
If this is not your case, you can write this function in a standard module
(it retrieves the names of the printers)
Public Function wshPrinters() As Collection
Dim wshNetwork As Object 'New wshNetwork
Dim col As New Collection
Dim i As Integer
Set wshNetwork = CreateObject("WScript.Network")
With wshNetwork.EnumPrinterConnections
For i = 0 To .Count - 1
If i Mod 2 <> 0 Then
col.Add .Item(i)
End If
Next
End With
Set wshPrinters = col
Set col = Nothing
Set wshNetwork = Nothing
End Function
and you can call it in this way
Sub EnumPrinters()
Dim prn As Variant
For Each prn In wshPrinters
Debug.Print prn
Next
End Sub
For setting the report's margins you better have a look at PrtMip property
in Access help.
--
Saludos desde Barcelona
Juan M. Afan de Ribera
<MVP Ms Access>
http://www.juanmafan.tk
http://www.clikear.com/webs4/juanmafan