• 0
nwn2007

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

سؤال

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

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

انا قمت بعمل كود يقوم بحفظ محتويات 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
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

5 إجابة على هذا السؤال .

  • 0

الخطأ في استخدام دالة عدد الصفوف حيث المستخدم هو دالة الصف الحالي لذا يجب تغييرها كما يلي

i = MSFlexGrid1.Rows

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

subscript out of range

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

i = MSFlexGrid1.Row

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

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

i = MSFlexGrid1.Rows

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

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
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .