Member_2_636999
asked on
International Program
I am trying to make my application support european number format that is a comma in place of a decimal
For that MSDN sugests using CDbl instead of val .However when i use cdbl it works fine on my pc but not on a system with it's regional settings set to german
It gives an error " Type Mismatch" error no. 13 as soon as the program is started
I have windows 200 pro and I have tried changing my regional settings to german from english united states.It works fine
For that MSDN sugests using CDbl instead of val .However when i use cdbl it works fine on my pc but not on a system with it's regional settings set to german
It gives an error " Type Mismatch" error no. 13 as soon as the program is started
I have windows 200 pro and I have tried changing my regional settings to german from english united states.It works fine
can you post the code?
Just click the link and download the zip file.
It's a complete project!
D'Mzzl!
RoverM
It's a complete project!
D'Mzzl!
RoverM
appari: Sorry, thought your comment was about mine .... ;-)
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
see this link, may be a simillar problem.
https://www.experts-exchange.com/jsp/qShow.jsp?ta=visualbasic&qid=20149982
https://www.experts-exchange.com/jsp/qShow.jsp?ta=visualbasic&qid=20149982
ASKER
The code extract which is given below seems to be causing the problem
But why is it that it works fine on my machine
Perhaps you can help me by downoading the software which I have made and testing it on your
machine Once you have downloaded it send me an e-mail at hello2000g@yahoo.com and i will send
you the international update
http://members.tripod.com/gauravcreations/iumos.html
Form2.Text4.Text = CDbl(GetSetting(App.EXENam e, "Monday", "Cost", 1.2))
If Text2.Text = 1 And CDbl(Text3.Text) >= CDbl(Form2.Text66.Text) And CDbl(Text3.Text) <
CDbl(Form2.Text65.Text) Then
Text12.Text = Form2.Text63.Text
End If
Text1.Text = Text12.Text
Text7.Text = 0
Timer2.Enabled = False
Timer1.Enabled = True
End If
totmcost = CDbl(prevresults4) + CDbl(Text50.Text)
Text30.Text = totmcost
'load chart data
Open App.Path & "\01.ium" For Append As #1
Write #1, 0
Close #1
Open App.Path & "\01.ium" For Input As #1
Input #1, jan
Close #1
inmin3 = jan / 60
Text31.Text = inmin3
If Text2.Text = 1 And CDbl(Text3.Text) >= CDbl(Form2.Text66.Text) And CDbl(Text3.Text) <
CDbl(Form2.Text65.Text) Then
Text11.Text = Form2.Text64.Text
Text12.Text = Form2.Text63.Text
Text51.Text = Text11.Text
Text52.Text = Text12.Text
End If
Text46.Text = CDbl(Text46.Text) + 1
Text49.Text = CDbl(Text49.Text) + 1
If CDbl(Text49.Text) = CDbl(Text51.Text) Then
Text50.Text = CDbl(Text52.Text) + CDbl(Text50.Text)
Text49.Text = 0
End If
Open App.Path & "\netusage.ium" For Input As #1
Input #1, prevresults
Close #1
Text8.Text = prevresults
prevresults1 = CDbl(Text8.Text)
totalresults = prevresults1 + CDbl(Text46.Text)
inmin = totalresults / 60
But why is it that it works fine on my machine
Perhaps you can help me by downoading the software which I have made and testing it on your
machine Once you have downloaded it send me an e-mail at hello2000g@yahoo.com and i will send
you the international update
http://members.tripod.com/gauravcreations/iumos.html
Form2.Text4.Text = CDbl(GetSetting(App.EXENam
If Text2.Text = 1 And CDbl(Text3.Text) >= CDbl(Form2.Text66.Text) And CDbl(Text3.Text) <
CDbl(Form2.Text65.Text) Then
Text12.Text = Form2.Text63.Text
End If
Text1.Text = Text12.Text
Text7.Text = 0
Timer2.Enabled = False
Timer1.Enabled = True
End If
totmcost = CDbl(prevresults4) + CDbl(Text50.Text)
Text30.Text = totmcost
'load chart data
Open App.Path & "\01.ium" For Append As #1
Write #1, 0
Close #1
Open App.Path & "\01.ium" For Input As #1
Input #1, jan
Close #1
inmin3 = jan / 60
Text31.Text = inmin3
If Text2.Text = 1 And CDbl(Text3.Text) >= CDbl(Form2.Text66.Text) And CDbl(Text3.Text) <
CDbl(Form2.Text65.Text) Then
Text11.Text = Form2.Text64.Text
Text12.Text = Form2.Text63.Text
Text51.Text = Text11.Text
Text52.Text = Text12.Text
End If
Text46.Text = CDbl(Text46.Text) + 1
Text49.Text = CDbl(Text49.Text) + 1
If CDbl(Text49.Text) = CDbl(Text51.Text) Then
Text50.Text = CDbl(Text52.Text) + CDbl(Text50.Text)
Text49.Text = 0
End If
Open App.Path & "\netusage.ium" For Input As #1
Input #1, prevresults
Close #1
Text8.Text = prevresults
prevresults1 = CDbl(Text8.Text)
totalresults = prevresults1 + CDbl(Text46.Text)
inmin = totalresults / 60
i don't know the exact reason but a simillar problem we faced when we were working for one of our french client. we solved it like this:
when reading from database (in DB the value is stored with a . as decimal separator) to convert it to French locale used val(value from DB) like val("1234566.45") returns 1234566,45
when updating to DB use str("1234566,45") returns 1234566.75
actually cdbl expects an expression which returns a numeric value. so if you try cdbl(1.2) on german locale it returns 1,2 after converting the decimal seperator.
when reading from database (in DB the value is stored with a . as decimal separator) to convert it to French locale used val(value from DB) like val("1234566.45") returns 1234566,45
when updating to DB use str("1234566,45") returns 1234566.75
actually cdbl expects an expression which returns a numeric value. so if you try cdbl(1.2) on german locale it returns 1,2 after converting the decimal seperator.
ASKER
Do you find any problem with the code above
ASKER
Do you find any problem with the code above
ASKER
Do you find any problem with the code above
ASKER
Do you find any problem with the code above
http://www.thescarms.com/vbasic/dateformat.asp
It's how to detect it and use it!
D'Mzzl!
RoverM