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

ماهو الخطأ في هذا الكود

مغلق
بدأه nwn2007 في 11 يوليو 2007 · 5 رد · 584 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

اولا اقدم شكري وتقديري لكل اعضاء المنتدى على التفاعل الكبير والمعلمومات القيمة والمساعدة النبيله لكل من يحتاج اليها

انا قمت بعمل كود يقوم بحفظ محتويات flexgrid في جدول ولكن واجهتني مشكلة وهي كالتالي

عندما اضع المؤشر على الصف الاول في flexgrid يقوم بحفظ فقط الصف الاول مثلا يوجد خمس صفوف فانه يحفظ الصف الاول فقط وعندما اضع المؤشر على الصف الاخير يقوم بحفظ كل محتويات flexgrid ويضعها في الجدول

ما اريد هو كيف يحفظ جميع محتويات flexgrid دفعة واحدة دون الحاجة لوضع المؤشر على اخر سجل وهذا هو الكود

  Dim Rs As New ADODB.Recordset

Dim sql As String
  sql = "SELECT * FROM tap1  "
Rs.Open sql, cn, adOpenDynamic, adLockOptimistic
Dim i As Integer
i = MSFlexGrid1.Row
For i = 1 To i
Rs.AddNew
Rs!f1 = MSFlexGrid1.TextMatrix(i, 1)
Rs("f2") = MSFlexGrid1.TextMatrix(i, 2)
Rs("f3") = MSFlexGrid1.TextMatrix(i, 3)
Rs("f4") = MSFlexGrid1.TextMatrix(i, 4)
Rs.Update
Next i

تم تعديل هذه المشاركة بواسطة nwn2007 في 11 يوليو 2007 في 06:27

#3

اخوي اشكرك على ردك السريع ولكن جربت طريقتك مسبقا وظهرت رسالة خطا كالتالي

subscript out of range

ولكن عندما اضع

i = MSFlexGrid1.Row

لا تظهر هذه المشكله

والرسالة تظهر عندما اضع الكود بهذه الطريقة

i = MSFlexGrid1.Rows

#4

الحل بسيط جدا يا اخى و هيبقى كا التالى

i = (MSFlexGrid1.Rows - 1)

وهذا فى حالة وجود fixed row اى صف ثابت تقوم بكتابة الاسامى به

عند استخدام

i = MSFlexGrid1.Rows

سوف يعطيك عدد الصفوف بما فيهم الصف الاضافى الزى لا تحتاجة بمعنى لو عندك 5 صفوف

1 عناوين

4 بيانات

هنا ال i = 5

مع العلم ان ترتيب الارقام بداخل MSFlexgrid يبدأ من الصفر

فلما يبدأ فى حفظ البيانات يبدا من 1 حتى 5

الصف | المسلسل

1 عناوين = 0

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

1 بيانات = 1

2بيانات = 2

3بيانات = 3

4بيانات = 4

وبكده هنلاقى ان حالة for لما توصل ل 5 مش هتلاقى صف تنفذ فيه العملية

فالحل الوحيد

i = (MSFlexGrid1.Rows - 1)

حاجة كمان اتأكد ان columes باردو ماوضوع ال0 ده مش مأسر لو بردو فى غلط بعد تعديل الكود

Rs!f1 = MSFlexGrid1.TextMatrix(i, 0)
Rs("f2") = MSFlexGrid1.TextMatrix(i, 1)
Rs("f3") = MSFlexGrid1.TextMatrix(i, 2)
Rs("f4") = MSFlexGrid1.TextMatrix(i, 3)

proj.rar

تم تعديل هذه المشاركة بواسطة ramezmagdy في 11 يوليو 2007 في 10:18

#5

انا ما ادري اشلون اشكرك اخوي فعلا كنت في قمت التعاون معاي وجزاك الله الف خير وفعلا كانت المشكله لك بسيطه ولكنها بالنسبة لي كانت مشكلة كبيره وكان الحل كما تفضلت واشكرك مره اخرى

#6

يا اخى لا داعى للشكر وارجو لك كل التوفيق

هذا الموضوع مغلق.

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