Please consider donating $1 per sample downloaded, http://www.rogersaccesslibrary.com/whydonations.htm - find out why here .
ChooseReportFields.mdb
This sample very roughly illustrates how to create a query programmatically which chooses the FIELDS to be reported on a report based on the selected values of a multi-select list box.
The user selects the table to be reported and is presented with a list of fields for the table. All tables which the developer wants in the list must have a "tbl" prefix. The user then selects the Fields he wants in his report in the multi-select list box. Pushing the RunReport button creates a query which selects the field names chosen and renames them with generic field name (Field0, Field1, etc). For the unselected fields, the field is set to NULL so the user will not be prompted for empty fields. Each field that is chosen has its corresponding record set to the field number in the TableFields table.
The report has field headings that are read from the TableFields name field using DLookup and using the Indexx field in the where clause. The report title is taken from the cboTable combo box in the form. The report has a maximum of 6 records which can be chosen. That number can be changed, but must be no higher than the maximum number of fields in the smallest table. In other words, if the smallest table has only 5 fields, the maximum number of fields in the report should be 5.
This form very roughly illustrates how to create a query programmatically which chooses the FIELDS to be reported on a report based on the selected values of a multi-select list box. The user selects the table to be reported and is presented with a list of fields for the table. All tables which the developer wants in the list must have a "tbl" prefix. The user then selects the Fields he wants in his report in the multi-select list box. Pushing the RunReport button creates a query which selects the field names chosen and renames them with generic field name (Field0, Field1, etc).
For the unselected fields, the field is set to NULL so the user will not be prompted for empty fields. Each field that is chosen has its corresponding record set to the field number in the TableFields table. The report has field headings that are read from the TableFields name field using DLookup and using the Indexx field in the where clause. The report title is taken from the cboTable combo box in the form. The report has a maximum of 6 records which can be chosen. That number can be changed, but must be no higher than the maximum number of fields in the smallest table. In other words, if the smallest table has only 5 fields, the maximum number of fields in the report should be 5.
Disclaimer: This is not designed to be an all encompassing generic report generator. It is designed to illustrate how you can add flexibility for a limited number of report options. I have made many assumptions which may not be true for your application.
Download Access 97 (51 KB): http://www.rogersaccesslibrary.com/forum/uploads/5/ChooseReportFields97.zip - ChooseReportFields97.zip Access 2000 DAO (51 KB): http://www.rogersaccesslibrary.com/forum/uploads/5/ChooseReportFields2k.zip - ChooseReportFields2k.zip
------------- Consider donating $1 per sample downloaded, http://www.rogersaccesslibrary.com/whydonations.htm" rel="nofollow - find out why here .<
|