Re: Displaying Currency on a VB . NET windows form

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance



Well,

A DateTime or Decimal does not know or care how it is displayed, including
wether t use dot or comma as decimal separator or how to format the date and
time. The formatting is only interesting when you display the object in some
way. The ToString method is often used and therefore supports number and
time format specifiers. In the end they all have to be converted to some
form of string to be displayed. If you try copying data from the money
column into an excel spreadsheet you may be lucky and find that it remains a
floating point number, but you are actually copying string values, and for me
it fails miserably as . is a thousand separator in Norway. Excel takes a
wild guess and guesses wrong.

I'm not too familiar with MS Access, but a MaskedTextBox does have a Mask
property which will take "$#,###" as a value. In fact, MaskedTextBox is
based on the MaskedEdit control in VB6 which I suspect is very close to what
MS Access uses.

I have a sneaking suspicion that I'm not answering what you are asking, and
if so I apologize.

--
Happy Coding!
Morten Wennevik [C# MVP]


"VBStudioLosAngeles" wrote:

Thank you, Morten.
I am not exactly clear on where to put this, in the code behind forms ?
Why am I able to "format" a date object easily with the "Format" property,
and this is much more unintuitive ?
Isn't there a property that just can be set on how to display the Money, as
it should be displayed in form for intutivitive and easy reading?
I am confused !
Thank you !

"Morten Wennevik [C# MVP]" wrote:

In .Net the database type 'money' would translate to the .Net type 'decimal'.
Calling decimal.ToString("c") would create a currency formatted string
object containing the actual value as well as a currency symbol from the
current culture. You can put this string object in a TextBox. If you only
want the integer value you can use c0 as the format to specify 0 decimal
places. The value would be rounded.

decimal d = 12.87m;
textBox1.Text = d.ToString("c0", CultureInfo.GetCultureInfo("en-US")); // $13

Specifying the CultureInfo is optional, but on my Norwegian system it would
otherwise output "kr 13";

--
Happy Coding!
Morten Wennevik [C# MVP]


"MS Access Question" wrote:

If it were a string, I would understand this. It's not a string. It is a SQL
Server Money type column.
Why is there not a "picture" or "format" property to put in something like
$#,### similar to MS Access?
A date field has a "format" property. I would think it would be similar to
this. Can you advise ?
Thanks,

"Gregory A. Beamer" wrote:

=?Utf-8?B?TVMgQWNjZXNzIFF1ZXN0aW9u?=
<MSAccessQuestion@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote in
news:07D1697D-545F-442A-9A8C-6DF74192AA29@xxxxxxxxxxxxx:

I have a SQL Server Table, with a Money/Currency type.
I wish to display it with a dollar sign and however much it is without
any decimals.
I tried using the Masked Text box control, but no luck.
How do I display this value on a Windows Form in Visual Studio 2008 ?
Thanks


One option is formatting the string you bind to the textbox.

val.ToString("c");

--
Gregory A. Beamer
MVP; MCP: +I, SE, SD, DBA

Twitter: @gbworld
Blog: http://gregorybeamer.spaces.live.com

*******************************************
| Think outside the box! |
*******************************************

.



Relevant Pages

  • Re: Displaying Currency on a VB . NET windows form
    ... Isn't there a property that just can be set on how to display the Money, ... You can put this string object in a TextBox. ... A date field has a "format" property. ... any decimals. ...
    (microsoft.public.dotnet.general)
  • Re: Format issue ... 2 decimal places displayed?
    ... you applied the format to the combo box. ... the year will display as e.g 2008.00 as one of the choices ... ... release the cursor and the 2008 ('without decimals') shows up in the text ... I have a hunch that the output of the unique query may have something to ...
    (microsoft.public.access.forms)
  • Re: Format issue ... 2 decimal places displayed?
    ... I am thinking that the portions of the combo box properties that you are referring to applies to the text box portion of the combo box and does not affect the momentary displayed list of the row source during the selection process. ... until I release the cursor and the 2008 ('without decimals') shows up in the text box portion of the combo box. ... The display of years with 2 decimal places seems undesirable, and thus the basis of my issue. ... select the combo, on the property dialog, format tab, the first property is format - this is where you set the format, you can use Allen's example of format fixed, choose fixed in the format drop down. ...
    (microsoft.public.access.forms)
  • Re: Multiple date formats in a Table
    ... a date field could not store just the year 2004 - it would have ... display it as 1 Jan 2004, or you would have to just display the year for all ... The conversion of your existing text format date should be done in a query, ... Public Function TextToDate(strDate As String) As Date ...
    (microsoft.public.access.tablesdbdesign)
  • Re: Decimal places will not display
    ... BTW, using the Format() function will convert the number to a text string, ... set all the formats in the table and forms to standard with 2 decimals ... Dim rs As Recordset ...
    (microsoft.public.access.formscoding)