Looking at your code in the first post I think you solution may be as simple as moving some code around. Try setting the printer before you load the report. In the code posted you are showing the report and then changing the printer. I can't be sure about the data report tool but the report engine I use will work with the VB printer object that is active at the time the report is loaded. It will format the report based on this printer object and if you tell it to print without prompting for the printer to use then it will use the printer that was active when the report was loaded.
Code:
Dim prt As Printer
For Each prt In Printers
If prt.DeviceName = "\\Tmk_print_serve\lp1" Then
Set Printer = prt
Exit For
End If
Next
DataReport1.Show
DataReport1.PrintReport
Printer.Print "test"