I recently created a database application in MS Access 2010 using navigation subforms. The users of this database are used to printing out forms with data from individual records. The navigation subforms cannot be printed in MS Access 2010. I read that I should use reports for printing individual records, and I am in the midst of creating reports for each of the forms. The task of creating all the reports is so laborious that I am concerned about the ability to maintain the database over time. Whenever we change a form, we will also have to change the corresponding report, because both look identical.
Can someone suggest a better way of letting users print out the contents of forms for individual records in an application in which the forms are nested in navigation subforms?
It occurs to me that vba could create an instance of a stand-alone form and print it when a control is clicked in the nested form. Ideally, this might happen behind the scenes, without the form ever becoming visible. This would cut the work of making changes to forms in half. But how would it look in code? Are there reasons not to do this? Do you have any better ideas?
Related
I am building an Access Database application in MS Access 2007 which is essentially a tool for data collection which I will need to distribute to various sites to be filled out. After the sites fill out all the necessary records, they will return the tool and I will need to merge all the data from the various sites into a single database for analysis. I have 2 tables and 3 forms with a bunch of custom VBA code behind for data validation, cleaning and flow.
I have a Summary form that shows all the records currently entered. Users can then Add a record using a button on the Summary form which launches a data entry form (let's call it Data Entry Form #1). From Data Entry Form #1, there is another form that can be launched (Data Entry Form #2) for entering child records about the record being filled out on Data Entry Form #1. There is referential integrity enforced at the table level.
The flow from the Summary Form to Data Entry Form #1 and Data Entry Form #2 is important for the integrity of the data. I have dictated this flow explicitly in VBA and will instruct users to always begin at the Summary Form.
After that lengthy background, my question.....
What are my different options, and the relative advantages/disadvantages for the options for deploying this application to my various sites. My basic requirements are:
Ideally users would never see the tables in which the data is being stored in.
The Summary form would launch when opened and they could not open any other form directly.
Closing the Summary form would close the application.
Since there is a bunch of VBA code dictating important functionality, if they did not accept the Security Warning, they would not be able to access any of the forms or use the tool
I can easily script the extraction/export of the data from the two tables for each tool
I am vaguely aware of the following options:
- Distribute the full ACCDB file to the sites
- Create and distribute an AACDE file to the sites
- Use the Access Developer Extensions to "package" the application - create and EXE file?
I have also read that if users do not have Access 2007 or later, that they can download the MS Access Runtime Services and be able to use my application without having to buy/install a full version of MS Access. Can someone confirm this? Does this apply to all of the above (ACCDB, ACCDE, EXE) Is there any functionality that would not be available to them from a strictly data entry role?
Thanks!
You should be able to do most of this with options set within access, plus some code;
Create an accde;
Using that accde, in the options, untick display navigation pane (or something like that); There should be an option to disable the shift key as well.
Set startform to the summary form
Closing the summary form closes the application: In design view of the summary form (in the accdb, before you do the rest of this), create a form_unload event; In this event put
DoCmd.Quit
More of an issue might be whether or not all the sites have the necessary components of ms office to run access 2007, or if you need to provide an access 2007 runtime as well, but I'm not going there. If you need to do this, you'd best ask another question or go hunting for an existing answer.
Hope this helps
If you do want to package the database as a run-time, the MS tools are notoriously flaky when it comes to deploying. A company called SageKey sell scripts that actually work, dealing with the issue of other versions of Access being installed, and many other things.
I've used about three versions of their scripts (ie. for three different MS Access versions), and they have been great.
I'm having to do some maintenance on a Access 2007 application. I've never really used it before so I'm struggling to figure out where things are hidden. This application is broken up into two ACCDB's - one for the application, one with the data. Inside of the application I am attempting to track down where various queries are defined but not having much luck.
I've looked in the data ACCDB and selected the "Queries" category off the sidebar. The queries are not there. Inside of the Visual Basic editor of the application ACCDB, they also don't appear in the "Microsoft Office Access Class Objects".
If I click on "Create", then Query Design it seems to open a designer where I can select these queries. However, I still can't seem to figure out how to actually edit existing ones (which is what I really want to do).
Where on earth can I edit them?
On the sidebar on the left you can select different categories like Tables, Queries etc.; however, queries can also be stored in the RecordSource of Forms, Reports and the RowSource of controls. For instance ListBox and ComboBox have a RowSource property. Queries can be stored as SQL strings in VBA code or Macros or they can even be created dynamically with VBA.
Im trying to access MS Access Report detail instances of a report page in VBA so i can do some formatting on each entry in the report.
Im not sure if this is possible as im trying to create a report which shows positive and negative differences between specific text boxes of 2 detail sections (only 2 will allways be visible on a report page).
I know how to code colours and the differences - i would just like to know how and if i can access those instances of text boxes in the detail sections so i can compare their content.
Im not a big fan of VBA so im not much knowledgable on the subject
Any help much apreciated!
As far as I understand your problem, the best way would be to use the "Format" event of the report's detail section. This event is fired every time a record is formatted to be displayed in this section, so Me.txtMytextcontrol.Value should give you access to that very control at that time.
This is not about coding question. It's about Software (Database) Design.
Background: My office has a ADP database as front and SQL Server is a backend. There are a dozen of basic standard reports in the ADP file. End users slightly change reports every year such as adding some texts, changing logo, bolds, highlights. I help them back and forth for updating these. After they are ok with the report, I upload to the server so other users can use it. I do this over and over over the time (hundreds times). I think there should be a better way.
Recently, I test a new design by splitting Report and Database. I let user create a words file for the report that they like. I add MailMerge fields in the report after they're done. My users are very good in MS Words. In the database, I add standard MailMerge code. When users pick what template (docx) they want for a report then runs it, it works fine.
Question: Can I use MailMerge and MS Words as Report Generator instead of Access Report? if it's work fine, I will rollout to all the reports. I just want to miss anything before doing so.
Pro(s)
- Users can add any complex format to a report (almost anything you can imagine in MS Words, which you can't do in Access)
- I have less work. No recode, recomplie, or reupload.
Con(s)
- Report Desinger is run faster than MailMerge for a large report.
- Train user how to update MailMerge fields
Yes, you can use Word and MailMerge to create reports. However, keep in mind that you're giving up control, since users could edit the templates in a way that breaks your MailMerge.
In Access 2003 I was easily able to get to all the tables and edit/view data directly. However, in 2007, I'm unable to find this functionality. I have an MDB with a form, and I can only view the main table of user input data in the Datasheet View.
I'm trying to copy a list of options (there's a lot of them) set to a Combo Box into another program, and it would be easier if I could just get to the Control Source table.
You should be able to see the access objects (tables, queries, macros, forms) in the Navigation Pane on the left side of the screen. It may be hidden in that .mdb, though. If you create a new .mdb and a couple of tables, can you see them?
The UI's a little different and it takes some getting used to.