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

عندي مشكلة،والبرنامج مفتوح المصدر، ارجوكم تساعدوني

بدأه الحياة امراة في 19 مارس 2012 · 20 رد · 1,277 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم استاذتي الكرام....

ارجو منكم مساعدتي في اول برنامج اعمله ع VB6 ، والبرنامج مفتوح المصدر، بس صارت لي بعض الاشكاليات وهي:

1- عملت صفحة تقرير بس ما قدرت اربطها او احط فيها البيانات.

2- في عملية البحث، تظهر كل الاسماء وانا اريد فقط يظهر الاسم المطلوب + مجرد ما اكتب اول اسم في البحث يظهر كافة الاسماء بهذا الاسم.(مو شرط اكتب الاسك كامل)؟؟

3- ما عرفت اشلون اخلي بيانات الجداول ما تظهر الا وقت العرض او الطلب فقط؟؟ لاني كلما اشغل البرنامج احصلها ظاهرة...

واشكركم..... جميعاً...

اسف جدا.... الملف المرفق ليس هو....

ساقوم برفع ملف اخر....(اسمحولي جدا )

الاول.rar

تم تعديل هذه المشاركة بواسطة الحياة امراة في 19 مارس 2012 في 23:41

#2

هذا هو الملف الصحيح التابع للموضوع اللي قبل... اسف جدا....... والملف الللي رفعته سابقا بالخطا.. وطبعاً ما من عملي...

#3

ملفي ما بحجم 805 ميجا.. والمنتدى ما رضى يحمله؟؟؟؟؟ شو الحل؟؟؟؟؟

الحمد لله.. تم رفع الملف...

وهذا رابط الملف للموضوع كاملا..( اعتذر عن الخطاء الوارد عن غير قصد)

http://www.mediafire.com/?x187ck0ll58729t

#4

بالنسبة للنقاط :

1- راجع دروس التقارير في المنتدى

2- عملية البحث تعني البحث في مجموعة سجلات والذهاب بالمؤشر الى نتيجة البحث, اما ما تريده هو الفلترة او التصفية , اي عرض فقط السجلات التي تنطبق عليها شروط الفلترة, وهذا لا يمكنك عمله بأداه الـ Data لانها بدائية جداً .. يُفضل استخدام مكتبة الـ Ado او الـ Dao للأتصال بقاعدة البيانات و أداه الـ DataGrid او الـ FilexGrid لعرض البيانات في جدول

3- هذا ايضاً لا يمكنك تنفيذه بإستخدام اداه الـ Data .. لكن يمكن تنفيذه بالـ Ado

لإستخدام هذه الادوات وعمل الفلترة وكل ما طلبت لما لم تقم بالرجوع للمثال الذي كنت قد ارفقته في موضوعك السابق ؟؟

1

It does not matter what they know about you, but what you can do, so let your work speak of you

mmghv VB6 Programmer

#5
محمد غريب كتب:

بالنسبة للنقاط :

1- راجع دروس التقارير في المنتدى

2- عملية البحث تعني البحث في مجموعة سجلات والذهاب بالمؤشر الى نتيجة البحث, اما ما تريده هو الفلترة او التصفية , اي عرض فقط السجلات التي تنطبق عليها شروط الفلترة, وهذا لا يمكنك عمله بأداه الـ Data لانها بدائية جداً .. يُفضل استخدام مكتبة الـ Ado او الـ Dao للأتصال بقاعدة البيانات و أداه الـ DataGrid او الـ FilexGrid لعرض البيانات في جدول

3- هذا ايضاً لا يمكنك تنفيذه بإستخدام اداه الـ Data .. لكن يمكن تنفيذه بالـ Ado

لإستخدام هذه الادوات وعمل الفلترة وكل ما طلبت لما لم تقم بالرجوع للمثال الذي كنت قد ارفقته في موضوعك السابق ؟؟

استاذي العزيز:...

اشكر تواجد الدائم في هذا المنتدى المتميز، ولك الاجر ان شاء الله.

ثانيا: اشكرك على مساعدتي في كل شي، ولكن ما كنت اعرف انه يصير اعمل المثال السابق(الموضوع السابق) لهذا الموضوع؟!؟!؟ وثالثا: وبكل صراحة لازلت اجهل الكثير والكثير في هذه الامور،، فكل الرجاء استحملوني اشوي....

شكر الله سعيك.... وسدد على درب الخير خطاك.....

وانا في انتظار تعليماتك وتوجيهاتك استاذي.....

(تقبل تحياتي )

#6
اقتباس
ولكن ما كنت اعرف انه يصير اعمل المثال السابق(الموضوع السابق) لهذا الموضوع؟

لا اخي .. المثال في الموضوع السابق ليث حالة خاصة .. بل قمت بعمله لتتعلم طريقة التعامل مع قواعد البيانات بشكل عام, اي تتعلم منه كيف تتعامل مع قاعد البيانات في كل مشاريعك

هو مثال بسيط به فقط الإضافة والتعديل والحذف والفلترة (المثال في المرفقات , قم بتحميله من هذا الموضوع وليث من الموضوع السابق حيث قمت بتعديل جزء صغير)

شرح بسيط :

اولاً للإتصال بالداتابيز من إصدار Access 2003 وما قبلها نحتاج إضافة مكتبة الـ Ado التي ستكون حلقة الوصل بين البرنامج والداتابيز.

لإضافتها نذهب لقائمة Project ثم References تظهر نافذة نبحث في القائمة عن المكتبة :

Microsoft ActiveX data Object 2.8 Library ثم نقوم بتحديدها ونضغط Ok

ونقوم بإضافة DataGrid لعرض البيانات على هيئة جدول

الآن نحتاج إضافة متغيرين للإتصال بالداتابيز هما : DB للإتصال بالداتابيز و RS للإتصال بجدول معين في الداتابيز

بعد ذلك نقوم بإضافة Module جديد من خلال الذهاب لقائمة المشروع وكلك يمين ثم Add ثم Module

ما فائدة هذا الـ Module ؟؟ ان نقوم فيه بتعريف المتغيرات والإجراءات العامة لتكون مشتركة بين كل فورمات المشروع حتى نستدعيها من اي فورم في البرنامج ولا نضطر لتعريفها في كل فورم على حدى

إذاً في الـ Module نقوم بتعريف المتغيرين DB,RS .. ايضاً نقوم بعمل إجراء OpenRS للإتصال بجدول في الداتابيز (راجع المثال)

ثم في حدث تحميل الفورم نقوم بالإتصال بالداتابيز وربطها بالمتغيير DB ثم تحميل البيانات من خلال الذهاب للامر الخاص بزر "تحديث البيانات"

في هذا الزر نقوم بفتح الجدول من خلال الإجراء OpenRS الذي قمنا بكتابته في الـ Module فنقوم بإستدعاءه بتمرير الإستعلام المراد تنفيذه

بهذا الإستعلام يمكننا عرض كل البيانات من خلال الجملة Select * From Students او عرض طلاب بشرط معين (مثلاً طلاب الصف الاول فقط) من خلال إضافة الشروط لهاذا الإستعلام

بعد ذلك يكون لدينا إتصال مع الجدول والذي يكون من خلال المتغير RS فيعتبر هذا المتغير هو الجدول الموجود بالداتابيز

نربط الجدول بالجريد لعرض بياناته في الجريد من خلال الامر Set DataGrid1.DataSource = rs

بعد ذلك لعمل عمليات الإضافة نستخدم RS.AddNew ولعمل عمليات حفظ الإضافة والتعديل نستخدم RS.Update

باقي الاكواد بشرحها تابعها من المثال

إذا واجهتك اي نقطة لم تفهمها جيداً لا تتردد في طرحها طلما تريد التعلم

وإن شاء الله جميعاً هنا لمساعدتك ..

Database.rar

1

It does not matter what they know about you, but what you can do, so let your work speak of you

mmghv VB6 Programmer

#7

استاذي العزيز...(محمد غريب)....لا تعليق في كل شي...(جزاء الله المحسنين خير الجزاء)

ما عليه بتعبك شوي معي استاذي العزيز واتحملني:.... شو هذا المثال المرفق بعد التعديل.

انا عدلت فيه شوي ( حسب قدرتي ومعرفتي فقط ) بس ابصراحة وبدون احراج.. الModule صعب علي، واحس نفسي ماني قادر افهم منه شي ولا افهم فيه شي، لانه البرمجة فيه تختلف كثير عن اللي جالس اعمله في الكودات والليبات والتكسات.!؟!!

وثانيا: اعتقد انك استخدمت sql في الربط بقاعة البيانات، وانا اسخدمت في المرفق adodc1 ، ف ما اعرف هل يعملوا نفس العمل؟؟؟؟ ام لا؟؟؟؟

ف ملاحظة: - انا ربط بالقاعدة بس ما يرضى يعطيني البيانات الموجودة ف القاعدة؟؟؟ ويظهر مسج انه( لا يمكن لمشغل قاعدة البيانات العثور على جدول الادخال او الاستعلام ؟؟

اكرر شكري العميق لك ولكل ما يساعدني وامثالي

الرابط الخاص بي

تم تعديل هذه المشاركة بواسطة الحياة امراة في 21 مارس 2012 في 22:45

#8

على العموم الـ Adodc يستخدم الـ Ado فيمكنك استخدامه

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

يفضل استخدام اللغة الانجليزية وعدم استخدام المسافة عند تسمية كائنات قاعدة البيانات من جداول وحقول

لكن إذا كنت تريد العمل على هذا الحال فقم بوضع اسماء الكائنات بين [] عند استخدامها في الاستعلامات او اختيار الجدول

ففي اداة الـ Adodc قم بتغيير اسم الجدول في خاصية الـ RecordSet من

بيانات العملاء

الى

[بيانات العملاء]

ايضاً في الاستعلامات مثل الاستعلام التالي قم بتغييره من

select * from بيانات العملاء where namen like '" & X & "%'

الى

select * from [بيانات العملاء] where namen like '" & X & "%'
1

It does not matter what they know about you, but what you can do, so let your work speak of you

mmghv VB6 Programmer

#9

بارك الله فيك استاذي ( محمد غريب )...

راح اعمل التعديل، وراح اوافيك بكلا الامرين....(جزاء ربي خير الجزاء )

#10

راجعنا مشاكلنا من جديد.....

كيف ممكن ارفع مشروع على الموقع عن طريق الرد؟؟؟؟

لاني يا استاذ محمد غريب اريدك ان تقيم العمل بعد التعديل ولكن لا تظهر عندي ميزة الرفع في حالة الرد...ممكن تساعدوني؟؟؟

#11

اساتذتي ارجوكم عدلولي ملاحظات في البرنامج وهي كالتالي:(استحملوني شوي)

1- البرنامج شبه كامل( والكمال لله وحده لا شريك له ) بس عملية البحث ما رضت تضبط نهائياً.(والله العظيم الحين 3 ايام وللاسف ما رضى يضبط معي).

2- عملية التقرير موضابطة مع العلم اني عملت datareport.

3- ( استاذي العزيز(محمد غريب) انا رجعت للبرنامج القديم ( الاجازات ) ( المرفق ) وطبعاً عدلت فيه الا هذه الملاحظات.

فارجو منكم ان تحلوا لي هذه الملاحظات.....

ولكم مني جزيل الشكر...(حرام جالس هالفترة كلها وما قدرت احل هالمشكلة بنفسي)

الرابط الخاص بي

#12

ساعدوني في حل مشكلتي فقط...!!!!!

#13

يا اخي مشاكلك كلها انك تستخدم اداة الـ Data للربط بالداتابيز وهذه لا تدعم الفلترة وتقريباً لا تدعم الداتا ريبورتس ايضاً (لست متأكد من هذه النقطة حيث اني لم استخدم الداتا ريبورت قبل ذلك)

قم بإستخدام اداه الـ Adodc للربط مع الداتابيز واساتخدم نفس الاكواد

اقتباس
كيف ممكن ارفع مشروع على الموقع عن طريق الرد؟؟؟؟

استخدم المحرر الكامل في الرد لكي تستطيع إرفاق محتوى

1

It does not matter what they know about you, but what you can do, so let your work speak of you

mmghv VB6 Programmer

#14
محمد غريب كتب:

يا اخي مشاكلك كلها انك تستخدم اداة الـ Data للربط بالداتابيز وهذه لا تدعم الفلترة وتقريباً لا تدعم الداتا ريبورتس ايضاً (لست متأكد من هذه النقطة حيث اني لم استخدم الداتا ريبورت قبل ذلك)

قم بإستخدام اداه الـ Adodc للربط مع الداتابيز واساتخدم نفس الاكواد

استخدم المحرر الكامل في الرد لكي تستطيع إرفاق محتوى

والله العظيم.....اعتذر منك استاذي(محمد غريب ) على كثر طرح الاسئلة، بس اتحملني شوي..لاني ما افهم بسرعة.. والحين انا فهمت.... بعدل المشروع ورااااااااح اوافيك(اكرر اعتذاري )

ولك مني جزيل الشكر والعرفان..... والله يوفقك.

#15

ولا يهمك اخي كلنا نتعلم ..

استخدم الـ Adodc وإن واجهتك اي مشكلة او استفسار لا تتردد في طرحه

بالتوفيق ..

1

It does not matter what they know about you, but what you can do, so let your work speak of you

mmghv VB6 Programmer

#16
محمد غريب كتب:

ولا يهمك اخي كلنا نتعلم ..

استخدم الـ Adodc وإن واجهتك اي مشكلة او استفسار لا تتردد في طرحه

بالتوفيق ..

اشكرك استاذي..... عندي بعض الملاحظات:

1- هل ربط التقارير في البرنامج بالـ data ام بالadodc ؟؟؟؟؟

2- في اي حالة يجب ان نعمل ربط بين جدولين او اكثر في الاكسس؟؟؟(ممكن تعطيني مثال)

ولكم مني كل احترام وتقدير........

#17
اقتباس
هل ربط التقارير في البرنامج بالـ data ام بالadodc ؟

لا اعرف إذا كان يمكن ربطها بالـ Data ام لا , لكن يمكن ربطها بالـ Adodc من خلال الكود :

Set Datareport1.DataSource = Adodc1.RecordSet

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

لا يتم الربط عن طريق الاكسس (اي لا نقوم بعمل اي علاقات عن طريق الاكسس) ولكن كل شئ يتم داخل الفيجوال بيسك

ونحتاج للربط بين جدولين في حين اردنا تفصيل بيانات كل سجل من سجلات الجدول الاول في الجدول الثاني ;

اي على سبيل المثال عندما يكون عندنا جدول للآباء ولكل واحد من هؤلاء للآباء له عدد معين من الابناء فلا يمكن عرض بيانات الآباء والابناء في جدول واحد فعدد الابناء لكل اب غير معروف وغير محدود , لذلك نقوم بعمل جدولين , الاول للآباء والثاني للابناء حيث مثلاً عند الضغط على سجل من سجلات الجريد الاولى (الآباء) يتم ملأ الجريد الثانية ببيانات الابناء .

وفي هذه الحالة نحتاج حقل ربط بين الجدولين , ففي جدول الابناء يوجد جميع الابناء لكل الآباء فكيف سنعرف اي الابناء هم ابناء اب معين , يكون هذا عن طريق عمل حقل ترقيم تلقائي للآباء (ID) لا يتكرر وفي جدول الابناء يتم عمل حقل رقمي (قابل للتكرار) يسمى حقل اجنبي لأنه يحمل قيمة رقم الاب من جدول الآباء ويتم بناءاً عليه تحديد ابناء كل اب من هذا الجدول

فمثلاً لنفرض ان لدين الجدولين وبهما البيانات التالية :

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

جدول الآباء :

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

رقم (ترقيم تلقائي) - اسم - سن

1 - احمد - 30

2 - محمد - 34

3 - علي - 29

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

جدول الابناء :

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

رقم الاب - اسم - سن

1 - كريم- 2

1 - سعد - 5

2 - شيماء - 1

2 - فاطمة - 4

2 - مصطفى - 6

2 - عبدالله - 8

3 - بسملة - 2

ففي الجريد الاولى نعرض كل بيانات الجدول الاول لكن (مثلاً) عند اختيار اب من الآباء يتم عمل تصفية لبيانات الجدول الثانية حسب رقم الاب ليتم عرض ابنائه في الجريد الثاني .

لارجوا ان تكون الفكرة وضحت ..

It does not matter what they know about you, but what you can do, so let your work speak of you

mmghv VB6 Programmer

#18

بارك لك الله اخي العضو الكريم محمد غريب علي مجهودك

#19

استاذي محمد غريب.....الله يجازيك عني كل خير

1- في برنامجي الاجازات، وبمساعدة أحد الاخوة (جزاه ربي خير الجزاء) وبك ايضا تم عمل زر(طباعة) لكشف الموظفين.

المطلوب سيدي:....

س1: اريد كود يقوم بطباعة الموظفين اللي ظهروا في الكشف نتيجة البحث.

س2: كود اقدر من خلاله اقوم بعملية التعديل(زر التعديل) في سجل موظف(بيانات الموظف المخزنة سابقاً) نتيجة خطاء او سوء + ان يكون زر التعديل محمي برقم سري.

س3: انا عملت باسبور للدخول الى البرنامج، واريد كود او طريقة اقدر من خلالها اغير الباسورد حسب الرغبة( طبعاً يكون في فورم ثاني غير الفورم اللي فيه باسبورد الدخول). ممكن ترفعلي مثال او نموذج.

والسموحة منكم.....

#20

1- إذا كانت نتيجة البحث في الـ Adodc فما عليك سوي تمرير الـ RecordSet من الادودك للداتاريبورت من خلال الكود:

Set DataReport1.DataSource=Adodc1.RecordSet

2- راجع كود التعديل في المشروع في اول الموضوع

3- يمكنك عمل جدول إعدادات يوضع به حقل للباسورد يتم التأكد منه عند الدخول ويمكن تغييره كما تقوم بتغيير اي بيانات في قاعدة البيانات

1

It does not matter what they know about you, but what you can do, so let your work speak of you

mmghv VB6 Programmer

#21

كما عهدنا يا استاذنا العزيز.... دائما مبدع ومحترف ايضاً....

اكرر شكري العميق لك ولكل ما ساعدني في مشروعي....

وفقكم الله تعالى...

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…