Printer and performance.

packerman

New member
Local time
Today, 14:54
Joined
Jan 29, 2025
Messages
13
Hi all.

I apologize that I'm a noob when it comes to using Access.

I have a customer that was upgraded to Windows 11 computers from Windows 10. They had a very old basic server that was only used for file server and hosting the Back End DB Access file. This was upgraded to a workstation running Windows 11 where it's shared with another folder. I have two issues going on.

On different parts of the pages there is buttons setup that are designed to print to specific printers. Large Label, Receipt and Small Label. The printers are Dymo 400 and 450 printers. They worked with no issue with Windows 10. These 3 printers are connected and shared via usb to a single workstation running Windows 11. I get a message on two of the 400 printers "this document was previously formatted for the printer but that printer isn't available.". Is there a way to change which printers these buttons need to attach to?

The interesting thing is I don't get that message when I print from Access 2010 to the local usb printers. Only the computers printing from access to the shared printers have that error. I wanted to be able to designate the actual printers that will print for each button.

I also have another issue. The performance is generally fine when I have 1 person logged into the front end database. This BE database resides on the Windows 11 workstation as a file share. The users use Access 2010 Runtime. The database starts to slow down as more users login. Everything is wired. I looked at the performance and everything looks fine.

This customer just had their tech retire and I was asked to help move forward. Any suggestions would be appreciated.
 
Last edited:
Reinstall the printers. Try opening the report in Access and changing the printer.

Good luck on this, printer connection problems can hard to solve especially with label printers.
 
I'm having the customer purchase 2 450 printers to replace the 400 since Dymo doesn't technically support Windows 10 let alone with Windows 11. The 450 printer prints every time. I spent hours trying to get them to work on the two other computers that need to print to them. Again the computer where they're shared from can print no issue to them but something breaks when sending the print jobs from the other two computers.
 
The names of the printers may have changed. As someone already said, Open the reports in design view and choose the remote printer. then save it. You can change the printer on the fly but I don't have the code handy.
 
To list the names of the available printers, save this procedure to a standard module, and run it from the Immediate window:
Public Sub DumpPrinters()
Dim p As Access.Printer

For Each p In Access.Printers
Debug.Print p.DeviceName, p.DriverName, p.Port
Next p
End Sub
 
To list the names of the available printers, save this procedure to a standard module, and run it from the Immediate window:
Public Sub DumpPrinters()
Dim p As Access.Printer

For Each p In Access.Printers
Debug.Print p.DeviceName, p.DriverName, p.Port
Next p
End Sub

So this is where my lack of knowledge comes in with Access. I have no idea what this ties into or what this does. I'm basically taking a crash course. I've installed Access hundreds of times for other vendors but never had to dive in and do work with it.
 
First things first. Each of those buttons you mentioned probably has some VBA code linked behind it. If you can get into the code, look for the button-name_Click routines for the three buttons you mentioned. Some form of command like DoCmd.OutputTo will be present in that code. Find the code that directs each output to a specific printer. Find the name of each printer, which will be part of each of those commands.

You said you were on Win11. Use the Windows Start >> Settings >> Bluetooth & Devices >> Printers & Scanners - and take a look at what printers are listed. Compare the device names. That will tell you if the devices exist on the system. You can TRY to add a device - but if this is a driver problem you might not find a compatible driver. If the printers came with a distribution kit and you still have it, you could try to re-install the drivers - if you have a DVD kit. If you have to let Windows search online for a driver, that might be tricky from what you described earlier.

Another part of the problem MIGHT be - and don't hold my feet to the fire on this one - the printers didn't change names but the machine name hosting the printers DID - and that changed the network path to them. Since you mentioned USB connections, that implies hard-wired rather than wireless printers. If the printer's actual name was something like "DYMO 400" that would be the name in the Printers & Scanners list on the machine where it is directly connected. Let's say that machine was called "SERVER1". To the other machines that use it, that same printer might be named "SERVER1\DYMO 400" - and if you replaced the server machine, its name might have changed. If that name appears in the VBA code that you found earlier to identify the printer names, you MIGHT get away with editing the names to match the new names. However, if the Win11 device driver is also an issue, you are better off with the new, Win11-compatible printers and drivers.
 
You need to know the specific name of the printer the labelling reports are set up to print to .
Once you have connected the printers in windows, you need to rename them on the new machine to match the expected name saved with the report.

The original machine that this all worked on should still have the printer names available.
 
You need to know the specific name of the printer the labelling reports are set up to print to .
Once you have connected the printers in windows, you need to rename them on the new machine to match the expected name saved with the report.

The original machine that this all worked on should still have the printer names available.
I did write it down but I think it had something to do with the fact that the machine was the domain name of the workstation. I gave the same name to each printer but it only prints on the Dymo 450 printer properly.

The computer has the same name as the old desktop. WS-01 but without the added domain context. I don't understand why the Dymo 450 prints but the 400 doesn't.

Do you know anybody who does consulting for this? I feel like I'm going to spend 20 hours trying to resolve this if these replacement printers don't work.
 
Whatever machine was going to be the host of the printers, be sure to install them on that machine first. Then you should be able to find them on your LAN pretty easily.
 
First things first. Each of those buttons you mentioned probably has some VBA code linked behind it. If you can get into the code, look for the button-name_Click routines for the three buttons you mentioned. Some form of command like DoCmd.OutputTo will be present in that code. Find the code that directs each output to a specific printer. Find the name of each printer, which will be part of each of those commands.

You said you were on Win11. Use the Windows Start >> Settings >> Bluetooth & Devices >> Printers & Scanners - and take a look at what printers are listed. Compare the device names. That will tell you if the devices exist on the system. You can TRY to add a device - but if this is a driver problem you might not find a compatible driver. If the printers came with a distribution kit and you still have it, you could try to re-install the drivers - if you have a DVD kit. If you have to let Windows search online for a driver, that might be tricky from what you described earlier.

Another part of the problem MIGHT be - and don't hold my feet to the fire on this one - the printers didn't change names but the machine name hosting the printers DID - and that changed the network path to them. Since you mentioned USB connections, that implies hard-wired rather than wireless printers. If the printer's actual name was something like "DYMO 400" that would be the name in the Printers & Scanners list on the machine where it is directly connected. Let's say that machine was called "SERVER1". To the other machines that use it, that same printer might be named "SERVER1\DYMO 400" - and if you replaced the server machine, its name might have changed. If that name appears in the VBA code that you found earlier to identify the printer names, you MIGHT get away with editing the names to match the new names. However, if the Win11 device driver is also an issue, you are better off with the new, Win11-compatible printers and drivers.

Whatever machine was going to be the host of the printers, be sure to install them on that machine first. Then you should be able to find them on your LAN pretty easily.

So the printers are connected and shared. I've connected those shared printers on the other two workstations. It sees and installs the shared printers without issue. It prints on the small label printer. The other two don't print though and throw that error. Those are the 400 series. The 450 works no issue.
 
From the host system and from any other connected system, attempt to trigger a print action locally and remotely WITHOUT using Access to trigger it. Manually select the targeted printers from other utilities that will do printing. That includes Word, Notepad, most browsers, and most mail clients. This is to isolate whether the problem is that Access is having trouble or WINDOWS is having trouble. All you need is one page, one small print job for each to determine which printers are remotely visible and also whether they are locally visible for printing.
 
It prints but then has issues printing again on both desktops. The 450 has no issues printing. It's not unique. I kept the exact same names and paper preferences on everything. They have two 450 units coming tomorrow. I will check then.

I'm still trying to figure out what you posted above about the VBA printing. I would really like to see the exact printer name that was selected so I could adjust it.
 
I'm still trying to figure out what you posted above about the VBA printing. I would really like to see the exact printer name that was selected so I could adjust it.

If you have a form (one that contains a button for this print action we are discussing) and open it in Design View, you can see the various controls on the form. One of these controls is the button you have in question. If you select the button so that it is highlighted, you can open the property sheet for that control button. For the Event properties, you can see things like GotFocus and LostFocus ... and Click. If you then look at the property listed for the button's Click event, it might say something about a macro, but it MIGHT show [event procedure]. If you double-click THAT, it will open the VBA window and show you the button-name_Click event and you can see what it did to trigger the print action. IF you are lucky, it will include the name actually used for printing.

It is POSSIBLE that the line in question might look like this:
Code:
Application.ActivePrinter = "some-printer-name"
and that will occur BEFORE you do the .PrintOut operation or OpenReport operation with acViewNormal.
 
So there is where I'm at.
 

Attachments

  • xtfF1JMXKl.png
    xtfF1JMXKl.png
    103.4 KB · Views: 12
  • xRDTeAs0Ca.png
    xRDTeAs0Ca.png
    147.1 KB · Views: 12
In the screenshot, it appears that the printer is being set by the line

Code:
Set Application.Printer = Application.Printers(Globals.P_R_Big)

This means that someone has created an object called "Globals" and it has a member or property called P_R_Big, which I would assume means "it's a big printer" OR that it prints on big labels or on big paper. I'm betting that Globals.P_R_Big will resolve to a name.

You can open the VB window (actually you already HAVE it open in the xRDTeAs0Ca.png image). You can do a search for "Globals" - click the "Binoculars" icon - and check the "entire project" option to find all the places where "Globals" is referenced. One or more of those places will show you something about Globals.P_R_Big, and that is where you will find the printer names. I also saw a reference to Globals.P_R_Small, which I'm betting is another printer. This kind of searching is tedious but it is how you find out what somebody else did.

Or you can simply open the Immediate Window by clicking "View" from the VBA menu bar and then selecting "Immediate Window" and type
Code:
Debug.Print Globals.P_R_Big
to see what it represents.
 

Users who are viewing this thread

Back
Top Bottom