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

من يساعدني ياطيبين

مغلق
بدأه ha98 في 27 أبريل 2003 · 18 رد · 1,663 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

هل ممكنكم مساعدتي في هذا الموضوع مختار فأنا أشعر كأني وصلت إلى حد معين وبعده وقفت

أنتظر الرد بفارغ الصبر

تحياتي

#2

هناك مايطلق عليه ADO هل سمعت بها؟ وهي إخنصار لـ Active Data Object

إذا كنت تعرفها فهذا جيد جدا وعليك بقراءه الـ Help الخاص بها وتحديدا الإصدار 2.6 حيث يأتي معه Help مفصل جدا ومدعم بالكثير من الأمثلة.

من وجهه نظري إذا فهمت الـ ADO جيدا يصبح التعامل مع قاعده البيانات من خلال الفجوال بيسيك سهل للغايه ومرن إلى أقصى درجه.

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

وفقق الله وسدد خطاك

MSDN

#3

عزيزي MSDN شكرا على تجاوبك أولا

ثانيا

بصراحة كل الأمثلة التي عملتها بواسطة ال dao وليس عندي فكرة عن استخدام الado ومن وين يمكن أحصل على الإصدار الذي تكلمت عنه هل يمكنك تفيدني أكثر في هذا وهل لوحصلت عليه سيمكنني عمل ماأطمح أن أعمله خاصة أن إمكانياتي في الفيجوال ليست كما تتصورها فهي محدودة أي أنني لست محترف في الفيجوال لكن عندي إطلاع بلغة ال sql server

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

تحياتي

#4

بدايتا يجب أن تحدد هل سوف تتعامل مع قاعدة بيانات الـAccess فقط أم لا؟

حيث إذا كنت تتوقع أن تتعامل مع غير الـAccess مثل SQL Server أو Oracle أو غيرها ففي هدة الحالة أصبح من الواجب أن تتحول لإستخدام ADO حيث أن العمل بـDAO مع SQL Server مثلا بطيء جدا ولا يمكن من إستخدام جميع مميزات SQL Sever وبالتالي أصبح واجب أن تعمل على ADO .

إذا ما أردت أن تعمل بـالـADO فهذه وصلة التحميل ADO 2.7

http://www.microsoft.com/downloads/details...20-182F179779A4

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

سوف نبدأ من البداية

قل لي تحديدا ماذا تريد أن تبدأ به بالضبط ، هل تريد أن تبدا بفتح Connection مع قاعدة البيانات أم Table

هل سوف تعمل على Access أم SQL Server ?

سوف أفيدك إن شاء الله إن كنت تريد أن تعمل على SQL Server حيث أني ولله الحمد لي باع طويل فيه بحكم عملي.

في انتظار ردك ، والله الموفق

MSDN

ملاحظه: لا تنزعج إن لم أرد عليك قبل يوم السبت القادم لدواعي السفر.

#5

عزيزي MSDN

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

أولا أني أهوى عمل برامج قواعد البيانات ولذلك أخذت دورة في نيوهورايزون في

1/ visual basic .net

2/ sql server 2000 ولكن المشكلة أن الدورة كانت لمطوري البرامج وليس للمبتدئين الأمر الذي جعل استفادتي من الدورة ليست كبيرة

ومع ذلك لم أتمكن من عمل هذه البرامج لوحدي للأسباب التالية

1/ لم يكن عندي خبرة في لغة الفيجوال بيسك 6 فضلا عن الدت نت

2/ لعمل برنامج قواعد بيانات بالفيجوال بيسك دت نت استخدم الويزارد ولا أفهم الكود الخاص به وهذه مشكلة

3/ البرامج المعمولة بالفيجوال بيسك دت نت لتركيبها على جهاز المستخدم تتطلب أن تركب على جهازه مكتبة الnet framework . ومحرك السيكويل سيرفر وهذه أيضا مشكلة

لذلك فكرت أن أتعلم عمل هذه البرامج بواسطة الفيجوال بيسك 6 والأكسيس لأنها أسهل

أنت الآن بماذا تنصحني هل أستخدم الأكسيس أو السكيول سيرفر

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

في النهاية أشكرك شكرا ليس له حدود وأدعوا الله أن يوفقك لكل مافيه خير وصلاح

تحياتي وتقديري

#6

أخي العزيز ha98

راجع الموضوع اللي كتبتو عندي بالمنتدى

#7

أخوي مختار ماقصرت يعطيك العافية سأطالع ردك حالا

تحياتي

#9

شكرا لك ياعزيزي Visitor_OM

وعساك على القوة

#10

أخي العزيز

للتسهيل على نفسك إستخدم الـAccess وفي نفس الوقت إستخدم الـADO

للمستقبل.

أما إذا ما كان عندك SQL Server على الجهاز وكنت تعرف كيف تعمل الوظائف الأساسية مثل كيف تخلق قاعدة بيانات وتخلق جدول وحقول ...الخ فبالعكس إستخدم الـSQL Server فورا.

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

لنبدأ فورا ، ما هو مشروعك فالتعرضه فورا ... في إنتظارك..

MSDN

#11

عزيزي msdn كيف حالك إن المشروع الذي بودي عمله هو

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

مثلاً هذا النظام

1- يخصم على الطالب درجة واحدة إذا تكرر غيابه عن حصة معينة أكثر من 3 مرات

2- يخصم على الطالب نصف درجة إذا تكرر تأخيره عن الطابور الصباحي 3 مرات

3- يخصم على الطالب درجتان عن كل يوم غياب قبل الامتحان النهائي

4- هناك 5 أنواع للمخالفات ولكل نوع أصناف معينة من المخالفات وإذا مارس الطالب أي صنف من أصناف المخالفات هذه تحسم عليه من درجة السلوك درجة مخصصة لهذا النوع من المخالفات

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

عندها أرسل لك تفاصيل المشروع على مستند وورد

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

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

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

مثلا الطلاب مع المخالفات

- كيف تجعل كومبو بوكس يفلتر كومبو بوكس آخر

- كيف تجعل بيانات إحدى خلايا الجريد تكون في كومبو بوكس

- كيف تجعل البرنامج يخصم مثلا بعدما يغيب الطالب بعد المرة الثالثة

وهكذا المشاكل التي أعاني منها لخبرتي البسيطة في البرمجة

الآن أنتظر ردك ياغالي

تحياتي

#12

أخي العزيز

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

مثلا الطلاب مع المخالفات

- كيف تجعل كومبو بوكس يفلتر كومبو بوكس آخر  

- كيف تجعل بيانات إحدى خلايا الجريد تكون في كومبو بوكس

- كيف تجعل البرنامج يخصم مثلا بعدما يغيب الطالب بعد المرة الثالثة

سوف أجهز لك ملف وورد به أمثلة عمليه لكل مما سبق.

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

وأهم شيء لا أريدك أن تعتمد علي بنسبه 100% فأنا في الحقيقة أساعدك في تعلم برمجة قواعد البيانات حتى نتعلم جميعا ونشارك الجميع في كيفية تنفيذ كل ما ذكرت سابقا. وخصوصا أننا نريد أن نبني البرنامج بأسلوب عملي محترف فمثلا لن نربط الجريد بالجدوال بشكل مباشر Binding بل نملئ الجريد بشكل يدوي وهكذا .. سوف نستعرض هذه الطرق تباعا حسب خط سير تنفيذ البرنامج.

إذن أنت في إنتظار ملف الوورد منى وأنا منتظر منك الشاشات.

وفقك الله

MSDN

#13

أخي العزيز

نظرا لضيق وقتي الشديد إن شاء الله كلما أنتهي من شيء سوف أرسلة على طول حتى لا تنتظر كثيرا.

هذه البداية:

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

مثلا الطلاب مع المخالفات

لإستعراض محتويات جدولين لابد من فهم الفكرة التي يقوم عليها الربط.

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

1- كود الطالب Code

2- إسم الطالب Name

3- تاريخ الميلاد Birth

4- الجنسية Nation

يسمى هذا الجدول جدول أساسي Master Table لأنه يحتوي على بيانات أساسية وليس بيانات نتيجه حركه معينة Transactions Table.

نأتي للجدول الثاني وهو جدول المخالفات

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

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

1- كود الطالب Code

2- كود المادة SubjCode

3- تاريخ الخصم DeducDate

4- الدرجة المخصومة DeducDeg

5- كود المخالفة violationCode

وناتي هنا لجملة الربط ونستخدم حقل كود الطالب كحقل ربط ويسمى في الجدول الأول مفتاح رئيسي Primary key ويسمى في الجدول الثاني(جدول المخالفات) مفتاح خارجي foreign key وتكون الجملة كالآتي:

Select Name, Birth, SubjCode, DeducDate from Students INNER JOIN Violation ON Students.Code = Violation.Code where ViolationCode =1

هذا بفرض أن مخالفة الخصم لها كود =1 وبفرض أننا نريد أن نميز بين المخالفات المختلفة.

والآن نأتي للكود:

Public Cnn As Connection

Public Rst as Recordset



Set Cnn = New Connection

Set Rst = New Recordset





Cnn.Provider = "Microsoft.Jet.OLEDB.3.51"

Cnn.CursorLocation = adUseClient

Cnn.Open "Mydb.mdb"



Dim Str as string

Str = "Select Name, Birth, SubjCode, DeducDate from Students INNER JOIN Violation ON Students.Code = Violation.Code where ViolationCode =1"



Set Rst = Cnn.Execute(Str)

Dim I as long



I = 1



Grid1.Row = 0

    Grid1.Col = 1

    Grid1.Text = "Name"

    Grid1.Cols = 3

    

    While Not Rst.EOF

      Grid1.Col = 1

      Grid1.Row = Grid1.Rows - 1

      Grid1.Text = Rst!Name

      Grid1.Col = 2

      Grid1.Text = Rst!Birth

      

      Grid1.Rows = Grid1.Rows + 1

      Rst.MoveNext

    Wend
#14

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

1- شكرا شكرا ....................... لاحدود له

2-مارأيك أن تعطيني إيميلك لكي أرسل لك الجزء الذي عملته من المشروع

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

3- إذا أردت أن نبدأ من الصفر سوف أرسل لك مع المرفقات تفاصيل المشروع

4- الدرس الأول كان ممتاز لكن هناك بعض الأشياء التي لم أفهمها

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

5- الجزء التالي من الكود لم أفهمه

Dim I as long

I = 1

Grid1.Row = 0

Grid1.Col = 1

Grid1.Text = "Name"

Grid1.Cols = 3

While Not Rst.EOF

Grid1.Col = 1

Grid1.Row = Grid1.Rows - 1

Grid1.Text = Rst!Name

Grid1.Col = 2

Grid1.Text = Rst!Birth

Grid1.Rows = Grid1.Rows + 1

Rst.MoveNext

Wend

تحياتي الكبيرة لك

#15

أخي العزيز

طبعا لا تعيد إختراع العجلة أقصد لا داعي للبدأ من الصفر طالما أن ما تم من البرنامج يؤدي الغرض ويعمل بطريقة صحيحة وبالتالي يفضل أن نكمل على ما سبق.

أما بالنسبة للجدولين أنا لم أتطرق لشيء يخص الجدول الأول (تكرار الغياب للطالب) في الكود ولكن يمكن أن نتخيل مع بعض كيف يمكن أن يعمل جدول

تكرار الغياب.

حقول الجدول:

1. كود الطالب

2. كود المادة

3. كود الغياب

4. تاريخ الغياب

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

فسوف نجد كوده مكرر مرتين في الجدول لنفس الماده وفي كل مره نسجل الغياب للطالب تتم عمليه عد لعدد مرات تكرار الطالب لهذه الماده بإستخدام

Select count

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

أما بالنسبه لسؤالك عن الكود

هذا الكود يملئ الجريد بشكل يدوي فتحدث عمليه دوران Loop لكل الجدول وينتقل إلى الجريد.

هنا

Grid1.Row = 0

Grid1.Col = 1

Grid1.Text = "Name"

Grid1.Cols = 3

وضعنا عنوان واحد للجريد على سبيل المثال

أما هنا

While Not Rst.EOF

Grid1.Col = 1

Grid1.Row = Grid1.Rows - 1

Grid1.Text = Rst!Name

Grid1.Col = 2

Grid1.Text = Rst!Birth

Grid1.Rows = Grid1.Rows + 1

Rst.MoveNext

Wend

فمجرد تتم عملية ملئ الجريد.

عنواني:msd@link.net

#16

الآن فهمت الفكرة ياعزيزي MSDN يعطيك ألف عافية وسوف أرسل لك البرنامج على الايميل لتطلع عليه وليتم إكماله معك بإذن الله ثم بعدها سأرسل لك بنود المخالفات على مستند وورد

تحياتي ياغالي

#17

عزيزي msdn البرنامج عندي بعد الضغط حجمه تقريبا 90 كيلو بايت لكن ماعرفت كيف أرسله لك عن طريق الايميل هل هناك طرية ما لأيصاله إليك

تحياتي

#18

أخي

لماذا لم ترسلها حتى الآن على الميل فإنتظارك ...

#19

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

تحياتي لك يا msdn

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

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

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

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

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

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