منتديات دردشة
سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور 613623
عزيزي الزائر / عزيزتي الزائرة
او التسجيل ان لم تكن عضو وترغب في الانضمام الي اسرة المنتدي
سنتشرف بتسجيلك
شكرا سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور 829894
ادارة المنتدي سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور 103798
منتديات دردشة
سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور 613623
عزيزي الزائر / عزيزتي الزائرة
او التسجيل ان لم تكن عضو وترغب في الانضمام الي اسرة المنتدي
سنتشرف بتسجيلك
شكرا سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور 829894
ادارة المنتدي سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور 103798
منتديات دردشة
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.


مرحبا بك يا زائر فى منتديات دردشة

 
الرئيسيةأحدث الصورالتسجيلدخول

 

 سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور

اذهب الى الأسفل 
3 مشترك
كاتب الموضوعرسالة
لؤى احمد
المدير العام
المدير العام
لؤى احمد


المشاركات : 2635
الجنس : سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور I_icon_gender_male
الأوسمة : سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور 15751611
بلدى : سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور Male_e10
المهنة : سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور Accoun10
مزاجى : سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور Pi-ca-16
my sms my sms : اهلان ومرحبا فى منتدنا الغالى دردشة
تاريخ التسجيل : 11/03/2009

سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور Empty
مُساهمةموضوع: سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور   سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور Icon_minitimeالإثنين مارس 16, 2009 9:24 am



سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور 0



سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور
الدرس الأول
بسم الله الرحمن الرحيم
تعتبر برمجة قواعد البيانات من أهم أقسام عالم البرمجة ويتم إنشاء قواعد البيانات بالعديد من البرامج ومن أهمها
MS Access و أوراكل وغيرها
سنتعلم في هذه الدروس إنشاء قاعدة بيانات باستخدام مايكروسوفت أكسس ثم ربط
هذه القاعدة بالفيجوال بيسك باستخدام الأداة ADO وبعض طرق وخصائص هذه
الأداة طبعا الشرح سيكون ببرنامج عملي وهو دليل للهاتف

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

سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور Oneee

اختر إنشاء جدول بطريقة عرض التصميم بالنقر عليها مرتين الصورة (2)
سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور Two


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

سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور Three

الآن نكون قد أنشأنا قاعدة بيانات فارغة اسمها telephone فيها جدول واحد
اسمه tele طبعا تستطيع ملئ الجدول بعد حفظه بما تشاء (حسب الطلب ) وذلك
بالنقر عليه مرتين حيث يضاف إلى مربع الحوار السابق (قاعدة بيانات (تنسيق
ملف)) انظر الصورة (4)

سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور Four

مهم : قبل أن ننتقل للفيجوال بيسك وعملية ربط هذه القاعدة بيه علينا أن نحولها أولا إلى تنسيق Access 97
من أدوات / أدوات مساعدة لقواعد البيانات/تحويل قاعدة بيانات / لتنسيق ملف 97 الصورة (5)
سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور Five

سيطلب حفظها أحفظها باسم telephonedalel طبعا لا تستطيع حفظها فوق قاعدة
البيانات السابقة وسيكون تعاملنا في الفيجوال مع هذه القاعدة
telephonedalel

الآن عملية ربط قاعدة البيانات بالفيجوال ( يلللا دوسوا بانزين)
افتح الفيجوال وأنشئ مشروع جديد سمه telephonedalel وأضف الأداة ADO
(انقر باليمين على أي مكان فارغ في صندوق الأدوات ثم components سيظهر مربع حوار اختر
Microsoft ADO Data Control 6.0(OLEDB)
ويكون شكلها

الآن أضف الأداة إلى الفورم بالنفر عليها مرتين ثم انقر عليها باليمين ( الأداة في الفورم واختر ADODC Properties ) الصورة (6)

سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور Six

يظهر مربع حوار اختر Use ODBC Data Source ثم بجانيها NEW
يظهر مربع حوار جديد اختر User Data Source (Applies to this machine only) (يظهر شرح عن كل خيار تحته بلا كثرة غلبة ) ثم next
يظهر مربع حوار جديد اختر Microsoft Access Driver (*.mdb) (لاختيار أن قاعدة البيانات هي بتنسيق Access معروفة ) ثم next
ثم اختر Finish
فيظهر مربع حوار جديد نحدد فيه مكان قاعدة البيانات telephonedalel في
الجهاز وتكتب اسم مصدر قاعدة البيانات اكتب نفس الاسم ( مش ضروري نفسه)
اتبع الصور (7 ., 8 , 9 , 10)

سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور Seven

سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور Eight

سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور Nine

سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور Ten
تعود إلى مربع الحوار الأول اختر قاعدة البيانات ( الاسم الذي كتبته في اسم مصدر البيانات ) من القائمة المنسدلة الصورة (11)
سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور Eleven


ومن التبويب Record Source في خانة Command type اختر 2-adCmdTable
ومن الخانة Table name نختار اسم جدول من قاعدة البيانات وطبعا لا يوجد في
القاعدة التي أنشأتاها سوى جدول واحد وهو tele نختاره الصورة (12)
سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور Twelve

الآن نكون قد انتهينا من ربط قاعدة البيانات ببرنامجنا
اجعل الفورم عندك مشابها للصورة (الصورة 13)

سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور Treeten
من الخصائص المهمة لصناديق النصوص لربطها بقاعدة البيانات
Name : txtname
اسم الأداة التي تحوي القاعدة(مصدر البيانات) Adodc1 : DataSource
اسم الحقل (من الجدول tele) المربوط بها DataField : name

Name : txtnum
adodc1 : DataSource
DataField : phone number




Name : txtcity
adodc1 : DataSource
DataField : city

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

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

الرجوع الى أعلى الصفحة اذهب الى الأسفل
لؤى احمد
المدير العام
المدير العام
لؤى احمد


المشاركات : 2635
الجنس : سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور I_icon_gender_male
الأوسمة : سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور 15751611
بلدى : سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور Male_e10
المهنة : سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور Accoun10
مزاجى : سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور Pi-ca-16
my sms my sms : اهلان ومرحبا فى منتدنا الغالى دردشة
تاريخ التسجيل : 11/03/2009

سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور Empty
مُساهمةموضوع: رد: سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور   سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور Icon_minitimeالإثنين مارس 16, 2009 9:26 am



سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور 0



السلام عليكم ورحمة الله وبركاته
سنقوم الآن بوضع الدرس الثاني من السلسة وعلى بركة الله نبدأ
بســـــــــــــــــــــــــــــــــــــم الله الرحمن الرحـــــــــــــــــيم

ملاحـــــــــــــــــــــــظة على الدرس السابق :
في الحقل phone number اخترنا نوع البيانات رقم عليك القيام بإزالة القيمة الافتراضية زهي "0"

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


سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور Fourteeeeeen

طبعا ما كتب بالأحمر على الصورة هي الأسماء البرمجية للكائنات
من أهم خصائص الأداة ADO هي الخاصية Recordset وهي عبارة عن كائن يحوي
مجموعة السجلات في الجدول أو عدة جداول نتنقل في هذا الكائن بين السجلات
بعدة طرق :

الطريقة MoveFirst :
تقوم بالانتقال إلى أول سجل في هذا الكائن وهو في مثالنا الجدول tele حيث نكتب الكود التالي في كود الزر السجل الأول
Public Sub cmdfirst_Click()
Adodc1.Recordset.MoveFirst
End Sub

الطريقة MoveLast :
تقوم بالانتقال إلى أخر سجل في هذا الكائن وهو في مثالنا الجدول tele حيث نكتب الكود التالي في كود الزر
السجل الأخير

Private Sub cmdlast_Click()
Adodc1.Recordset.MoveLast
End Sub


الطريقة MoveNext :
تقوم بالانتقال إلى السجل التالي في الجدول tele حيث نكتب الكود التالي في كود الزر السجل التالي
Private Sub cmdnext_Click()
Adodc1.Recordset.MoveNext
End Sub
حسنا
الآن أنت تقول عندما نصل إلى السجل الأخير ونضغط على الزر السجل التالي
إلى أين سنذهب بما أننافي السجل الأخير ولا يوجد بعه سجل في هذه الحالة
نقول أولا انك مبرمج نبيه جدا بما انك انتبهت لذلك قبل تجربة البرنامج
ولكن ألا يوجد حل أقول بلى الحل ستقدمه لنا الخاصية EOF التي تأخذ
القيمتين false ,true
وتأخذ القيمة true في حال وجود المؤشر على ما بعد أخر سجل (أي السجل الذي قبل المؤشر هو الأخير) وبالتالي نقوم بالتعديل التالي
نقوم بالانتقال للسجل التالي وفي حال EOF=True (أي المؤشر عل ما بعد أخر
سجل نقوم بالرجوع للسجل السابق أي يعود المؤشر على السجل الأخير ويصبح
الكود بعد التعديل
Private Sub cmdnext_Click()
Adodc1.Recordset.MoveNext
If Adodc1.Recordset.EOF Then
Adodc1.Recordset.MovePrevious
Else
End If
End Sub
أي إذا كانت قيمة EOF تساوي true وفي هذه الحالة نحن في السجل مابعد الأخير نفذ Adodc1.Recordset.MovePrevious
وهو للعودة للسجل السابق (وهو السجل الأخير)

الطريقة MovePrevious :
تقوم بالانتقال إلى السجل السابق في الجدول tele حيث نكتب الكود التالي في كود الزر السجل السابق
Private Sub cmdprev_Click()
Adodc1.Recordset. MovePrevious
End Sub
هنا
نفس الخطأ في حال وجودنا في السجل الأول وضغطنا على زر السجل السابق وهو
غير موجد طبعا في هذه الحالة الحل ستقدمه الخاصية BOF التي تأخذ القيمتين
false ,true
وتأخذ القيمة true في حال وجود المؤشر على ما قبل أول سجل (أي السجل الذي بعد المؤشر هو الأول) وبالتالي نقوم بالتعديل التالي
نقوم بالانتقال للسجل السابق وفي حال BOF=True (أي المؤشر عل ما قبل أول
سجل نقوم بالتقدم للسجل التالي أي يعود المؤشر على السجل الأول ويصبح
الكود بعد التعديل
ويصبح الكود بعد التعديل
Private Sub cmdprev_Click()
Adodc1.Recordset.MovePrevious
If Adodc1.Recordset.BOF Then
Adodc1.Recordset.MoveNext
Else
End If
End Sub
أي إذا كانت قيمة BOF تساوي true وفي هذه الحالة نحن في السجل ما قبل الأول نفذ Adodc1.Recordset.MoveNext
وهو للعودة للسجل التالي (وهو السجل الأول)

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




نكتب الكود التالي في كود الزر إضافة سجل
Private Sub cmdadd_Click()
Adodc1.Recordset.AddNew
End Sub

الطريقة Delete:
تقوم هذه الطريقة بحذف السجل الذي تقف عنده حيث نكتب الكود التالي في زر الحذف
Private Sub cmddelete_Click()
Adodc1.Recordset.Delete
cmdprev_Click
End Sub
حيث يقوم هذا الكود بحذف السجل الحالي وتنفيذ الإجراء السجل السابق أي بعد حذف السجل ننتقل للسجل الذي قبله
ولكن في حال عدم وجود سجلات وضغطنا على زر حذف سجل ستظهر رسالة خطأ طبعا
هنالك حل والحل ستقدمه الخاصيتان EOF, BOF معا حيث إذا كانت قيمة كل منهما
true هذا يعني أنه لا يوجد سجلات في الكائن Recordset وبالتالي نظهر
للمستخدم رسالة خطأ بعدم وجود سجلات ويصبح الكود بعد التعديل
Private Sub cmddelete_Click()
If Adodc1.Recordset.EOF Or Adodc1.Recordset.BOF Then
"MsgBox "There is no Records
Else
Adodc1.Recordset.Delete
cmdprev_Click
End If
End Sub

الآن قمنا ببعض التعديلات من إضافة سجلات لابد لنا من أن نقوم بحفظها
والآن يأتي دور الطريقة Update ونكتب في كود الزر حفظ
Private Sub cmdsave_Click()
If Adodc1.Recordset.EOF Or Adodc1.Recordset.BOF Then
"MsgBox "There is no Records
Else
Adodc1.Recordset.Update
End Sub
حيث
نقوم بحفظ التغيرات بعد إضافة السجل حيث أنه إذا قمت بإضافة سجل وأغلقت
البرنامج مباشرة ثم عدت وشغلته فستجد أن السجل قد حذف يتم حفظ السجل
الجديد بعد القيام بالنقر على أحد الأزرار الأخرى ولكن نحن نريد أن يتم
ذلك بزر مستقل لذلك نستخدم الزر حفظ طبعا إن القيام بحذف سجل سيتم حفظه
مباشرة دون اللجوء لزر الحفظ ( هذا الكود لتفادي أخطاء المستخدم الفهمان
كتير والذي يقوم بالحفظ وقاعدة البيانات فارغة )
وأيضا يجب إضافة هذا الشرط لزر السجل الأول والسجل التالي والسجل الأخير والسجل السابق
ما يدريك أن يأتيك مستخدم فهمان ويتنقل بين سجلات قاعدة بيانات فارغة
ملاحـــــــــــــــــــــــــــــــظة : إذا قمت بإضافة سجلات يجب أن
تقوم بالحفظ قبل التنقل بينها وهنالك طرق تصميمية للتغلب على هذه المشكلة
سنذكرها لاحقا

نكتب الكود التالي في الزر تحديث
Private Sub cmdrefresh_Click()
Adodc1.Refresh
End Sub

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

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

آخوكم في الله

الرجوع الى أعلى الصفحة اذهب الى الأسفل
لؤى احمد
المدير العام
المدير العام
لؤى احمد


المشاركات : 2635
الجنس : سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور I_icon_gender_male
الأوسمة : سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور 15751611
بلدى : سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور Male_e10
المهنة : سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور Accoun10
مزاجى : سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور Pi-ca-16
my sms my sms : اهلان ومرحبا فى منتدنا الغالى دردشة
تاريخ التسجيل : 11/03/2009

سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور Empty
مُساهمةموضوع: رد: سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور   سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور Icon_minitimeالإثنين مارس 16, 2009 9:27 am



سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور 0


السلام عليكم ورحمة الله وبركاته
أسف لتأخري في كتابة الدرس الثالث بسب انشغالي ببعض الأمور
على بركة الله نبدأ
بسم الله الرحمن الرحيم
أولا كما ذكرنا في الدرس السابق من ناحية تفادي الأخطاء الناتجة عن قاعدة
بيانات فارغة يمكنك تعديل الأكواد في أزرار التنقل بين السجلات وغيرها
بالشكل التالي مثلا كود الزر " السجل التالي " يصبح
Private Sub cmdnext_Click()
On Error GoTo nexterr
Adodc1.Recordset.MoveNext
If Adodc1.Recordset.EOF Then
Adodc1.Recordset.MovePrevious
Else
End If
Exit Sub
nexterr:
Err.Clear
Adodc1.Refresh

End Sub
التعديل باللون الأحمر
وهكـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ ـــــــــــــــــذا عدل الأكواد الأخرى
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ ـــــــــــــــــــــــــــــــــــــــــــــ

إذا كنت قد فهمت الدرسين السابقين وقمت بتصميم البرنامج معنا ونفذته
فستلاحظ أنه عند وقوفك على سجل ما وليكن فيه الاسم hircool والآن قمت
بإضافة بعض الأحرف وأصبح الاسم hircoolbef وانتقلت للسجل التالي من دون
الحفظ ثم عدت لنفس السجل ستجد أن الاسم قد حفظ بـ hircoolbef من دون الضغط
على زر الحفظ
ولتفادي ذلك هنالك العديد من الطرق
أولا إذا لم تكن بحاجة لتغيير السجلات أو إضافة سجلات جديدة أو حذف سجلات
قم بتغيير الخاصية LockType للأداة ADODC1 الى القيمة adLockReadOnly
هذا سيجعل قاعدة البيانات للقراءة فقط ولكن يجب إخبار المستخدم بذلك

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

حسنا أنت تريد التعديل على قاعدة البيانات ولكن لا تريد حفظ التغيرات على السجلات الناتج عن خطأ
أي تكون قاعدة البيانات للقراءة فقط ويمكن التعديل في حال أردت ذلك
أضف زر جديد مثلا وسمه cmdlock والكابشن " التعديل على قاعدة البيانات "
غير الخاصية Enabled للأزرار "حفظ" "إضافة سجل " " حذف سجل " إلى False
غير الخاصية LockType للأداة ADODC1 إلى adLockReadOnly
واكتب في الكود مايلي

Private Sub cmdlock_Click()
If Adodc1.LockType = adLockReadOnly Then
Adodc1.LockType = adLockPessimistic
Adodc1.Refresh
cmddelete.Enabled = True
cmdadd.Enabled = True
cmdsave.Enabled = True
cmdlock.Caption = " قاعد البيانات للقراءة فقط "
Else
Adodc1.LockType = adLockReadOnly
Adodc1.Refresh
cmddelete.Enabled = False
cmdadd.Enabled = False
cmdsave.Enabled = False
cmdlock.Caption = "التعديل على قاعدة البيانات "
End If
End Sub
وجرب البرنامج بعد ذلك
ــــــــــــــــــــــــــــــــــــــــــــــــ
ملاحــــــــــظة : يجب التحديث بعد كل تغيير لأحد خصائص قاعدة البيانات
ـــــــــــــــــــــــــــــــــــــــــــــــــ
ويمكنك بدلا من ذلك قفل صناديق النصوص lock=true ووو

الآن أنت تقف مثلا عند سجل رقمه 100 وتريد تعديله تضغط على زر " تعديل قاعدة البيانات "
وفي كود هذا الزر بعد تغيير نمط الإقفال يتم التحديث أي تعود للسجل رقم واحد (مشكلة)
لذلك نضيف ما يلي
Dim a as long
a = Adodc1.Recordset.AbsolutePosition
لحفظ رقم السجل الذي نقف عنده ثم نغير نمط الإقفال
ونعود للسجل
Adodc1.Recordset.Move a – 1,1
أي انتقل عدد من السجلات قدره a-1 مع بدء العد من بعد السجل الأول ووضعنا
a-1 لان السجل الأول لا يعد في هذه الحالة حيث يبدأ العد من بعد السجل
الأول
ويمكن كتابتها بالشكل
Adodc1.Recordset.Move a – 1
لأنها جاءت بعد عبارة تحديث أي نحن نقف على السجل الأول
ويصبح الكود


Private Sub cmdlock_Click()
Dim a As Long
a = Adodc1.Recordset.AbsolutePosition
If Adodc1.LockType = adLockReadOnly Then
Adodc1.LockType = adLockPessimistic
Adodc1.Refresh
cmddelete.Enabled = True
cmdadd.Enabled = True
cmdsave.Enabled = True
cmdlock.Caption = " قاعد البيانات للقراءة فقط "
Else
Adodc1.LockType = adLockReadOnly
Adodc1.Refresh
cmddelete.Enabled = False
cmdadd.Enabled = False
cmdsave.Enabled = False
cmdlock.Caption = "التعديل على قاعدة البيانات "
End If
If a = -1 Then
Else
Adodc1.Recordset.Move a - 1, 1
End If
End Sub

وضعنا الشرط If a = -1 Then
لأنه في حال أردت تعديل قاعدة بيانات فارغة لن يكون هنالك سجل للانتقال
إليه (قاعدة البيانات فارغة ) ولا يمكن الانتقال بين السجلات وتكون قيمة
a=-1 لذلك في هذه الحالة لا نقوم بشيء

الأن قم بإضافة الأداة Microsoft DataGrid Control 6.0 (OLEDB) كما قمت بإضافة الأداة
Microsoft ADO Data Control 6.0 (OLEDB)
وقم بإضافتها للفورم وقم ببعض الإضافات ليصبح الفورم بهذا الشكل (15)

سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور Fifteen

الأن غير خصائص الأداة DataGrid كما هو موضح في الشكل السابق وأهمها
DataSource=Adodc1
لربط الأداة بقاعدة البيانات في Adodc1 حيث تقوم هذه الأداة بإظهار قاعدة البيانات على شكل جداول
AllowAddNew=False
لمنع إضافة السجلات عن طريق هذه الأداة
AllowUpdate=false
لمنع التحديث وحفظ التغيرات التي تطرأ على قاعدة البيانات عن طريق هذه الأداة
AllowDelete=False
لمنع حذف السجلات عن طريق هذه الأداة
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ ـــــــــــ
ـــــــــــــــــــــــــــــــــــ
ـــــــــــــــــــ
ــــــــ
ـــ
كما تلاحظ قمنا بإضافة أزرار وصناديق نصوص للقيام بعملية البحث في قاعدة البيانات
وسيتم البحث باستخدام عبارات لغة الاستعلام SQL
مثلا نستخدم الزر cmdsname للبحث حسب الاسم الموجود في صندوق النص
txtsname وبعبارة أدق اختيار السجلات التي تحوي في عمود الاسم على نفس
النص الموجود في txtsname
وللبحث باستخدام عبارات الاستعلام SQL بواسطة الأداة adodc1 يجب أن نغير الخاصية
command type للأداة adodc1 إلى النوع adCmdText ثم نكتب عبارة الاستعلام
لتكون مصدر البيانات للأداة Adodc1 بدلا من الجدول tele وبالتالي يتم عرض
نتيجة الاختيار بواسطة الأداة DataGrid
حيث نكتب في كود الزر " بحث حسب الاسم "

Private Sub cmdsname_Click()
Adodc1.CommandType = adCmdText
_& " '=Adodc1.RecordSource = "SELECT*FROM tele WHERE name
" ' "& txtsname.****
Adodc1.Refresh
End Sub
قمنا
بتغيير commandtype الى adCmdText ثم كتبنا تعبير الاستعلام في مصدر
البيانات وعادة ما تكتب عبارات SQL بحروف كبيرة لتمييزها
ومعنى التعبير السابق اختر في كل الاعمدة من الجدول tele اين يتحقق name
=' *****' (اسم العمود)= نص معين يكون موجود في الصندوق txtsname
ــــــــــــــــــــــــــــ
ونكتب في كود الزر " بحث حسب المدينة"
Private Sub cmdscity_Click()
Adodc1.CommandType = adCmdText
_& " '=Adodc1.RecordSource = "SELECT*FROM tele WHERE city
" ' "& txtscity.****
Adodc1.Refresh
End Sub

ومعنى التعبير السابق اختر في كل الاعمدة من الجدول tele اين يتحقق city
=' *****' (اسم العمود) = نص معين يكون موجود في الصندوق txtsname
ــــــــــــــــــــــــــــ
ونكتب في كود الزر " بحث حسب الرقم "
Private Sub cmdsnum_Click()
Adodc1.CommandType = adCmdText
Adodc1.RecordSource = "SELECT*FROM tele WHERE phone =" & Val(txtsnum.****)
Adodc1.Refresh
End Sub
ـــــــــــــــــــــــــ***ــــــــــــــــــــــــــ
ملاحظة النجوم الأربعة أي تيكست لا تظهر بالأجنبي لا ادري لماذا
لاحـــــــــــــــــــــظ أنه عندما يكون نوع البيانات في العمود عبارة
عن أرقام لا نضع الإشارات ' ' حول القيمة المراد اختيارها
ـــــــــــــــــــــــــ***ـــــــــــــــــــــــــ
ولاحـــــــــــــــــــظ أن اسم العمود هو كلمة واحدة حيث قمت بتعديل اسم العمود في قاعدة البيانات من
Phone number إلى phone (وهذا خطأ مني كان علي ملاحظة ذلك من قيل )
واستخدمنا التابع VAL() للتحويل من النص من النوع String إلىDouble وبالتالي لا نضع الإشارات ' '
ــــــــــــــــــــــ***ـــــــــــــــــــــــــــــ
الان انت ترى مايعرض في الأداة DataGrid وهو عبارة عن مصدر البانيات المرتبط بالأداة adodc1 (القيم التي تم اختيارها )
ولإعادة عرض الجدول بكامله
نغير الخاصية commandType الى adCmdTable
ونجعل مصدر البيانات هو الجدول tele ونكتب في كود الزر " عرض قاعدة البيانات الأصلية "
Private Sub cmdorginal_Click()
Adodc1.CommandType = adCmdTable
"Adodc1.RecordSource = "tele
Adodc1.Refresh
End Sub
كما تلاحظ نقوم بعملية تحديث بعد كل تغيير لأحد خصائص الأداة adodc1
ونكون بذلك قد انتهينا من برنامج متكامل نوعا ما
والحمد لله رب العالمين
أرجو ان تستفيدوا من هذا الدرس والدروس السابقة وإنشاء الله سيكون هناك المزيد
وأي استفسار انا بخدمتكم

ملاحــــــــــــــــــــــــــــــــــــــــــــــــظة
إذا أردت التعرف على المزيد من عبارات الاستعلام SQL يوجد في المرفقات
كتاب من 18 صفحة من إعداد KSA

الرجوع الى أعلى الصفحة اذهب الى الأسفل
MRTIGO
مشرف رابطة عشاق اليوفى
مشرف رابطة عشاق اليوفى
MRTIGO


المشاركات : 563
العمر : 35
الموقع : http://www.MrTiGo4Fun.com
الجنس : سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور I_icon_gender_male
الأوسمة : سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور Mod
بلدى : سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور Male_e10
المهنة : سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور Collec10
مزاجى : سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور Pi-ca-22
my sms my sms : اعشق الملك محمد منير

واحب البيانكونيرى اليوفينتوس


تاريخ التسجيل : 12/03/2009

سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور Empty
مُساهمةموضوع: رد: سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور   سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور Icon_minitimeالإثنين مارس 16, 2009 11:20 am

الف الف شكر يا باشا
الرجوع الى أعلى الصفحة اذهب الى الأسفل
http://www.MrTiGo4Fun.com
دموع القمر
مشرفة
مشرفة
دموع القمر


المشاركات : 943
الجنس : سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور I_icon_gender_female
بلدى : سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور Male_p11
المهنة : سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور Collec10
مزاجى : سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور Pi-ca-51
my sms my sms : اهلان ومرحبا بكم فى منتدنا الغالى دردشة
تاريخ التسجيل : 08/04/2009

سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور Empty
مُساهمةموضوع: رد: سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور   سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور Icon_minitimeالأربعاء أبريل 08, 2009 4:34 pm

مشكور اخي في الله جزاك الله كل الخير
الرجوع الى أعلى الصفحة اذهب الى الأسفل
لؤى احمد
المدير العام
المدير العام
لؤى احمد


المشاركات : 2635
الجنس : سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور I_icon_gender_male
الأوسمة : سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور 15751611
بلدى : سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور Male_e10
المهنة : سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور Accoun10
مزاجى : سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور Pi-ca-16
my sms my sms : اهلان ومرحبا فى منتدنا الغالى دردشة
تاريخ التسجيل : 11/03/2009

سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور Empty
مُساهمةموضوع: رد: سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور   سلسلة دروس في برمجة و عرض قواعد البيانات بالصـــــور Icon_minitimeالجمعة أبريل 10, 2009 6:19 am

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

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
منتديات دردشة :: .؛°¨ ღ منتدى دردشة للبرامج والانترنت ღ¨°؛. :: ஐ•.¸( قسم البرمجة )¸.•ஐ-
انتقل الى: