A.D.Tejpal
adtp at airtelmail.in
Thu Mar 6 09:35:37 CST 2008
David, Apparently, record source of the form is based upon a crosstab table, with 16 columns representing products and 25 rows representing various stages of data. While most of the rows display routine numbers, some rows display percentages. These rows (showing percentages) are not in a separate block but sandwiched amongst normal rows displaying numbers. While using only one text box per column on a bound continuous form, you are seeking to display values in these rows in proper percent format, without disturbing normal display of numbers in other rows. If the presumptions outlined in previous para hold good, action could be considered on the following lines: 1 - For sake of illustration, let T_Crosstab be the name of table having fields RowHdg (text type) for row heading and P_1, P_2, P_3 (number type) for products. 2 - Add two fields named RowNum (number type) and RowType (text type). 3 - Populate the RowNum column with sequential numbers, in the order in which various rows are required to be finally displayed. 4 - Identify percentage type rows by entering a character (say P) in RowType column. For all other rows, leave this column blank (Null). 5 - Use sample query Q_CustomFormat, as given below, as record source for the form. Note - If you are in a position to ensure that incoming values, as appended to table T_Crosstab, are suitably formatted strings, the work-around suggested above would no longer be needed. In that case, all the product fields (P_1, P_2, -- etc) would be of text type. Best wishes, A.D.Tejpal ------------ Q_CustomFormat (Sample query) ================================= SELECT RowHdg, RowNum, P_1, P_2, P_3 FROM T_Crosstab WHERE RowType Is Null UNION ALL SELECT RowHdg, RowNum, Format(P_1, "Percent"), Format(P_2, "Percent"), Format(P_3, "Percent") FROM T_Crosstab WHERE RowType Is Not Null ORDER BY RowNum; ================================= ----- Original Message ----- From: David Emerson To: accessd at databaseadvisors.com Sent: Thursday, March 06, 2008 08:14 Subject: [AccessD] CrossTab Form I have an Access XP form (from a legacy database) that is based on a crosstab query. Across the top are a list of products. Down the first column are a list of headings: Opening Balance, Stock In, Total Stock, Stock Out, Stock Out Percentage, Closing Balance etc (there are 25 rows in total). The data is gathered from a number of other tables and queries which are linked only by the product code and are in different formats, and then placed in a temporary table for the crosstab. The number of fields is consistent - there will always be the same products, and the same headings (therefore the use of a cross tab is not for flexibility of changing products, but to get the data into the required format). There are 16 products and 25 headings, therefore 400 fields of data. Most of the rows are standard numbers but some are percentages. The problem is that all rows are formatted the same way with no decimal places. This means that the percentage rows only show whole percentages (the numbers are calculated so that 2.75% is stored as 2.75 and shows as 3). What I am looking for is a simple solution where I can format each row of data on the continuous form to suit the type of data. The sledgehammer way is to create a table with one row and a text box for all 400 fields. This would then be used on a form which is set out in a row format. I suggested that the form be turned around so that the products are down the side and the headings across the top (in standard Access fashion) but this is not the format the client wants. Is there any easy way around this? Regards David Emerson Dalyn Software Ltd Wellington, New Zealand