Hello Simon,
I posted this yesterday, but no problem to post it again. This works
for Excel and should work in Access also. Since the both use the same
caommand to set the printer.
EXAMPLE:
Application.ActivePrinter = GetDeafultPrinter
Code:
--------------------
Private Declare Function GetProfileString _
Lib "Kernel32.dll" _
Alias "GetProfileStringA" _
(ByVal lpAppName As String, _
ByVal lpKeyName As String, _
ByVal lpDefault As String, _
ByVal lpReturnedString As String, _
ByVal nSize As Long) As Long
Public Function GetDefaultPrinter() As String
Dim Buffer As String
Dim ByteCount As Long
Dim MaxCount As Long
Dim DefaultInfo As String
MaxCount = 260
Buffer = String(MaxCount, Chr$(0))
'Retreive current default printer information
ByteCount = GetProfileString("windows", "device", ",,,", Buffer, MaxCount)
DefaultInfo = Left(Buffer, ByteCount)
'Remove second item between commas and replace with "on"
I = InStr(1, DefaultInfo, ",")
LeftSide = Left(DefaultInfo, I - 1)
I = InStr(I + 1, DefaultInfo, ",")
RightSide = Right(DefaultInfo, ByteCount - I)
DefaultInfo = LeftSide & " on " & RightSide
GetDefaultPrinter = DefaultInfo
End Function
--------------------
Sincerely,
Leith Ross
--
Leith Ross
------------------------------------------------------------------------
Leith Ross's Profile:
http://www.excelforum.com/member.php...o&userid=18465
View this thread:
http://www.excelforum.com/showthread...hreadid=478889