View Full Version : سوال: در مورد inputbox و خطاي ورود داده لطفاً جواب بدين
moin54
چهارشنبه 08 خرداد 1387, 16:41 عصر
:متفکر:با سلام
مي خوام برنامه تا عددي از نوع integer نگيره inputbox رو رد نكنه.
dim n as integer
("")n= inputbox
while len(n)=0
("------")msgbox
("")n= inputbox
wend
مشكل اينجاست كه اگر به جاي عدد مورد نظر يك حرف داده بشه يا مقداري داده نشه خطا ميگيره و به ناچار از برنامه خارج ميشه
نوع داده رو نمي تونم عوض كنم
مهران موسوی
چهارشنبه 08 خرداد 1387, 17:00 عصر
مقدار ورودي تابع InputBox يك مقدار از نوع Variant هست ... نيازي به تبديل نداره ..
مقدار برگردونده شده رو كاراكتر كاراكتر چك كن و اگه به غير از اعداد 0 تا 9 بود از حلقه ي شرط خارج شو و دوباره مرحله ي دريافت رو تكرار كن و به طبع ميتوني يك پيغام هم نمايش بدي ...
ASKaffash
چهارشنبه 08 خرداد 1387, 17:01 عصر
با سلام
While n = 0
n = Int(Val(InputBox("Get?")))
Wend
مهران موسوی
چهارشنبه 08 خرداد 1387, 17:05 عصر
همونطور كه گفتم .. ديديد كه دوستمون يك كد گذاشت در اين رابطه شما بر اساس نيازتون ميتونيد كد رو تغيير يا كامل كنيد ...
مهران موسوی
چهارشنبه 08 خرداد 1387, 17:20 عصر
چند ماهي بود با VB كار نكرده بودم ... كدش رو برات نوشتم ...
Dim a, b As String
Rep: a = InputBox("Get A Value", "Get A Number")
For i = 1 To Len(a)
b = Mid(a, i, 1)
If (Asc(b) < 48) Or (Asc(b) > 57) Then
MsgBox "Please Insert a number"
GoTo Rep
End If
Next i
moin54
شنبه 11 خرداد 1387, 18:27 عصر
خيلي خوب بود اين همون چيزي بود كه مي خواستم باز هم ممنونم
Mbt925
یک شنبه 12 خرداد 1387, 12:51 عصر
روش دوستمون اصلا روش درستی برای تشخیص عددی بودن یک رشته نیست.
برای این منظور از متد زیر استفاده کنید:
IsNumeric()
برای مثال این متد برای رشته زیر مقدار
False
رو بر میگردونه.
Msgbox IsNumeric("A123")
f.nabavi
یک شنبه 12 خرداد 1387, 14:59 عصر
البته تابع isnumeric اعداد اعشاری رو هم قبول میکنه. ولی این دوستمون فقط عدد صحیح لازم دارند. بعد از استفاده از isnumeric میشه از instr استفاده کرد تا بفهمیم "." وارد شده یا نه.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.