Venga, va
Hazte un informe vacío por cada una de las impresoras que quieras seleccionar. P.ej. iLaser y iTicket
En ambos configura la impresora que le corresponda y las opciones de impresión que quieras.
En un nuevo módulo pega lo siguiente
Function ChangePrinter(rptToChange As String, rptPrinter As String)
Dim rpt1 As Report, rpt2 As Report
DoCmd.OpenReport rptToChange, acViewDesign
DoCmd.OpenReport rptPrinter, acViewDesign
Set rpt1 = Reports(rptToChange)
Set rpt2 = Reports(rptPrinter)
rpt1.PrtDevNames = rpt2.PrtDevNames
DoCmd. Close acReport, rptPrinter, acSaveNo
DoCmd. OpenReport rptToChange, acViewPreview
End Function
Y guárdalo.
Cuando quieras imprimir un informe, tienes que llamar previamente a esta función. Suponiendo que tengas un botón en un formulario para lanzar el informe, lo que tienes que hacer es editar el código y, justo antes del docmd. Openreport que abre el informe poner una línea que diga
changePrinter "miInformeQueQuieroImprimir","iLaser"
O iTicket según el caso.
Está claro lo que hace la función supongo. Como es complicado crear la configuración de impresora desde vba, lo que se hace es copiar la que quieras de uno de los informes vacíos al informe que quieras imprimir.
Por cierto, no me lo he inventado yo, está en
http://support.microsoft.com/default.aspx?scid=kb;en-us;319317