[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

x
?
Solved

How Can I Make My Calculated Field Appear in a Given Format, for Example, No Decimal Places?

Posted on 2011-09-09
20
Medium Priority
?
284 Views
Last Modified: 2012-05-12
One final refinement I'd like to make. I'd like this calculated field (I actually mulitplied it by 1,000,000 to get a PPM) to show without decimal places. I am going to make this a Make Table Query, so that Minitab can feed off of it, so I need the formatting to be part of the table that will be made.
0
Comment
Question by:Rex85
  • 5
  • 5
  • 3
  • +3
20 Comments
 
LVL 49

Expert Comment

by:Dale Fye
ID: 36513263
Use the Round() or Int() functions.
0
 
LVL 49

Expert Comment

by:Dale Fye
ID: 36513270
Round allows you to specify the # of decimals.
0
 
LVL 41

Expert Comment

by:Kyle Abrahams
ID: 36513272
or cast:

cast (iif(Total_QNs = 0 OR Total_Shipped = 0,0,  Total_QNs/Total_Shipped)  as numeric(18,0))
0
Veeam and MySQL: How to Perform Backup & Recovery

MySQL and the MariaDB variant are among the most used databases in Linux environments, and many critical applications support their data on them. Watch this recorded webinar to find out how Veeam Backup & Replication allows you to get consistent backups of MySQL databases.

 
LVL 49

Expert Comment

by:Dale Fye
ID: 36513275
just to be clear, CAST will not work within Access, but will if you are creating a pass through query to SQL Server.
0
 

Author Comment

by:Rex85
ID: 36513300
fyed:

I tried the Round, but got Syntax Errors and it wouldn't Save. This is what I tried.

 ROUND(iif(Total_QNs = 0 OR Total_Shipped = 0,0,  (Total_QNs/Total_Shipped)*1000000)0) AS PPM
0
 
LVL 49

Accepted Solution

by:
Dale Fye earned 800 total points
ID: 36513309
You forgot the comma separating your IIF() from the 2nd parameter of Round().  Try:

 ROUND(iif(Total_QNs = 0 OR Total_Shipped = 0,0,  (Total_QNs/Total_Shipped)*1000000), 0) AS PPM

Is this all in Access, or are you using SQL Server?
0
 
LVL 61

Assisted Solution

by:mbizup
mbizup earned 600 total points
ID: 36513319
You may need to explicitly convert the output of IIf to a number (IIF returns a string).

Give this a try, too:

FormatNumber(iif(Total_QNs = 0 OR Total_Shipped = 0,0,  (Total_QNs/Total_Shipped)*1000000),0)
0
 
LVL 49

Expert Comment

by:Dale Fye
ID: 36513343
FormatNumber?

mbizup, when did that come along?  I've been using Access since 1995, and don't think I've ever seen a reference to that function.

I love it when I learn something new.  And I like the ability to wrap negatives in ().
0
 

Author Comment

by:Rex85
ID: 36513378
Fyed: This is all Access

mbizup: Weirdly, the output of the calcualtion (PPM) came out as a number, but the numerator and denominator fields came out as strings
0
 

Author Comment

by:Rex85
ID: 36513431
Using Format Number as below...

FormatNumber(NZ(QPR_Interstuhl_QNs_tbl.Total_QNs,0),0) AS Total_QNs

I can control the number of decimal places, but the output is a string, not a number.
0
 
LVL 75
ID: 36513554
"IIF returns a string)"
?

?IsNumeric(iif (1=1,101,200))
True

mx
0
 
LVL 61

Expert Comment

by:mbizup
ID: 36514427
Rex,

Have you tried Fyed's last post (http:#a36513319) ?

Fyed,

I'm not sure when it came around, but I've gotten a lot of use out of FormatNumber in reports, queries and forms.  I first ran across it trying to put that () formatting for negatives in a combo box's drop down list.  There are a few other neat related functions:

http://office.microsoft.com/en-us/access-help/formatnumber-function-HA001228842.aspx?CTT=3

The downside is that you may have to explicitly convert it to a number in some situations (it looks like Rex found one of those situations).

mx,

Is numeric does not necessarily mean a variable, field, etc is of a numeric data type, it simply means that something can be evaluated as a number.

http://office.microsoft.com/en-us/access-help/isnumeric-function-HA001228868.aspx

for example, s here is defined as a string, but isnumeric(s) is true, and I believe - not positive -  you *may* have trouble using s as a number in some situations without an explicit type conversion (we definitely see a few questions here where strings that would pass an isDate() evaluation need to be wrapped in CDate() to make things work).

    Dim s As String
    s = "              1.25"
    Debug.Print IsNumeric(s)
0
 
LVL 75
ID: 36514506
Yep ... forgot about that.  Look at that horrible example in the KB:

"This example uses the IsNumeric function to determine if a variable can be evaluated as a number."

IsNumeric() is nowhere to be found in the example, lol !

mx
0
 
LVL 61

Expert Comment

by:mbizup
ID: 36514530
I had read the text, but not the example in that KB article.

That is really funny!
0
 
LVL 75
ID: 36514546
Maddening!  
Also funny is that ... Help for IIF does not indicate what ... it returns, other than 'one of two parts '

But ... try this:

?vartype (iif (1=1,101,200))
 2

2 = Integer

?vartype (iif (1=1,999999,200))
 3

3 = Long Integer

?vartype (iif (1=1,"mbizup",200))
 8

8 = String.

So apparently, it returns the appropriate Data Type ...?

mx
0
 
LVL 52

Assisted Solution

by:Gustav Brock
Gustav Brock earned 600 total points
ID: 36516016
If you wish to remove the decimals, use Int as that is native SQL:

IIf(Total_Shipped = 0, 0, Int(Total_QNs / Total_Shipped * 1000000)) AS PPM

/gustav
0
 

Author Comment

by:Rex85
ID: 36522744
I get the same response whether I use Fyed's ROUND, Mbizup's FORMAT NUMBER, or Cactus Data's Int.

That appears to solve my question. I am confused, however, on how to award points.

Any suggestions on that? I really appreciate ALL of your help, and I don't want to offend anyone.
0
 
LVL 52

Expert Comment

by:Gustav Brock
ID: 36522792
Split the points as you like - no big deal here - but please pay attention to the reduced formula of mine which, of course, could be used with Round as well.

Note that Int rounds down and is faster while the other functions perform 4/5 rounding (as far as I know), and that FormatNumber returns text which may not be what you need.

/gustav
0
 

Author Closing Comment

by:Rex85
ID: 36523355
Thank you ALL very much.

Rex
0
 
LVL 52

Expert Comment

by:Gustav Brock
ID: 36524165
You are welcome!

/gustav
0

Featured Post

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This article shows how to get a list of available printers for display in a drop-down list, and then to use the selected printer to print an Access report or a Word document filled with Access data, using different syntax as needed for working with …
Windows Explorer let you handle zip folders nearly as any other folder: Copy, move, change, and delete, etc. In VBA you can also handle normal files and folders, but zip folders takes a little more - and that you'll find here.
Do you want to know how to make a graph with Microsoft Access? First, create a query with the data for the chart. Then make a blank form and add a chart control. This video also shows how to change what data is displayed on the graph as well as form…
With just a little bit of  SQL and VBA, many doors open to cool things like synchronize a list box to display data relevant to other information on a form.  If you have never written code or looked at an SQL statement before, no problem! ...  give i…

872 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question