PDA

View Full Version : مشکل با اعداد



yshahab
سه شنبه 08 اردیبهشت 1388, 11:31 صبح
سوال ساده ایه ولی برای من خیلی مشکله ! دو تا تکست باکس دارم که وقتی این 2 تا در هم ضرب میشه در تکست باکس سومی نمایش داده می شه اما مثلا 50 ضربدر 17 را اینجوری نمایش می ده : 850. ! یعنی یه نقطه حالت اعشار سمت چپ می زاره و برای اعداد زیاد هم اینجوریه :178254،22 در حالیکه من می خوام اعداد ساده باشن و اگه هم اعشاری می شه ضریب اعشار رو حساب نکنه مثل : 178254 ! کجای کارم اشکال داره ؟

yshahab
سه شنبه 08 اردیبهشت 1388, 12:51 عصر
بچه ها اینم بگم وقتی عدد اعشاریه و یا اینکه اون نقطه رو داره تو دیتا بیس ذخیره نمی شه ولی ساده که باشه چا می شه . ممنونم اگه جوابمو بدین .

vbhamed
سه شنبه 08 اردیبهشت 1388, 13:02 عصر
سلام

اگر خاصيت RightToLeft تكست باكست True هست اون رو False كن
براي حل مشكل دوم هم اينطوري مي توني بنويسي


Text3 = Int(Val(Text1) * Val(text2))

yshahab
سه شنبه 08 اردیبهشت 1388, 13:18 عصر
دوست من سلام ، اینکارو کردم اعداد انگلیسی شد اما اون نقطه به جای چپ رفت راست ! برای اینکه اعشار رو نشون نده چیکار کنم ؟

yshahab
سه شنبه 08 اردیبهشت 1388, 20:29 عصر
بچه ها اگه كسي ميتونه كمكم كنه خيلي درگيرم كرده چيكار كنم كه در تكست باكس عدد ساده بياد بدون ويرگول و اعشار و اون نقطه :ناراحت:

xxxxx_xxxxx
سه شنبه 08 اردیبهشت 1388, 20:32 عصر
دوست من سلام ، اینکارو کردم اعداد انگلیسی شد اما اون نقطه به جای چپ رفت راست ! برای اینکه اعشار رو نشون نده چیکار کنم ؟

چنين اتفاقي در حالت عادي نبايد بيافته. شايد جاي ديگه اي براي تكست باكس، فرمت خاصي تعريف كرديد.
اين رو توي سه تا textbox ساده و بدون تغيير دادن خصوصيات امتحان كنيد، مشكلي نيست.

yshahab
سه شنبه 08 اردیبهشت 1388, 20:50 عصر
امتحان كردم نشد يه نگاه به سورسش ميندازين ؟

Private Sub CmndCalculate_Click()
'// Calculate Value(s)
Call Calculate
End Sub
Private Sub CmndSave_Click()

Dim OleDb As New ClassOleDb
Dim Cmnd As String
Cmnd = "INSERT INTO Piece (Code,Description,Process,Article,Filet,Width,Leng ht,Quantity,Quantity1,Width1,Width2,Width3,Width4, tolid,t0,t1,t2,t3,feeee,feenavar,feemadeh,Tax) Values ('" & _
TxtBoxCode.Text & "','" & _
TxtBoxDescription.Text & "','" & _
TxtBoxProcess.Text & "','" & _
CmboArticle.Text & "','" & _
CmboFilet.Text & "'," & _
TxtBoxWidth.Text & "," & _
TxtBoxLenght.Text & "," & _
TxtBoxQuantity.Text & "," & _
TxtBoxQuantity1.Text & "," & _
TxtBoxWidth1.Text & "," & _
TxtBoxWidth2.Text & "," & _
TxtBoxWidth3.Text & "," & _
TxtBoxWidth4.Text & "," & _
txt2.Text & "," & _
total0.Text & "," & _
total1.Text & "," & _
total2.Text & "," & _
total3.Text & "," & _
Tex.Text & "," & _
Text1.Text & "," & _
Text2.Text & "," & _
TxtBoxTax.Text & ")"

'// Run Query
If OleDb.ExecuteQuery(Cmnd) = True Then
MsgBox "Save Successfully."
Unload Me
End If

'//Release Memory
Set OleDb = Nothing

End Sub
Private Sub Form_Load()
'// Load Captions
Call LoadFormCaption(Me)

'// Load ArticlesAndFilets
Call LoadArticlesAndFilets
End Sub
Sub LoadArticlesAndFilets()
Dim OleDb As New ClassOleDb
Dim rs As New Recordset
Dim Cmnd As String
Dim i&, j&



'// Load Available Article(s)

Cmnd = "SELECT * From Article"
Set rs = OleDb.Fill(Cmnd)


If Not (rs.EOF) Then

i = 0
rs.MoveFirst
Do
CmboArticle.AddItem rs.Fields("Code").Value

'// Move to next record
i = i + 1
rs.MoveNext
Loop Until rs.EOF

'// Select 1st Item
CmboArticle.ListIndex = 0

End If



'// Load Available Filet(s)

Cmnd = "SELECT * From Filet"
Set rs = OleDb.Fill(Cmnd)


If Not (rs.EOF) Then

i = 0
rs.MoveFirst
Do
CmboFilet.AddItem rs.Fields("Code").Value

'// Move to next record
i = i + 1
rs.MoveNext
Loop Until rs.EOF

'// Select 1st Item
CmboFilet.ListIndex = 0

End If



'//Release Memory
Set rs = Nothing
Set OleDb = Nothing

End Sub
Sub Calculate()
On Error GoTo ErrHandler
Dim OleDb As New ClassOleDb
Dim rs As New Recordset
Dim Cmnd As String



'// Calculate Value(s)

Dim ArticleAmount, FiletAmount, mb, mn, ms, msh, majmoo As Double
Dim Width, Width1, Width2, Width3, Width4, Lenght, Quantity, Quantity1, Quantity2, Quantity3, Quantity4, Quantity5, tolid As Long

Width = CLng(TxtBoxWidth.Text)
Width1 = CLng(TxtBoxWidth1.Text)
Width2 = CLng(TxtBoxWidth2.Text)
Width3 = CLng(TxtBoxWidth3.Text)
Width4 = CLng(TxtBoxWidth4.Text)
Lenght = CLng(TxtBoxLenght.Text)
Quantity = CLng(TxtBoxQuantity.Text)
Quantity1 = CLng(TxtBoxQuantity1.Text)
tolid = CLng(txt.Text)

mb = 2000 * Width1
mn = 3000 * Width2
ms = 1500 * Width3
msh = 2000 * Width4
majmoo = ((2000 * Width1) + (3000 * Width2) + (1500 * Width3) + (2000 * Width4))
ArticleAmount = (Width * Lenght) / 1000000
FiletAmount = ((Width * Quantity) + (Lenght * Quantity1)) / 1000

TxtBoxArticleAmount.Text = Format(ArticleAmount, "###,###.##")
TxtBoxFiletAmount.Text = Format(FiletAmount, "###,###.##")
total0.Text = Format(mb, "###,###.##")
total1.Text = Format(mn, "###,###.##")
total2.Text = Format(ms, "###,###.##")
total3.Text = Format(msh, "###,###.##")
txt.Text = Format(majmoo, "###,###.##")
txt2.Text = txt.Text
Tex.Text = TxtBoxTotalFee.Text
Text1.Text = TxtBoxFiletAmount.Text
Text2.Text = TxtBoxArticleAmount.Text




'// Load Selected Article Fee

Dim ArticleFee As Double

Cmnd = "SELECT * From Article WHERE Code='" & CmboArticle.Text & "'"
Set rs = OleDb.Fill(Cmnd)

ArticleFee = rs.Fields(1).Value



'// Load Selected Filet Fee

Dim FiletFee As Double

Cmnd = "SELECT * From Filet WHERE Code='" & CmboFilet.Text & "'"
Set rs = OleDb.Fill(Cmnd)

FiletFee = rs.Fields(1).Value




'// Calculate Total Fee

Dim TotalFee As Double
TotalFee = ((ArticleAmount * ArticleFee) + (mb) + (mn) + (ms) + (msh) + (FiletAmount * FiletFee) + CLng(Val(TxtBoxTax.Text)))

TxtBoxTotalFee.Text = Format(TotalFee, "###,###.## ")



'//Release Memory
Set rs = Nothing
Set OleDb = Nothing

Exit Sub

ErrHandler:
MsgBox "Error Happend: " & vbCrLf & Err.Description

End Sub

reza_mn
چهارشنبه 09 اردیبهشت 1388, 00:10 صبح
پروژتون رو پیوست کنین ، در هنگان قرار دادن کد ، از ابزار کد موجود در ویرایشگر استفاده کنید بهتره

xxxxx_xxxxx
چهارشنبه 09 اردیبهشت 1388, 00:24 صبح
گفتم كه براي textbox ها فرمت تعريف كرديد.
بجاي:


total3.Text = Format(msh, "###,###.##")

بنويسيد:


total3.Text = Int(msh)