Access UI chart text legend sorted as number - ms-access

I have searched for a solution but I can't find one suitable on this problem.
I have a chart in access where the Y-axis is text but starts with a number, so up along the y-axis i get this:
I know why, but I don't know how to fix it.
They all have an ID which is fine. I can chose to put the ID on the Y-axis, but then the kW range can't be visualized.
How is this changed?
Changing the text to number is not possible as it needs to be like "a-b kW".
Thanks in advance.

For those who might get this problem, I found out why.
When selecting the data, it chose to use the "Total" function, and "Avg" because that is what the values are. (The picture below says "Group By" but it was automaticly set to "Avg". I just forgot to change it when i snipped for stack.
That results in:
But if i remove the "Total" function i get this:
So, removing the "Total" function works here...

In your query, can you sort by ID, but not display it (e.g., in the query designer, sort 'descending/ascending' on the ID field, but clear the 'display' check box)?
As an aside, I've always had a tough time with Access charts... on my last project, the customer wanted a rather complex bar chart, and I ended-up drawing and resizing rectangle objects to get the look that the customer wanted.

Related

SSRS single bar-chart

Good day all,
Please am trying to create a SSRS report that looks like the image below
i have my table structure in this manner
Please note the data are not in relation with the chart
But all i could get as a result is a multiple bar chart. that resembles the image below.
Thanks in anticipations of your response
First of all, your "Balance on COC" is negative. That's probably not just a chart visualization issue.
You can format the numbers on the y-axis to be more readable like they are in your first screenshot. Click on the Chart Axis and set the LabelsFormat property to #,0;(#,0).
While numbers in the chart can have up to 16 digits, that is highly unreadable for most people. You might want to consider visualizing the numbers in Billions instead.
To get the labels on the x-axis you'll need to set that field as the Category Group. Then you can delete the legend area from the chart. You can also remove the "Axis Title" areas since they are not needed in this case. This will all make it look more polished like the other image.

Missing bar/value on SSRS bar chart

I'm having trouble with a missing bar on an SSRS bar chart. I've done a bunch of searches online to try to find solutions, but nothing I've tried seems to fix it, and I'm getting frustrated.
I have the following data (this is a screenshot of the query results run directly from the dataset in SSRS):
And no matter what I do, the "Test" grade will not show up in the Chart:
Actually, the original list of Grades didn't include "Unsatisfactory", and the "Test" grade still didn't appear. I added the 4th grade to see if it would change which bar didn't appear, or to see if it was locked to a limited number of bars or something, but, as you can see, it included the new Grade, but it still leaves out "Test".
I've tried the following things, with no success:
Made sure there were NO chart or dataset filters set and the chart is not in a table or anything else that has filters (it's not filtering that Grade out by anything I can find)
Chart Axis Interval: =1
Chart Axis AllowLabelRotation = Rotate30 (in case the labels were too long or something...?)
Changed the size of the chart (in case there wasn't enough room for 4 bars)
Changed the label font size (in case the labels were too long or something...?)
Changed the name of the "Test" Grade from "Letter" (in case that was a reserved word or something), and also tried setting it to my name instead of "Test"
There's probably more that I've tried, but that's all I can remember at the moment.
Here's a screenshot of my chart settings -- the Expression is =((Fields!TotalStudentsPerGrade.Value / Fields!TotalStudentsInClass.Value) * 100) to get the percent:
Well, I don't understand why it's working now, but apparently, even though I checked that the query was returning all of those values and there were no filters anyhow, somehow something was ignoring one of the students that had that "test" score. I added the "test" score to another student to see if it would show 2 when it wouldn't show 1, and it only showed 1. Again, I tested the query and the "test" grade was showing in the dataset results, so I don't understand why the chart wouldn't have just shown it.
In any case, it's resolved, though I don't understand why it was broken in the first place.

How to hide a duplicate row in SSRS

I am new to using SSRS. I have looked around Stack Overflow for answers to this question but haven't found it.
I am producing a simple report but wish it to be filtered to not display the result if it is a duplicate set of results.
Basic report
A lot of forum posts mentioned using code similar to the following to be set in the visibility of the Table Properties.
=IIf(Previous(Fields!Country.Value) = Fields!Country.Value, True, False)
However this didn't work. I then tried going to the properties box of the country to hide duplicates and this kind of worked. It removed duplicates if they were only in the next row and unfortunately it just made the cell blank.
Attempt at hiding the duplicate rows
What I wanted is to just display the list of unique values where the reference and the country are never repeated. This way I will get a list of countries for my reference.
Many thanks in advance to anyone who is able to help a new learner like myself.
I am adding in the edit suggested by Alejandro below,
It sort of works, the suggestion did remove the blank rows (which became blank when I applied the HideDuplicates from the properties of the country. The trouble is the report is only hiding duplicates if they come from the previous line. I tried grouping etc but it did not work.
Try selecting and setting the hidden property to the whole row.
UPDATE:
Using the expression works only if the Country column is sorted, so repeated countries will be in contiguous rows.
Go to tablix property and add a sort by Country property. Don't use HideDuplicates property but use =IIf(Fields!Country.Value = Previous(Fields!Country.Value), True, False) expression in the whole row.
It should work.
Let me know if you need further help.
It sounds like you just need to group the dataset, no?
If you open the row group properties, set it to group on Reference and Country.
Here are two tables... the first has no grouping and so there are repeats. The second is grouping by Reference and Country.

SSRS Chart Custom Legend

I have a pie chart like this
However, I'd like it to look like this (i.e. left-aligned text, right aligned values within the label)
It doesn't seem possible in SSRS, which is a problem - can anyone help?
Sure it is!
Right click your series group -> Series Group Properties...
Insert the appropriate calculations into the label expression. I've done similar things like adding counts to the axis labels on bar charts.
EDIT: I feel like your best bet for these alignments is to create a small table next to the chart. It's an awkward solution, but here's an example I threw together to show it can kinda be done. You just have to make sure they are sorted the same. You can use a group + dataset to get your values. It's a very brittle fix, but it works.

How can I make the column widths of a list box in MS-Access2007 automatically size themselves correctly?

Background info:
I was handed a "Tool", which was made using MS-Access 2007, and asked to add some things... The tool is basically a collection of options for querying a database. On a form titled CreatedReport there is a listbox that is bound to a table called analyzed which has all of resulting data from the query/queries that ran. The original creator of this tool set the column widths to specific values but with the new collection of possible results, those widths are very far off.
Desired Outcome:
The final result I want to achieve is, of course, to have the columns be the correct widths for the info that is in the columns. As long as that is achieved, I really don't care which route I have to take to get there.
Question:
How can I get the columns in a listbox in MS-Access 2007 to be sized appropriately for each use? Is there an auto-size feature I haven't stumbled across yet or do I need to hard code the set of column widths for each group? This wouldn't be too hard to do since there would only be about 4 or 5 different groups but I would prefer for the process to be automatic if at all possible.
Another approach would be to have the results returned in a sub form datasheet view, then the user can adjust the column widths also to set the widths automatically use code like this:
Example
This example takes effect in Datasheet view of the open Customers form. It sets the column to fit the size of the visible text.
Forms![Customers]![Address].ColumnWidth = -2
You could put this code into the Current Event of the sub form.
I don't think that Robert Harvey's answer is actually responsive to your question.
What you need to do is:
calculate the maximum length of the values in each column,
AND
figure out, based on the font in use, how wide the column should be.
Note that you may not actually want to set it to the maximum width if the value exceeds a certain threshold.
I don't know to do the second taks, but I suspect Stephen Lebans has already done the work on it. You might want to search his website for it.
Last time I checked, you still had to write code for this.
Your best bet is to use a resizer someone has already written. Here is a good one. It's old, but it shoul still work:
http://www.jamiessoftware.tk/resizeform/rf_jump.html
This is a quick solution that should help when you want to set up listview columns of different widths, and you know in advance the widths you want (eg, you know that column X will always be a 2-character State abbreviation, and column Y will always be a city name).
Just supply all the widths as a single semi colon-delimited string. Code each width as a number and a unit, such as 'in' or 'cm'. This worked well for me: Me.lsvPayHist.ColumnWidths = "1.0 in;0.8 in;1.0 in;1.0 in;2.0 in"