I need a VBA expert to program a Microsoft Access 2007 printing control system. The system should be able to be added to any Access 2007 database and should not include calls to the operating system but be based entirely on features within Access so that it runs on XP, Vista, or Windows 7. The database does not need to include an install, or runtime version of Access, A full version of Microsoft Access 2007 is considered a requirement for the database to function.
At the highest level the system needs to:
Provide a user interface that allows a user to see a list of reports and select and assign a printer and associated paper tray/source to each of the reports. This data must then be used when printing the report to print on the appropriate printer and paper tray.
The system should include a table where an admin enters reports they would like to be configurable (IE table with the report object name and user friendly name, plus whaterver additonal technical details IE printer etc.) the system will set the printer and paper tray information based on user input from the interface.
The system must also include a procedure or routine that can be included when a report opens or loads to apply the printer settings.
The system must perform the high level functions, but does not require an installer, the expection is that the system will be manually added to databases that will implement the system, there is no expectaion that this runs as an addin, just code that can be reused in multiple applications.
The final deliverable must be an Access 2007 format database, must include the code for insertion in reports as a globally accessable function or subroutine, must include the table where admins enter reports they want to allow users to set printers for. The deliverable must include the form where users select printers for reports added by the admin, and the ability to identify printers and paper trays/sources (see below)
The deliverable must also include 2 demo reports (any content) that can be used to verify that the system functions, it must include a demo form that has 2 buttons each programmed to open one of the 2 demo reports.
The user interface that allows the selection of printers should also include a printer id capablity. The printer ID capability should allow the user to select a printer, and a paper source/tray and then print a single page on that printer and paper source/tray with the name of the printer and the name of the paper tray/source that was selected. This printer id function should work for all properly installed physical printers available on the local machine. A printer is considered properly installed if Microsoft word can print a test page on the printer using the standard print options from within Word. All installed printers may appear in the interface, no need to try to filter or limit the printers that appear, but only the properly installed physical printers need to function. (It need not work on virutal printers like pdf printer drivers etc but only on actual physical printers)
All code should include errror trapping and handling and provide user friendly error messages if an error occurs, IE "An error occured in routine (routine name appears here) etc.
Expert Guarantee appreciated but not required.