منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
مشكلة استعلام textbox1 عن رقم مثل 10/20/1000/0 - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : مشكلة استعلام textbox1 عن رقم مثل 10/20/1000/0 (/showthread.php?tid=37278)



مشكلة استعلام textbox1 عن رقم مثل 10/20/1000/0 - moodyfy - 24-12-20

السلام عليكم
قمت بانشاء فورم فى برنامج الاكسل يقوم واضافة وترحيل البيانات الى ملف الشيت
ويقوم text box1 ( رقم الحساب ) بعمل استعلام داخل الشيت للبحث في العمود الخاص برقم الحساب لمعرفة رقم الحساب المراد اضافتة موجود مسبقا ام لا في شيت العمل
المشكلة هي صيغة رقم الحساب . فمثلا ارقام الحساب التى اعمل عليها تكون بصورة  10/20/100/0 لا يقوم بجلب البيانات من الشيت مع العلم بان رقم الحساب موجود فعلا
مع العلم ان الكود يعمل اذا كان  رقم الحساب ( عدد صحيح) متل 10000
الكود المستخدم
Private Sub TextBox1_Change()
lr = WorksheetFunction.CountIf(Range("c2:c10000"), Val(TextBox1.Value))
If TextBox1.Value <> "" And lr = 1 Then
TextBox2.Value = WorksheetFunction.VLookup(Val(TextBox1.Value), Range("c2:q10000"), 2, 0)
TextBox3.Value = WorksheetFunction.VLookup(Val(TextBox1.Value), Range("c2:q10000"), 3, 0)
TextBox4.Value = WorksheetFunction.VLookup(Val(TextBox1.Value), Range("c2:q10000"), 4, 0)
ComboBox1.Value = WorksheetFunction.VLookup(Val(TextBox1.Value), Range("c2:q10000"), 5, 0)


Else
TextBox2.Value = ""
TextBox3.Value = ""
TextBox4.Value = ""
ComboBox1.Value = ""

End If

End Sub
ارجو المساعدة ولكم جزيل الشكر


RE: مشكلة استعلام textbox1 عن رقم مثل 10/20/1000/0 - أبو عبدالله الحلواني - 31-12-20

(24-12-20, 10:54 PM)moodyfy كتب : السلام عليكم
قمت بانشاء فورم فى برنامج الاكسل يقوم واضافة وترحيل البيانات الى ملف الشيت
ويقوم text box1 ( رقم الحساب ) بعمل استعلام داخل الشيت للبحث في العمود الخاص برقم الحساب لمعرفة رقم الحساب المراد اضافتة موجود مسبقا ام لا في شيت العمل
المشكلة هي صيغة رقم الحساب . فمثلا ارقام الحساب التى اعمل عليها تكون بصورة  10/20/100/0 لا يقوم بجلب البيانات من الشيت مع العلم بان رقم الحساب موجود فعلا
مع العلم ان الكود يعمل اذا كان  رقم الحساب ( عدد صحيح) متل 10000
الكود المستخدم
Private Sub TextBox1_Change()
lr = WorksheetFunction.CountIf(Range("c2:c10000"), Val(TextBox1.Value))
If TextBox1.Value <> "" And lr = 1 Then
TextBox2.Value = WorksheetFunction.VLookup(Val(TextBox1.Value), Range("c2:q10000"), 2, 0)
TextBox3.Value = WorksheetFunction.VLookup(Val(TextBox1.Value), Range("c2:q10000"), 3, 0)
TextBox4.Value = WorksheetFunction.VLookup(Val(TextBox1.Value), Range("c2:q10000"), 4, 0)
ComboBox1.Value = WorksheetFunction.VLookup(Val(TextBox1.Value), Range("c2:q10000"), 5, 0)


Else
TextBox2.Value = ""
TextBox3.Value = ""
TextBox4.Value = ""
ComboBox1.Value = ""

End If

End Sub
ارجو المساعدة ولكم جزيل الشكر

أخي رقم الحساب بهذه الهيئة ( 10/20/100/0) هو عبارة عن نص وأنت تستخدم الدالة val التي تحول النص الي رقم لذي فأن الدالة vlookup تبحث عن


كود :
val("10/20/100/0")


الذي سيعطي قيمة مختلفة تماما عن النص الذي أدخلته جرب أن تضع هذه الكود داخل شاشة الـ Immedate واضغط علي انتر وانظر القيمة الناتجة كيف هي 


كود :
?val("10/20/100/0")



وباختصار قم بازالة الدالة val من الكود وستنتهي المشكلة ان شاء الله