ورود

View Full Version : سوال: راهنمایی در مورد وارد کردن اعداد



mehdi_bahal
سه شنبه 31 اردیبهشت 1387, 12:52 عصر
سلام . آیا کامپوننتی وجود داره که موقع وارد کردن اعداد آنها را به صورت سه رقم ، سه رقم از سمت راست با کاما از هم جدا کنه . یا اگه دستی هم بشه این کارو کرد لطفا راهنمایی کنید . من کدی نوشتم که سه رقم سه رقم از سمت چپ جدا میکنه و به کارم نمیاد . با تشکر

f.nabavi
سه شنبه 31 اردیبهشت 1387, 13:51 عصر
طول عدد را بر 3 تقسیم کنید و خارج قسمت و باقیمانده را در متغیر نگهداری کنید، ابتدا از سمت چپ به تعداد باقیمانده عدد جدا کنید و "،" را اضافه کنید برای باقیمانده رشته تا انتهای آن 3 رقم 3 رقم جدا کنید. تا وقتی به تعداد خارج قسمت کاما اضافه کرده باشید. دقت کنید که اگر طول رشته مضرب 3 باشه باید یکی از تعداد خارج قسمت کم کنید.

maryamb
سه شنبه 31 اردیبهشت 1387, 14:37 عصر
private sub text1_change()
if text1.text <> "" then
text1.text = format (text1.text , "##,0")
text1.selstart = len (text1.text)
end if
end sub
با این کد ، عدد ها سه رقم سه رقم جدا می شن (البته اگه منظور شما رو به درستی متوجه شده باشم )

bobrus
سه شنبه 31 اردیبهشت 1387, 15:07 عصر
بازهم سوال تكراري
از microsoft maskedit مي توني استفاده كني و خاصيت Format رو به صورت "#,##" تنظيم كني خوبي اين كامپوننت اينه كه وقتي مي خواي به صورت مقدارعددي كار كني خود عدد رو بهت مي ده ولي تو روش Maryamb عدد شما به متن تبديل مي شه و ارزش عددي خودش رو از دست مي ده

ASKaffash
سه شنبه 31 اردیبهشت 1387, 15:54 عصر
با سلام
اگر خیلی علاقه به کد دارید از تابع ذیل استفاده کنید

Public Const SprtChar = ","
Public Function Sprt(ByVal No_Sprt As Variant, Optional ByVal ShowZero As Boolean = True) As String
If No_Sprt = 0 And Not ShowZero Then
Sprt = ""
Else
No_Sprt = CDec(No_Sprt)
Num2Chr = Trim(Str(Abs(No_Sprt)))
Sprt = ""
Lenn2C = Len(Num2Chr)
For In2C = Lenn2C To 1 Step -1
Cnt_In2C = Cnt_In2C + 1
Sprt = IIf(Cnt_In2C Mod 3 = 0 And Cnt_In2C <> Lenn2C, SprtChar, "") + Mid(Num2Chr, In2C, 1) + Sprt
Next
Sprt = IIf(No_Sprt < 0, "-", "") + Sprt
End If
End Function

ali_habibi1384
سه شنبه 31 اردیبهشت 1387, 20:46 عصر
bobrus درست میگن . استفاده از تابع formatروش اصولی هستش ، چرا ما بیایم برای چیزی که خود vb براش دستور گذاشته و مطمئن هست دوباره کد بنویسیم؟