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

مطلوب كود حذف وكود تعديل بسجل فليكس جريد FlexGrid

مغلق
بدأه المدمر007 في 31 مارس 2007 · 8 رد · 3,559 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

مرحباً أخوتي الكرام

أضع بين يديكم الجزء الذي تعذر عليّ الحصول على حل له .. وهو كما يلي

أولاً : زر التعديل

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

ولأني أضع معظم الاحتمالات التي قد يضطر المستخدم للتعامل معها ، فقد افترضت أنه ربما يخطأ في بياناته التي ظهرت بالفليكس جريد، فيريد التعديل عليها قبل أن يقوم بطباعتها... لذا وضعت له زر أسميته تفعيل التعديل و تكست خاص بالتعديل، ولقد وضعته بحيث لو ظهر لدي بالفليكس جريد أي خانة بها بيان تم إدخاله خطأ.. أضغط على تلك الخانة فتظهر بتكست التعديل، فأعدلها ثم أحفظها من خلال الضغط على ذلك الزر.

ولكني لم اعرف كيف افعل ذلك ... رغم أن هناك مثال مشابهة لهذا وضعه أخونا { هاني HnHn }

أرفقه هنا .. للإطلاع عليه.

إلا أن مثاله هو للتعديل المباشر في الفليكس جريد ..

وما أطلبه هو أن يتم نقل محتويات الخانة إلى مربع نص خارجي ليتم التعديل فيه، ومن ثم يتم نقله لقاعدة البيانات مباشرة.

ويتفعل التحديث دون الخروج من البرنامج.

ثانياً :- زر الحذف

من عنوانه نعرف بأنه سيقوم بحذف سجل ... بس مشكلتي هي أنني أريده أن يعمل على النحو التالي

1- في الفورم الأول من كثر ما أحذف ستصبح قاعدة البيانات فارغة ... عندها أريد أن يتحول هذا الزر لـDisable

أو إذا لا يمكن ذلك .. أقل شيء تطلع رسالة بأنه خلاص مافي شيء هناك يستأهل ينحذف.

2- في الفورم الثاني والمتعلق بإظهار النتائج في الفليكس جريد ، أريد يكون زر الحذف Disable، ولا يتفعل إلا إذا ظهرت النتائج بالفليكس جريد .. لأنني لو حطيت رقم حساب خطأ وضغطت زر بحث ما يطلع شيء،بس لو ضغطت على زر الحذف يقولي تم الحذف ( شو حذف ؟!! ما أدري )

3- ستلاحظون في الفورم الثاني .. أن المفتاح الرئيسي هو رقم الحساب الذي من خلاله تطلع كل البيانات المرتبطة به، ورقم الحساب هذا ثابت ، بينما بياناته مختلفة.. وهناك عدة سجلات مختلفة تحمل نفس الرقم.

المشكلة هنا لو ضغطنا على زر الحذف لا يقوم بحذف سجل واحد يعني One Row ، وإنما كل السجلات التي تحمل نفس رقم الحساب Many Rows..

فكيف يمكنني حذف سجل واحدOne Rows وهو الذي احدده بالضغط عليه ، ومن ثم الضغط على زر الحذف؟!!

4- الرقم المسلسل في الفليكس جريد يتم استدعاؤه من قاعدة البيانات ، وبالتالي تأتي غير مرتبة بناء على رقم الحساب المدخل ...

كيف يمكنني أن أضع رقماً مسلسلاً يظهر مرتباً بالجدول ، وبالتالي في التقرير الذي يتم طباعته ؟!!

5- أهم ما في اي برنامج يتعامل مع قاعدة بيانات هو أن يتم تفعيل كل التغييرات التي حدثت دون الخروج من البرنامج.. فما هو الكود المناسب لذلك ؟!!

أتمنى أن لا أكون أثقلت عليكم ..

ولن أنسى جهودكم ... وسأدع لكم بإذن الله بكل خير

أخوكم / المدمر007

ملاحظة :-

الملف المرفق الأول يخص أخونا { هاني }.

الملف المرفق الثاني يخصني.

GruopShowJoinandaddEditMSFlexGrid.rar

Search_Delete_Edit.rar

تم تعديل هذه المشاركة بواسطة المدمر007 في 31 مارس 2007 في 17:33

#2

أخوتي الكرام ...

بداية أعذروني لو كثرت في مطلبي .. أو وجدتم الموضوع مضخم من أول نظرة.. رغم أن المشكلة كلها تنحصر في أربع نقاط رئيسية هي :-

1- إذا قاعدة البيانات فارغة زر الحذف يصير Disable

2- الفورم 2 يكون زر الحذف فيه Disable ولا يتحول لـEnable إلا إذا كان هناك شيء بيانات بالفليكس جريد ظهرت.

4- كود لحذف سجل واحد بدل حذف عدة سجلات تحمل نفس الرقم الرئيسي.

ولكنني خشيت لو ذكرتها كما هي الآن ، ما في حد يفهم عليّ .. وبالتالي نضيع وقت في شرح المطلوب

كما كنت أشد ما أخشاه هو أن لا يفهمني الإخوة غلط .. وأنني أريد إنجاز المشروع على حسابهم :s .. فيعرضون عني <_<

لهذا حاولت قدر الإمكان أن أعتمد على نفسي ، وعلى ما وجدته من أفكار أو حلول مسبقة بمنتدانا هذا

فإن كنت أثقلت عليكم من حيث لا أدري ... فأرجو معذرتي

ولا يهمني إن تم حل المشكلة بقدر أن لا يظن أحدكم بأنني أوكلكم مشاكلي كلها لحلها بينما أنا آخذ الحل جاهزاً <_< .

وأولاً وأخيراً أشكركم جزيل الشكر :)

تم تعديل هذه المشاركة بواسطة المدمر007 في 2 أبريل 2007 في 07:50

#3

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

اقتباس
1- إذا قاعدة البيانات فارغة زر الحذف يصير Disable

ماهى الطريقة التى تستخدمها فى قاعدة البيانات اى فتح قاعدة البيانات سواء مكتبة او اداه بالتاكيد ستجد Metod اسمها RecordCount او اى شئ به Count وهو يقوم بارجاع عدد السجلات ون هنا تقوم ببناء جملة شرطية اذا كان العدد صفر يكون الزر Disable

اقتباس
2- الفورم 2 يكون زر الحذف فيه Disable ولا يتحول لـEnable إلا إذا كان هناك شيء بيانات بالفليكس جريد ظهرت.

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

اقتباس
4- كود لحذف سجل واحد بدل حذف عدة سجلات تحمل نفس الرقم الرئيسي.

يجب عليك ان تقوم بعمل حقل Index لكل سجل وارجح ان يكون رقم تلقائى ولا تظهر هذا الحقل فى اداه الفليكس جريد وعن طريق جملة استعلام تؤشر عليه ثم تقوم بمسحه

هذة حتة تفاريحى من واحد مبيحبش قواعد البيانات :lol:

تم تعديل هذه المشاركة بواسطة حريف برمجة في 2 أبريل 2007 في 08:58

موقع البرنامج

مبارك لشعب تونس photo-thumb-42837.png

#4

اشكرك أخي { حريف برمجة }

على تفاعلك مع موضوعي ، واستقطاع جزء من وقتك للرد على ما جاء رغم عدم ميلك للتعامل مع قواعد البيانات :)

بالنسبة لطريقة الربط التي استخدمها فهي طريقة ADO conniction

#5

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

أخى المدمر (لأعدائنا بس بعون الله)

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

أما بعد

أستطيع أن أقول لك أن معرفتى بالفليكس جريد قويه والحمد لله

ولكن مشكلتى فى الرد على مشاركتك أنى فى ظروف لا تسمح لى بتنزيل مثالك لأفهمك أكثر أو لأعدلها لك

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

و على سبيل المثال:

1- إذا قاعدة البيانات فارغة زر الحذف يصير Disable

2- الفورم 2 يكون زر الحذف فيه Disable ولا يتحول لـEnable إلا إذا كان هناك شيء بيانات بالفليكس جريد ظهرت

لو تستخدم MSHFlexGrid سيكون الكود

cmdDelete.Enabled = CBool(MSHFlexGrid1.Rows > MSHFlexGrid1.FixedRows)

ومعناه لو عدد الصفوف أكبر من الصفوف المثبته إجعل الزر cmdDelete مفعلاً

ولا أدرى أين ذهبت 3

4- كود لحذف سجل واحد بدل حذف عدة سجلات تحمل نفس الرقم الرئيسي

طبعا عليك أنت أن تعرف ما هو القيمة المعرفة للحقل الذى تريد إلغائه فما يحدث معك طبيعيا لأنك تلغى مجموعة سجلات تشترك فى رقم الحساب

وهذه النقطة ليس لدى المعلومات الوافيه لأفيدك فيها

ثم

كيف يمكنني أن أضع رقماً مسلسلاً يظهر مرتباً بالجدول ، وبالتالي في التقرير الذي يتم طباعته ؟!!

Sub FlexReSize(Frm As Form, Flex As MSHFlexGrid, Header As String)
 Dim R As Long, C As Integer
 Dim Tw As Double
  With Flex
	If Header <> "" Then .FormatString = Header
	.RowHeight(0) = 500
	For C = 0 To .Cols - 1
	  Tw = 0
	  For R = 0 To .Rows - 1
	   If R >= .FixedRows And C = 0 Then .TextMatrix(R, 0) = R - .FixedRows + 1
		If Frm.TextWidth(.TextMatrix(R, C)) > Tw Then Tw = Frm.TextWidth(.TextMatrix(R, C))
	  Next R
	  .ColWidth(C) = Tw + 150
	Next C
 End With
End Sub

قصاصة الكود هذه لو وضعتها فى مديول وناديتها بالطرقه هذه

	   FlexReSize Me, MSHFlexGrid1, Hed

حيث Hed هى ما تريد إظهاره كعناوين لرؤوس الأعمده

سيقوم بوضع رقم مسلسل للصفوف وضبط عرض الأعمدة لتناسب أعرض خليه فيه

أرجو أن أكون حللت لك بعض مسائلك

أسأل الله العلى القدير أن ييسر لك كل أمر عسير ويزيدك بسطة فى العلم والرزق

عن عبدالله بن عمر رضي الله عنهما أن رسول الله صلى الله عليه وسلم قال :

( أحب الناس إلى الله أنفعهم ، وأحب الأعمال إلى الله عز وجل سرور تدخله على مسلم ، أو تكشف عنه كربة ، أو تقضي عنه دينا ، أو تطرد عنه جوعا ، ولأن أمشي مع أخي المسلم في حاجة أحب إليّ من أن اعتكف في المسجد شهرا ، ومن كف غضبه ستر الله عورته ، ومن كظم غيظا ، ولو شاء أن يمضيه أمضاه ، ملأ الله قلبه رضا يوم القيامة ، ومن مشى مع أخيه المسلم في حاجته حتى يثبتها له ، أثبت الله تعالى قدمه يوم تزل الأقدام ، وإن سوء الخلق ليفسد العمل كما يفسد الخل العسل )

رواه الطبراني في الكبير

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

أخى المدمر (لأعدائنا بس بعون الله)

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

وعليكم السلام ورحمة الله وبركاته أخي { abulyaman }

بداية اشكرك جزيل الشكر على هذه الكلمات وهذه الروح الطيبة ..

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

اقتباس
لو تستخدم MSHFlexGrid سيكون الكود

cmdDelete.Enabled = CBool(MSHFlexGrid1.Rows > MSHFlexGrid1.FixedRows)

ومعناه لو عدد الصفوف أكبر من الصفوف المثبته إجعل الزر cmdDelete مفعلاً

أنا استخدم MSFlexGrid وربما لهذا رغم أن كودك جميل وفيه لمحة ذكاء منك..

وبصراحة هذا هو المطلوب فعلاً ..

بس ما مشى معي .. حتى رغم أني عدلت المسمى من ...MSH إلى ...MS

حيث وضعت هذا الكود في Private Sub MSFlexGrid1_Click

فيا ترى أين الخطأ ؟!!

أرجو مساعديت في ذلك ...

وبالنسبة للرقم المسلسل .. فلم أجربه بعد

سأعقب عليه بعد التجربة

واعذرني بالنسبة لثالثاً فقد سقطت سهواً حيث كانت حول زر تكست التعديل ، ولقد قمت بحلها بنفسي ..

ولله الحمد.

وكذلك الأمر بالنسبة لزر الحذف .. وسأرفق الأكواد بإذن الله بعد أن اتأكد من أن كل شيء قد تم حله بدون أخطاء

ليستفيد منه من أراد .

وفي الأخير .. لا يسعني إلا شكرك مجدداً على مساعدتك ووقتك الذي قطعت لي جزاءً كبيراً منه

عوضك الله عنه بكل ما ترضى وتحب .

وتقبل خالص إحترامي لشخصك

أخوك / المدمر007

#7

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

أخى العزيز

أشكرك وأمتدح أسلوبك المهذب فى الكلام

أما بخصوص الكود فلا اختلاف يذكر فى حال استخدامك MSHFlexGrid أو MSFlexGrid طبعا مع الأخيره قد تخسر بعض مزايا MSHFlexGrid التى لها مثلا خاصية ريكورد سيت

وكل ما عليك هو أن تحذف حرف H بكل بساطه مع وجود نقطه واحده لابد من أخذها فى الاعتبار

أن MSHFlexGrid لا تقبل أن يكون عدد الصفوف مساوى لعدد الصفوف الثابته - ولابد من وجود صف واحد تحت الصفوف الثابته على الأقل - طبعا أنت لن تصادف هذا الخطأ مع MSFlexGrid

وبعون الله أخوك - اللى هو أنا - مستعد أمدك بأى أكواد تحتاجها للفليكس بإذن الله ( تنسقها تطبعها - ترتبها تدمجها وووو)

والله المستعان من قبل ومن بعد

كله من فضل الله ومساعدات الإخوه وشوية تظبيط من ناحيتى والحمد لله

عن عبدالله بن عمر رضي الله عنهما أن رسول الله صلى الله عليه وسلم قال :

( أحب الناس إلى الله أنفعهم ، وأحب الأعمال إلى الله عز وجل سرور تدخله على مسلم ، أو تكشف عنه كربة ، أو تقضي عنه دينا ، أو تطرد عنه جوعا ، ولأن أمشي مع أخي المسلم في حاجة أحب إليّ من أن اعتكف في المسجد شهرا ، ومن كف غضبه ستر الله عورته ، ومن كظم غيظا ، ولو شاء أن يمضيه أمضاه ، ملأ الله قلبه رضا يوم القيامة ، ومن مشى مع أخيه المسلم في حاجته حتى يثبتها له ، أثبت الله تعالى قدمه يوم تزل الأقدام ، وإن سوء الخلق ليفسد العمل كما يفسد الخل العسل )

رواه الطبراني في الكبير

#8

آسف نسيت إضافة

[quote[

بس ما مشى معي .. حتى رغم أني عدلت المسمى من ...MSH إلى ...MS

حيث وضعت هذا الكود في Private Sub MSFlexGrid1_Click

عن عبدالله بن عمر رضي الله عنهما أن رسول الله صلى الله عليه وسلم قال :

( أحب الناس إلى الله أنفعهم ، وأحب الأعمال إلى الله عز وجل سرور تدخله على مسلم ، أو تكشف عنه كربة ، أو تقضي عنه دينا ، أو تطرد عنه جوعا ، ولأن أمشي مع أخي المسلم في حاجة أحب إليّ من أن اعتكف في المسجد شهرا ، ومن كف غضبه ستر الله عورته ، ومن كظم غيظا ، ولو شاء أن يمضيه أمضاه ، ملأ الله قلبه رضا يوم القيامة ، ومن مشى مع أخيه المسلم في حاجته حتى يثبتها له ، أثبت الله تعالى قدمه يوم تزل الأقدام ، وإن سوء الخلق ليفسد العمل كما يفسد الخل العسل )

رواه الطبراني في الكبير

#9

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

اخي المدمر

انا ضفت بعض الكود للمشروع الذي ارفقته انت وذلك لطلبك الاول فقط

ارجو ان يكون فيه ماتريد

السلام عليكم

Search_Delete_Edit_mukhtar_.zip

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

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