By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
424,854 Members | 2,004 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 424,854 IT Pros & Developers. It's quick & easy.

letter be is inserted into numbers as digit group separator

P: n/a
aa
when I ourput data from Access, numbers bigger than 999 are shown with
letter "B" inserted into the 4th position left to the coma. (in my w2k
regional settings I have the decimal dot separator set to "." and digit
group separater set to nothing. In Access the number are shown with "." as
decimal separator, but for some reason ASP used "," instead)
Say, 3000,00 is shown as 3B 000,00
Why and how do I sort this out?
Jan 26 '07 #1
Share this Question
Share on Google+
19 Replies


P: n/a
Baz
What do you mean by "output data from Access"? How are you outputting it,
and what software are you using to view the output data?

"aa" <A@aa.comwrote in message
news:ey**************@TK2MSFTNGP03.phx.gbl...
when I ourput data from Access, numbers bigger than 999 are shown with
letter "B" inserted into the 4th position left to the coma. (in my w2k
regional settings I have the decimal dot separator set to "." and digit
group separater set to nothing. In Access the number are shown with "." as
decimal separator, but for some reason ASP used "," instead)
Say, 3000,00 is shown as 3B 000,00
Why and how do I sort this out?


Jan 26 '07 #2

P: n/a
Likely the server on which ASP is running has different Regional Settings
than the computer where Access is running.

Try explicitly formatting the numbers.

--
Doug Steele, Microsoft Access MVP
http://I.Am/DougSteele
(no e-mails, please!)
"aa" <A@aa.comwrote in message
news:ey**************@TK2MSFTNGP03.phx.gbl...
when I ourput data from Access, numbers bigger than 999 are shown with
letter "B" inserted into the 4th position left to the coma. (in my w2k
regional settings I have the decimal dot separator set to "." and digit
group separater set to nothing. In Access the number are shown with "." as
decimal separator, but for some reason ASP used "," instead)
Say, 3000,00 is shown as 3B 000,00
Why and how do I sort this out?


Jan 26 '07 #3

P: n/a
aa
Everything is on local w2k and Personal Web Server

"Douglas J. Steele" <NOSPAM_djsteele@NOSPAM_canada.comwrote in message
news:#1**************@TK2MSFTNGP04.phx.gbl...
Likely the server on which ASP is running has different Regional Settings
than the computer where Access is running.

Try explicitly formatting the numbers.

--
Doug Steele, Microsoft Access MVP
http://I.Am/DougSteele
(no e-mails, please!)
"aa" <A@aa.comwrote in message
news:ey**************@TK2MSFTNGP03.phx.gbl...
when I ourput data from Access, numbers bigger than 999 are shown with
letter "B" inserted into the 4th position left to the coma. (in my w2k
regional settings I have the decimal dot separator set to "." and digit
group separater set to nothing. In Access the number are shown with "."
as
decimal separator, but for some reason ASP used "," instead)
Say, 3000,00 is shown as 3B 000,00
Why and how do I sort this out?


Jan 26 '07 #4

P: n/a
aa
ASP
The query is stored in MDB file and when open in Access all the numbers look
OK
View in IE6
But why "B"? What is "B"?
"Baz" <ba**@REMOVEbcap.THEeuro1net.CAPScomwrote in message
news:45***********************@news.zen.co.uk...
What do you mean by "output data from Access"? How are you outputting it,
and what software are you using to view the output data?

"aa" <A@aa.comwrote in message
news:ey**************@TK2MSFTNGP03.phx.gbl...
when I ourput data from Access, numbers bigger than 999 are shown with
letter "B" inserted into the 4th position left to the coma. (in my w2k
regional settings I have the decimal dot separator set to "." and digit
group separater set to nothing. In Access the number are shown with "."
as
decimal separator, but for some reason ASP used "," instead)
Say, 3000,00 is shown as 3B 000,00
Why and how do I sort this out?


Jan 26 '07 #5

P: n/a
aa
applying ASP function FormatNumber() with digit groups separation disabled
sorted the problem out.
But I still curious where that "B" came from

"Douglas J. Steele" <NOSPAM_djsteele@NOSPAM_canada.comwrote in message
news:#1**************@TK2MSFTNGP04.phx.gbl...
Likely the server on which ASP is running has different Regional Settings
than the computer where Access is running.

Try explicitly formatting the numbers.

--
Doug Steele, Microsoft Access MVP
http://I.Am/DougSteele
(no e-mails, please!)
"aa" <A@aa.comwrote in message
news:ey**************@TK2MSFTNGP03.phx.gbl...
when I ourput data from Access, numbers bigger than 999 are shown with
letter "B" inserted into the 4th position left to the coma. (in my w2k
regional settings I have the decimal dot separator set to "." and digit
group separater set to nothing. In Access the number are shown with "."
as
decimal separator, but for some reason ASP used "," instead)
Say, 3000,00 is shown as 3B 000,00
Why and how do I sort this out?


Jan 26 '07 #6

P: n/a
Baz
I think you are more likely to get an answer from the ASP people than the
Access people.

"aa" <A@aa.comwrote in message
news:Og**************@TK2MSFTNGP05.phx.gbl...
applying ASP function FormatNumber() with digit groups separation disabled
sorted the problem out.
But I still curious where that "B" came from

"Douglas J. Steele" <NOSPAM_djsteele@NOSPAM_canada.comwrote in message
news:#1**************@TK2MSFTNGP04.phx.gbl...
Likely the server on which ASP is running has different Regional
Settings
than the computer where Access is running.

Try explicitly formatting the numbers.

--
Doug Steele, Microsoft Access MVP
http://I.Am/DougSteele
(no e-mails, please!)
"aa" <A@aa.comwrote in message
news:ey**************@TK2MSFTNGP03.phx.gbl...
when I ourput data from Access, numbers bigger than 999 are shown
with
letter "B" inserted into the 4th position left to the coma. (in my w2k
regional settings I have the decimal dot separator set to "." and
digit
group separater set to nothing. In Access the number are shown with
"."
as
decimal separator, but for some reason ASP used "," instead)
Say, 3000,00 is shown as 3B 000,00
Why and how do I sort this out?
>
>


Jan 26 '07 #7

P: n/a

"aa" <A@aa.comwrote in message
news:Og**************@TK2MSFTNGP05.phx.gbl...
applying ASP function FormatNumber() with digit groups separation disabled
sorted the problem out.
But I still curious where that "B" came from
We are going to need to see some code if we have any chance helping you.
Jan 26 '07 #8

P: n/a
aa
You think it has to do with the ASP code?
It pretty standard and does not seem to use anything which can relevant to
the problem, but might have to do with some settings on the computer, for it
works OK on my XP-Home notebook, and the problems happen on w2k Pro SP4.
Anyway, the code creates a recordset object and then goes through it
building rows for an HTML table like this:

================================
set objRS=objCom.Execute
dim html_string, c
do while not objRS.eof
c= objRS(2)
html_string=html_string&"<tr><td>" & c & "</td></tr>"
objRS.movenext
loop
Response.write html_string
================================

This gets letter "B" inserted
If I change
c= objRS(2)
to
c= FormatNumber(objRS(2),2,,,0)
then it is OK
"Anthony Jones" <An*@yadayadayada.comwrote in message
news:eb**************@TK2MSFTNGP04.phx.gbl...
>
"aa" <A@aa.comwrote in message
news:Og**************@TK2MSFTNGP05.phx.gbl...
applying ASP function FormatNumber() with digit groups separation
disabled
sorted the problem out.
But I still curious where that "B" came from

We are going to need to see some code if we have any chance helping you.


Jan 27 '07 #9

P: n/a

"aa" <A@aa.comwrote in message
news:OE**************@TK2MSFTNGP02.phx.gbl...
You think it has to do with the ASP code?
It pretty standard and does not seem to use anything which can relevant to
the problem, but might have to do with some settings on the computer, for
it
works OK on my XP-Home notebook, and the problems happen on w2k Pro SP4.
Anyway, the code creates a recordset object and then goes through it
building rows for an HTML table like this:

================================
set objRS=objCom.Execute
dim html_string, c
do while not objRS.eof
c= objRS(2)
html_string=html_string&"<tr><td>" & c & "</td></tr>"
objRS.movenext
loop
Response.write html_string
================================

This gets letter "B" inserted
If I change
c= objRS(2)
to
c= FormatNumber(objRS(2),2,,,0)
then it is OK
"Anthony Jones" <An*@yadayadayada.comwrote in message
news:eb**************@TK2MSFTNGP04.phx.gbl...
>>
"aa" <A@aa.comwrote in message
news:Og**************@TK2MSFTNGP05.phx.gbl...
applying ASP function FormatNumber() with digit groups separation
disabled
sorted the problem out.
But I still curious where that "B" came from

We are going to need to see some code if we have any chance helping you.



Jan 27 '07 #10

P: n/a
Baz
I don't think it's anything to do with the code, I think there's some kind
of number display format setting somewhere, but I don't know enough about
ASP to know what.

The fact that using the Format function "corrects" it proves that what you
are getting from the recordset is a number. Numbers don't contain "B"
characters (at least, decimal ones don't!), hence what you have is a display
problem, not a problem with the data.

"aa" <A@aa.comwrote in message
news:OE**************@TK2MSFTNGP02.phx.gbl...
You think it has to do with the ASP code?
It pretty standard and does not seem to use anything which can relevant to
the problem, but might have to do with some settings on the computer, for
it
works OK on my XP-Home notebook, and the problems happen on w2k Pro SP4.
Anyway, the code creates a recordset object and then goes through it
building rows for an HTML table like this:

================================
set objRS=objCom.Execute
dim html_string, c
do while not objRS.eof
c= objRS(2)
html_string=html_string&"<tr><td>" & c & "</td></tr>"
objRS.movenext
loop
Response.write html_string
================================

This gets letter "B" inserted
If I change
c= objRS(2)
to
c= FormatNumber(objRS(2),2,,,0)
then it is OK
"Anthony Jones" <An*@yadayadayada.comwrote in message
news:eb**************@TK2MSFTNGP04.phx.gbl...

"aa" <A@aa.comwrote in message
news:Og**************@TK2MSFTNGP05.phx.gbl...
applying ASP function FormatNumber() with digit groups separation
disabled
sorted the problem out.
But I still curious where that "B" came from
>
We are going to need to see some code if we have any chance helping you.


Jan 28 '07 #11

P: n/a
aa
Numbers do not contain, say, spacers either, yet spacers might be incertad
as digit group separator
In my case it looks like "B" is inserted as such a separator. Or the System
is incerting something else but encoding presents it as B
"Baz" <ba**@REMOVEbcap.THEeuro1net.CAPScomwrote in message
news:45***********************@news.zen.co.uk...
I don't think it's anything to do with the code, I think there's some kind
of number display format setting somewhere, but I don't know enough about
ASP to know what.

The fact that using the Format function "corrects" it proves that what you
are getting from the recordset is a number. Numbers don't contain "B"
characters (at least, decimal ones don't!), hence what you have is a
display
problem, not a problem with the data.

"aa" <A@aa.comwrote in message
news:OE**************@TK2MSFTNGP02.phx.gbl...
You think it has to do with the ASP code?
It pretty standard and does not seem to use anything which can relevant
to
the problem, but might have to do with some settings on the computer,
for
it
works OK on my XP-Home notebook, and the problems happen on w2k Pro SP4.
Anyway, the code creates a recordset object and then goes through it
building rows for an HTML table like this:

================================
set objRS=objCom.Execute
dim html_string, c
do while not objRS.eof
c= objRS(2)
html_string=html_string&"<tr><td>" & c & "</td></tr>"
objRS.movenext
loop
Response.write html_string
================================

This gets letter "B" inserted
If I change
c= objRS(2)
to
c= FormatNumber(objRS(2),2,,,0)
then it is OK
"Anthony Jones" <An*@yadayadayada.comwrote in message
news:eb**************@TK2MSFTNGP04.phx.gbl...
>
"aa" <A@aa.comwrote in message
news:Og**************@TK2MSFTNGP05.phx.gbl...
applying ASP function FormatNumber() with digit groups separation
disabled
sorted the problem out.
But I still curious where that "B" came from

>
We are going to need to see some code if we have any chance helping
you.
>
>


Jan 28 '07 #12

P: n/a
Baz
Numbers do NOT contain spaces or group separators, such things are a
function of display formatting, they are NOT part of numeric data. The
FormatNumber function operates on numbers, any input value which contained a
"B" would be a string, not a number, and would result in a type mismatch
error. Hence, the "B" is not in the data, it is being added by some display
formatting.

"aa" <A@aa.comwrote in message
news:Ob*************@TK2MSFTNGP06.phx.gbl...
Numbers do not contain, say, spacers either, yet spacers might be incertad
as digit group separator
In my case it looks like "B" is inserted as such a separator. Or the
System
is incerting something else but encoding presents it as B
"Baz" <ba**@REMOVEbcap.THEeuro1net.CAPScomwrote in message
news:45***********************@news.zen.co.uk...
I don't think it's anything to do with the code, I think there's some
kind
of number display format setting somewhere, but I don't know enough
about
ASP to know what.

The fact that using the Format function "corrects" it proves that what
you
are getting from the recordset is a number. Numbers don't contain "B"
characters (at least, decimal ones don't!), hence what you have is a
display
problem, not a problem with the data.

"aa" <A@aa.comwrote in message
news:OE**************@TK2MSFTNGP02.phx.gbl...
You think it has to do with the ASP code?
It pretty standard and does not seem to use anything which can
relevant
to
the problem, but might have to do with some settings on the computer,
for
it
works OK on my XP-Home notebook, and the problems happen on w2k Pro
SP4.
Anyway, the code creates a recordset object and then goes through it
building rows for an HTML table like this:
>
================================
set objRS=objCom.Execute
dim html_string, c
do while not objRS.eof
c= objRS(2)
html_string=html_string&"<tr><td>" & c & "</td></tr>"
objRS.movenext
loop
Response.write html_string
================================
>
This gets letter "B" inserted
If I change
c= objRS(2)
to
c= FormatNumber(objRS(2),2,,,0)
then it is OK
>
>
"Anthony Jones" <An*@yadayadayada.comwrote in message
news:eb**************@TK2MSFTNGP04.phx.gbl...

"aa" <A@aa.comwrote in message
news:Og**************@TK2MSFTNGP05.phx.gbl...
applying ASP function FormatNumber() with digit groups separation
disabled
sorted the problem out.
But I still curious where that "B" came from
>

We are going to need to see some code if we have any chance helping
you.


>
>


Jan 28 '07 #13

P: n/a

"aa" <A@aa.comwrote in message
news:OE**************@TK2MSFTNGP02.phx.gbl...
You think it has to do with the ASP code?
It pretty standard and does not seem to use anything which can relevant to
the problem, but might have to do with some settings on the computer, for
it
works OK on my XP-Home notebook, and the problems happen on w2k Pro SP4.
Anyway, the code creates a recordset object and then goes through it
building rows for an HTML table like this:

================================
set objRS=objCom.Execute
dim html_string, c
do while not objRS.eof
c= objRS(2)
html_string=html_string&"<tr><td>" & c & "</td></tr>"
objRS.movenext
loop
Response.write html_string
================================

This gets letter "B" inserted
If I change
c= objRS(2)
to
c= FormatNumber(objRS(2),2,,,0)
then it is OK
This is simply a case of messed up regional settings. Instead of having a .
or a , for the thousands separator the (or actually a) regional setting for
it has B as the thousands seperator.

First check that this isn't the case in the control panel -regional
settings -numbers tab. However this isn't the only place that IIS may get
regional settings in fact it's unlikely. Regional settings are per user and
are stored in the user profile.

Typically the user accessing a web site does not have a profile on the
server (unless they've logged on interactively). Most often the user is the
anonymous user anyway.

In this case ASP get it's regional settings from the .DEFAULT user profile.
Hence you should use RegEdit and open the key:-

HKEY_USERS\.DEFAULT\Control Panel\International

In there is a value sThousand value. It seems likely to me that currently
this contains a B.

Things are made worse by the fact that ASP caches the regional settings and
will use them for the life time of the process. Hence even if other
requests may run under user accounts of user that do have a profile with
different regional settings these settings will be ignored.

Therefore you may find that .DEFAULT is ok but another user profile is wrong
and it's this profile that just happens to be the first used.

Anthony.

Jan 28 '07 #14

P: n/a
aa
Thanks, Anthony,

1. My control panel settings I addressed in my originmal message - there is
nothing criminal in them as you can see
2. HKEY_USERS\.DEFAULT\Control Panel\International
I do not know which parameter there is responsible in this case, but by the
name, there is one which might be relevant: sGrouping which is set to 3;0
Is this the one?
Regarding other profiles - this is my personal computer and nobody was
setting profiles in here. Neither did I for I even do not know how to do
this.
However, apart from DEFAULT there are two other entries under HKEY_USERS,
named S-1-5-21-1960408961-1417001333-725345543-500 and
S-1-5-21-1960408961-1417001333-725345543-500_Classes
They both have sGrouping set to 3;0

What is the verdict?

"Anthony Jones" <An*@yadayadayada.comwrote in message
news:e1**************@TK2MSFTNGP03.phx.gbl...
>
"aa" <A@aa.comwrote in message
news:OE**************@TK2MSFTNGP02.phx.gbl...
You think it has to do with the ASP code?
It pretty standard and does not seem to use anything which can relevant
to
the problem, but might have to do with some settings on the computer,
for
it
works OK on my XP-Home notebook, and the problems happen on w2k Pro SP4.
Anyway, the code creates a recordset object and then goes through it
building rows for an HTML table like this:

================================
set objRS=objCom.Execute
dim html_string, c
do while not objRS.eof
c= objRS(2)
html_string=html_string&"<tr><td>" & c & "</td></tr>"
objRS.movenext
loop
Response.write html_string
================================

This gets letter "B" inserted
If I change
c= objRS(2)
to
c= FormatNumber(objRS(2),2,,,0)
then it is OK

This is simply a case of messed up regional settings. Instead of having a
..
or a , for the thousands separator the (or actually a) regional setting
for
it has B as the thousands seperator.

First check that this isn't the case in the control panel -regional
settings -numbers tab. However this isn't the only place that IIS may
get
regional settings in fact it's unlikely. Regional settings are per user
and
are stored in the user profile.

Typically the user accessing a web site does not have a profile on the
server (unless they've logged on interactively). Most often the user is
the
anonymous user anyway.

In this case ASP get it's regional settings from the .DEFAULT user
profile.
Hence you should use RegEdit and open the key:-

HKEY_USERS\.DEFAULT\Control Panel\International

In there is a value sThousand value. It seems likely to me that currently
this contains a B.

Things are made worse by the fact that ASP caches the regional settings
and
will use them for the life time of the process. Hence even if other
requests may run under user accounts of user that do have a profile with
different regional settings these settings will be ignored.

Therefore you may find that .DEFAULT is ok but another user profile is
wrong
and it's this profile that just happens to be the first used.

Anthony.

Jan 28 '07 #15

P: n/a

"aa" <A@aa.comwrote in message
news:el**************@TK2MSFTNGP04.phx.gbl...
Thanks, Anthony,

1. My control panel settings I addressed in my originmal message - there
is
nothing criminal in them as you can see
2. HKEY_USERS\.DEFAULT\Control Panel\International
I do not know which parameter there is responsible in this case, but by
the
name, there is one which might be relevant: sGrouping which is set to 3;0
Is this the one?
Regarding other profiles - this is my personal computer and nobody was
setting profiles in here. Neither did I for I even do not know how to do
this.
However, apart from DEFAULT there are two other entries under HKEY_USERS,
named S-1-5-21-1960408961-1417001333-725345543-500 and
S-1-5-21-1960408961-1417001333-725345543-500_Classes
They both have sGrouping set to 3;0

What is the verdict?
That's fine. What setting do you have for sThousand?
Jan 28 '07 #16

P: n/a
aa
below is a very interesting comment I received from Mihai Nita in NG dealing
with
i18:
++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++
This has little to do with number format.

Russian uses non breaking space (U+00A0) as thousand separator (an I guess
you are on Russian system because of the 866). This is the result of number
formatting, and it is correct.

Non-breaking space as UTF-8 is 'C2 A0' (bytes), which, when interpreted
as 1252, gives cyrillic capital letter Ve (U+0412) (which looks like an
uppercase B), followed by non-breakig space.

So you are seeing a UTF-8 page as 1251.
To confirm this is the case, force the browser to UTF-8:
Firefox: View -Character Encoding -Unicode (UTF-8)
IE6: View -Encoding -Unicode (UTF-8)

Is the result looks ok, try adding the proper meta tag in the head section
of
your HTML:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

Jan 29 '07 #17

P: n/a
aa
I have nothing for sThousand - just a blank space.
As you can see from my previous post, the problem was in wrong encodinmg of
my HTML page.
But they bit of the Registry you refered me to is interesting. Where can I
read about meanings of all the parameters there?

"Anthony Jones" <An*@yadayadayada.comwrote in message
news:#d**************@TK2MSFTNGP03.phx.gbl...
That's fine. What setting do you have for sThousand?

Jan 29 '07 #18

P: n/a

"aa" <A@aa.comwrote in message
news:%2****************@TK2MSFTNGP06.phx.gbl...
I have nothing for sThousand - just a blank space.
As you can see from my previous post, the problem was in wrong encodinmg
of
my HTML page.
I don't think that is true. I see nothing wrong with either examples of
your code.
But they bit of the Registry you refered me to is interesting. Where can I
read about meanings of all the parameters there?
sThousand simply specifies the character to use to separate groups of
thousands in formatting number. I'm not sure what would happen in nothing
is specified. These values are manipulated by the control panel regional
settings.

Try editing that registry value and placing a , or . in that value.

Also worth a look is this KB:-

http://support.microsoft.com/kb/306044

>
"Anthony Jones" <An*@yadayadayada.comwrote in message
news:#d**************@TK2MSFTNGP03.phx.gbl...
That's fine. What setting do you have for sThousand?


Jan 29 '07 #19

P: n/a

"aa" <A@aa.comwrote in message
news:eU**************@TK2MSFTNGP05.phx.gbl...
below is a very interesting comment I received from Mihai Nita in NG
dealing
with
i18:
++++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++
This has little to do with number format.

Russian uses non breaking space (U+00A0) as thousand separator (an I guess
you are on Russian system because of the 866). This is the result of
number
formatting, and it is correct.
Ah I see that's why your sThousand setting appears blank.
>
Non-breaking space as UTF-8 is 'C2 A0' (bytes), which, when interpreted
as 1252, gives cyrillic capital letter Ve (U+0412) (which looks like an
uppercase B), followed by non-breakig space.

So you are seeing a UTF-8 page as 1251.
To confirm this is the case, force the browser to UTF-8:
Firefox: View -Character Encoding -Unicode (UTF-8)
IE6: View -Encoding -Unicode (UTF-8)

Is the result looks ok, try adding the proper meta tag in the head section
of
your HTML:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
In ASP I prefer Response.CharSet = "UTF-8"
Jan 29 '07 #20

This discussion thread is closed

Replies have been disabled for this discussion.