12‏/12‏/2017

اكواد التعامل مع السجلات


Codes dealing with the records


اكواد التعامل مع السجلات 

                                                         ما هى اكواد التعامل مع السجلات ؟


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




 السجل التالي


لكي تنتقل للسجل التالي سوف تحتاج لكتابة الامر التالي في الزر المطلوب


Private sub command1_Click() s
t.MoveNext
Call showdata
End sub
لاحظ اننا استخدمنا اسم الجدول المستعار t , ثم بعد 
ذلك استدعينا الاجراء showdata الذي عملناه في الجزء السابق لكي يقوم بعرض البيانات في السجل التالي و هذه الطريقة تنطبق على جميع انواع التنقل القادمة.




2- السجل السابق:


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



Private sub command2_Click()s
t.MovePrevious
Call showdata
End sub




3- السجل الاول:


للانتقال للسجل الاول اكتب الكود في زر الامر cmd3


Private sub command3_Click()s
t.MoveFirst
Call showdata
End sub




4- السجل الاخير:


للانتقال للسجل الاخير اكتب الكود في زر الامر cmd4


Private sub command4_Click()s
t.MoveLast
Call showdata
End sub

هذه كل اوامر التنقل التي تحتاجها. لكن لم ننتهي بعد فستواجهك مشكلة, فمثلا عندما تريد ان تنتقل للسجل التالي و انت في السجل الاخير طبعا لا يوجد سجل تالي لذلك سيتوقف البرنامج , و نفس الشيء عند الانتقال للسجل السابق و انت في السجل الاول فلا يوجد سجل سابق فسيتوقف البرنامج , لذلك سنقوم بإضافة جملة شرطية للتأكد اذا كان السجل الاخير او الاول حسب الحالة ثم نقوم بوضع امر MoveFirst او MoveLast حيث ان هذين الامرين لا يتأثران سواء كان هناك سجل او لا و طريقة استخدامهم هكذا:


ملاحظة: نستخدم الدالة EOF لمعرفة اخر سجل في الجدول , و نستخدم الدالة BOF لمعرفة اول سجل في الجدول


** سنضع الجملة الشرطية التالية في زر الانتقال للتالي فإذا كان هذا اخر سجل اذا انتقل للسجل التالي:


If t.EOF Then t.MoveLast


وكذلك في زر الانتقال للسابق نضع شرط اذا كان هذا اول سجل اذا انتقل للسجل الاول:


If t.BOF Then t.MoveFirst


لذلك سنضيف الجملتين السابقتين لكود الانتقال للتالي و الانتقال للسابق فيصبح كود الانتقال للتالي هكذا:


Private Sub command5_Click()s
t.MoveNext
If t.EOF Then t.MoveLast
Call showdata
End sub


و كود الانتقال للسابق هكذا:


Private Sub command6_Click()s
t.MovePrevious
If t.BOF Then t.MoveFirst
Call showdata
End sub







عمليات السجلات:


                                        الان سنتعلم عمليات السجلات حذف واضافة وتعديل:




                                       (اضافة سجل , حفظ سجل , تعديل سجل , حذف سجل)




1- اضافة سجل:


الامر التالي يقوم باضافة سجل و نضيف عليه اوامر لتمسح ما في مربعات النص لتهيئتها للإضافة


Private Sub command1_Click()s
t.AddNew
Text1.Text=” ”s
Text2.Text=” ”s
Text3.Text=” “s
End Sub


السطر الاول t.AddNew لاضافة سجل جديد والسطر الثاني والثالث و الرابع تقوم بمسح ما في مربعات النص لتهيئتها للاضافة و هي خطوة لتعطي طابع الاحتراف فقط.






2- حفظ سجل:


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


Private Sub command2_Click()s
t!Name = Text1.Text
t!number = Val(Text2.Text)s
t!Price = Val(Text3.Text)s
t.Update
End sub






3- تعديل سجل:


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


Private Sub command3_Click()s
t.Edit
End sub







4- حذف سجل:


عملية حذف السجل سهلة , و لكن ماذا بعد ان تحذف السجل؟ بالطبع يجب ان تعرض السجل التالي , و أيضا يجب ان تراعي المشاكل التي توجهك عند انتقالك للسجل التالي فقد لا يكون هناك سجل تالي و هذا هو الكود اللازم:


Private Sub command4_Click()s
t.Delete
t.MoveNext
If t.EOF Then t.MoveLast
End sub