PDA

View Full Version : مقایسه مقادیر دو TextBox



Javad-2010
دوشنبه 27 شهریور 1391, 08:57 صبح
با سلام ؛

لطفا این مثال رو (http://s3.picofile.com/file/7502555478/Test01.zip.html) دانلود کنید ، سپس بگید چرا وقتی روی Command1 کلیک میکنم ، در Text3 این نتیجه رو (Text2 > Text1) نشون میده ، درحالیکه Text1 بزرگتر است ؟!

عکس (http://s3.picofile.com/file/7502555585/Test01.jpg)

با تشکر

Veteran
دوشنبه 27 شهریور 1391, 10:29 صبح
فکر کنم چون مقادیر تکست باکس ها رشته هست و اون هارو بر اساس کد اسکی مقایسه میکنه.برای حل این مشکل از تابع val() استفاده میکنیم تا مقادیر رو به عدد تبدیل کنه
If Val(Text1.Text) > Val(Text2.Text) Then
Text3.Text = "Text1 > Text2"
ElseIf Val(Text2.Text) > Val(Text1.Text) Then
Text3.Text = "Text2 > Text1"
Else
Text3.Text = "Text1 = Text2"
End If

MohammadGh2011
دوشنبه 27 شهریور 1391, 10:51 صبح
با سلام ؛

لطفا این مثال رو (http://s3.picofile.com/file/7502555478/Test01.zip.html) دانلود کنید ، سپس بگید چرا وقتی روی Command1 کلیک میکنم ، در Text3 این نتیجه رو (Text2 > Text1) نشون میده ، درحالیکه Text1 بزرگتر است ؟!

عکس (http://s3.picofile.com/file/7502555585/Test01.jpg)

با تشکر

از تابع StrComp استفاده کنيد براي مقايسه دو رشته.


موفق باشيد

Javad-2010
دوشنبه 27 شهریور 1391, 10:58 صبح
فکر کنم چون مقادیر تکست باکس ها رشته هست و اون هارو بر اساس کد اسکی مقایسه میکنه.برای حل این مشکل از تابع val() استفاده میکنیم تا مقادیر رو به عدد تبدیل کنه
If Val(Text1.Text) > Val(Text2.Text) Then
Text3.Text = "Text1 > Text2"
ElseIf Val(Text2.Text) > Val(Text1.Text) Then
Text3.Text = "Text2 > Text1"
Else
Text3.Text = "Text1 = Text2"
End If


باز هم مشکل هست ، در مثال زیر تغییرات رو دادم :

مثال (http://s3.picofile.com/file/7502597739/Test02.zip.html)
عکس (http://s3.picofile.com/file/7502597632/Test02.jpg)

Javad-2010
دوشنبه 27 شهریور 1391, 11:00 صبح
از تابع StrComp استفاده کنيد براي مقايسه دو رشته.


موفق باشيد

من اون مقادیری که داخل TextBoxها هست رو میخوام مقایسه کنم .

Veteran
دوشنبه 27 شهریور 1391, 11:14 صبح
به علت علامت , هست.تابع val فقط از سمت چپ عدد هارو جدا میکنه اگه به چیزی غیر از عدد برسه متوقف میشه. 10 و 10 رو جدا میکنه این 2 تا هم که مساوی هست
If Val(Replace(Text1.Text, ",", vbNullString)) > Val(Replace(Text2.Text, ",", vbNullString)) Then
Text3.Text = "Text1 > Text2"
ElseIf Val(Replace(Text2.Text, ",", vbNullString)) > Val(Replace(Text1.Text, ",", vbNullString)) Then
Text3.Text = "Text2 > Text1"
Else
Text3.Text = "Text1 = Text2"
End If

MohammadGh2011
دوشنبه 27 شهریور 1391, 11:26 صبح
من اون مقادیری که داخل TextBoxها هست رو میخوام مقایسه کنم .

تابع StrComp هم همين کار رو انجام ميده.
If StrComp(Text1, Text2) = 0 Then Text3 = "text1 = text2"
If StrComp(Text1, Text2) = 1 Then Text3 = "text1 > text2"
If StrComp(Text1, Text2) = -1 Then Text3 = "text1 < text2"

موفق باشيد

Javad-2010
دوشنبه 27 شهریور 1391, 11:26 صبح
به علت علامت , هست.تابع val فقط از سمت چپ عدد هارو جدا میکنه اگه به چیزی غیر از عدد برسه متوقف میشه. 10 و 10 رو جدا میکنه این 2 تا هم که مساوی هست
If Val(Replace(Text1.Text, ",", vbNullString)) > Val(Replace(Text2.Text, ",", vbNullString)) Then
Text3.Text = "Text1 > Text2"
ElseIf Val(Replace(Text2.Text, ",", vbNullString)) > Val(Replace(Text1.Text, ",", vbNullString)) Then
Text3.Text = "Text2 > Text1"
Else
Text3.Text = "Text1 = Text2"
End If

با این کد مشکلم حل شد ؛
با تشکر