الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مطلوب تعديل في كود القسمة للفلكس جريد

بدأه ابن بسطا في 23 يناير 2010 · 8 رد · 667 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الكود التالي خاص بعملية القسمة في الفلكس جريد

If Rs.EOF Then Rs.MoveFirst
For i = 1 To MSFlexGrid1.Rows - 1
MSFlexGrid1.TextMatrix(i, 5) = Val(MSFlexGrid1.TextMatrix(i, 4)) \ Val(MSFlexGrid1.TextMatrix(i, 2))
Next

المطلوب لو كانت اي من الخلايا التي سيتم عليها عملية القسمة فارغة لا يعطيني خطا او يغلق البرنامج

اريد الكود ان وضعت في احدي الخلايا قيمة والاخري لم توضع بها اي قيم ان يتوقف تاثير الكود وان تم وضع القيم في كلتا الخليتين يعمل الكود

البرنامج مرفق للتعديل

مع الشكر

666.zip

#2

السلام عليكم

يمكنك التحقق من محتوى الخلايا قبل القسمة

هذا مثال

if Val(MSFlexGrid1.TextMatrix(i, 2)) <> 0 then

If Rs.EOF Then Rs.MoveFirst

For i = 1 To MSFlexGrid1.Rows - 1
MSFlexGrid1.TextMatrix(i, 5) = Val(MSFlexGrid1.TextMatrix(i, 4)) \ Val(MSFlexGrid1.TextMatrix(i, 2))
Next

end if
1

بسم الله الذي لا يضر مع اسمه شيء في الأرض و لا في السماء و هو السميع العليم

117tpo4.png
#3

شكرا استاذي العزيز

لكن مع الاسف عندما ركبت الكمبو لعمل بحث ظهرت مشاكل واعطا رسالة خطا فهل هناك حل

تم تعديل هذه المشاركة بواسطة ابن بسطا في 23 يناير 2010 في 20:55

#4

بعد اذن اخي 3ml

جرب

If Rs.EOF Then Rs.MoveFirst
For i = 1 To MSFlexGrid1.Rows - 1
if Val(MSFlexGrid1.TextMatrix(i, 2)) <> 0 and (MSFlexGrid1.TextMatrix(i, 2)) <> "" then
MSFlexGrid1.TextMatrix(i, 5) = Val(MSFlexGrid1.TextMatrix(i, 4)) \ Val(MSFlexGrid1.TextMatrix(i, 2))
else
MSFlexGrid1.TextMatrix(i, 5) = Val(MSFlexGrid1.TextMatrix(i, 4))
end if
Next

تم تعديل هذه المشاركة بواسطة Magnom في 24 يناير 2010 في 00:07

2

محتار!!! مش عارف شوتعمل؟؟! عندك مشاكل ونفسك تنحل؟؟!

عليك بالاقتراب من خالقك

عليك بصلاة الاستخارة

وعليك بالصدقة

داوو مرضاكم بالصدقة

ما نقص مال من صدقة

تصدقو ولو بشق تمرة

#5

استاذ Magnom

شاكر لك الكود وهو شغال 100%

اما بالنسبة لكود 3ml

كان هناك تعارض مع الكود

 'عداد يرجع عدد  السجلات في الجدول كاملا
   For i = 1 To n
         MSFlexGrid1.Row = i
  Next i

ولكن عندما قمت بالتعديل علي كود الاستاذ 3ml وحولت الكود من

if Val(MSFlexGrid1.TextMatrix(i, 2)) <> 0 then

الي

If Val(MSFlexGrid1.TextMatrix(1, 2)) <> 0 Then

اي وضعت رقم 1 بدلا من حرف i في الكود اصبح يعمل بصورة طبيعية

شاكرا لكم حسن صنيعكم

#6

اخي الكريم ولماذا تحتاج الى اعادة اللوب من جديد.

لماذا لاتقم بالعملية مباشرة أثناء بناء الجريد . ( أثناء عرض البيانات في الجريد )

أنت استخدمت هذا الكود للعرض داخل الجريد .

If rs.BOF = False Then rs.MoveFirst
MSFlexGrid1.Rows = 1
Do Until rs.EOF
  MSFlexGrid1.Rows = MSFlexGrid1.Rows + 1
  MSFlexGrid1.Row = MSFlexGrid1.Rows - 1
  MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 0) = rs.Fields(0)
  MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 1) = rs.Fields(1)
  MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 2) = rs.Fields(2)
  rs.MoveNext
Loop

اجعله يصبح هكذا

If rs.BOF = False Then rs.MoveFirst
MSFlexGrid1.Rows = 1
Do Until rs.EOF
  MSFlexGrid1.Rows = MSFlexGrid1.Rows + 1
  MSFlexGrid1.Row = MSFlexGrid1.Rows - 1
  MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 0) = rs.Fields(0)
  MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 1) = rs.Fields(1)
  MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 2) = rs.Fields(2)

  MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, 3) = Val(rs.Fields(2)) \ Val(rs.Fields(1))

  rs.MoveNext
Loop

بدون الحاجة لانشاء لووب جديد لعملية القسمه . لان اصل عملية القسمة هي من حقول الجدول .

تحياتي

1

OMANI FOR EVER

-------------------------------------------------

post-12787-12780191801974.jpg

-------------------------------------------------

#7

استاذ omani

اشكرك علي هذة الاضافة فانا هنا لكي اتعلم منكم بلا شك

وبالطبع ساستفاد من تعديلك الجديد

شاكرا لك

#8
Magnom كتب:

بعد اذن اخي 3ml

جرب

If Rs.EOF Then Rs.MoveFirst
For i = 1 To MSFlexGrid1.Rows - 1
if Val(MSFlexGrid1.TextMatrix(i, 2)) <> 0 and (MSFlexGrid1.TextMatrix(i, 2)) <> "" then
MSFlexGrid1.TextMatrix(i, 5) = Val(MSFlexGrid1.TextMatrix(i, 4)) \ Val(MSFlexGrid1.TextMatrix(i, 2))
else
MSFlexGrid1.TextMatrix(i, 5) = Val(MSFlexGrid1.TextMatrix(i, 4))
end if
Next

شكرا لك أخي على التصحيح و خاصة على الأدب :)

شكرا

بسم الله الذي لا يضر مع اسمه شيء في الأرض و لا في السماء و هو السميع العليم

117tpo4.png
#9

ولو يا اخ 3ml

احترامك واجب

:)

حياك الله اخي

تم تعديل هذه المشاركة بواسطة Magnom في 25 يناير 2010 في 13:55

1

محتار!!! مش عارف شوتعمل؟؟! عندك مشاكل ونفسك تنحل؟؟!

عليك بالاقتراب من خالقك

عليك بصلاة الاستخارة

وعليك بالصدقة

داوو مرضاكم بالصدقة

ما نقص مال من صدقة

تصدقو ولو بشق تمرة

مواضيع مشابهة