توقيت مدينة القدس الشريف

 مكتبة تعليم أكسس

Education Library Accessــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

   Upload and download files تحميل وتنزيل الملفات                                                 Upload Files رفع ملفات

  ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

 

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

-: المواضيع

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

 

البحث عن السجلات في النموذج

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

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

في حدث بعد التحديث لحقل البحث ضع الكود التالي

Private Sub Combo56_AfterUpdate()
     ' البحث عن السجل المحدد.
    Dim rs As Object

    Set rs = Me.Recordset.Clone
    rs.FindFirst "[رقم الموظف] = " & Str(Nz(Me![Combo56], 0))
    If Not rs.EOF Then Me.Bookmark = rs.Bookmark
    Me![Combo56] = Null

End Sub

والمثال المرفق يوضح ذلك

 

ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

 رقم مسلسل يبدأ من 1 عند بداية كل سنة جديدة ولايتكرر

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

ثم تتبع قيمة كل حقل " مصدر عنصر التحكم لكل حقل " من الحقول

ثم في حقل الاسم في حدث بعد التحديت أكتب الكود التالي

Private Sub الاسم_AfterUpdate()
   
    Me![السنة] = f
    Me![r] = Me![sh] + 1
    Me![q] = x & "/" & Format(r, "00")

End Sub

ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

ولاخفاء الحقول المستخدمة عند فتح النموذج في حدث عند الفتح أكتب الكود

 Private Sub Form_Open(Cancel As Integer)

DoCmd.GoToRecord , , acNewRec
f = DatePart("yyyy", d)   '    عند فتح النموذجf قيمة الحقل
x = Right(f, 2)             '     عند فتح النموذجx قيمة الحقل
f.Visible = False
x.Visible = False
sh.Visible = False
r.Visible = False
d.Visible = False
L.Visible = False
End Sub

ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

dcount() لتحديد قيمة مصدر عنصر التحكم إستخدمنا الدالة d الحقل

=DCount("[s]";"serial by year";"[السنة]=f")

والمثال المرفق يوضح ذلك

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

عمل أزرار تنقل بين السجلات وعداد للسجلات

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

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

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

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

نموذج إدخال غير منضم

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

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

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

 

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

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

ملاحظة : عند الانتقال الي النموذج الثاني بالنقر علي زر تعديل يطلب منك إدخال كلمة السر 

كلمة السر =1 

 

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

طريقة عمل نسخة تجريبية للبرنامج

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

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

يوضع هذا الكود في حدث عند فتح النموذج المخصص كواجهة للبرنامج

Private Sub Form_Open(Cancel As Integer)
If Date > #8/2/2010# Then
txt1.Caption = " إنتهاء وقت البرنامج "
mainfrm.Visible = False
Else
txt1.Caption = ("الوقت المتبقي علي البرنامج" & Str(#8/31/2010# - Date) & " يوم    هل تريد الاستمرار ")
mainfrm.Visible = True

End If

End Sub
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

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

   T1 إنشاء جدول 

Date1 وبة حقل واحد

وذلك لتخزين تاريخ اليوم الاول لتشفيل النسخة التجريبية

في حدث عند الفتح للنموذج نكتب الكود التالي

 Private Sub Form_Open(Cancel As Integer)
On Error GoTo MyErr:

Dim MyFirst As Date
Dim MyInDate
Dim MyTableName As String
MyInDate = DFirst("[Date1]", "[T1]")
If Not IsNull(MyInDate) Then
MyFirst = MyInDate
Else

DoCmd.SetWarnings False
DoCmd.RunSQL ("INSERT INTO T1 ( Date1 ) SELECT Date();")
DoCmd.SetWarnings True
MyFirst = Date
End If

If MyFirst <= Date - 15 Then ' غير الرقم 15 الي اي رقم تريد
 txt1.Caption = "مضي علي تشغيل البرنامج 15 يوم وسيتم ايقافة"
cmdclose.Visible = False

Call TableDelete
Else
If MyFirst > Date Then
 txt1.Caption = "تم التلاعب بتاريخ الجهاز وسيتم ايقاف البرنامج"
cmdclose.Visible = False

Call TableDelete
End If
End If

Exit Sub

MyErr:
If Err.Number = 3078 Then

  txt1.Caption = "مع السلامة عليك مراجعة صاحب البرنامج"
cmdclose.Visible = False

Else
 MsgBox Err.Number & vbCrLf & Err.Description
End If

End Sub

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

  وكذلك إضافة هذا الكود الذي يقوم بعملية حذف الجداول من قاعدة البيانات في حالة انتهاء المدة

Function TableDelete()
On Error Resume Next
Dim MyDb As Database
Dim MyTable As TableDef
Dim MyTableCount As Integer

Set MyDb = Application.CurrentDb
MyTableCount = MyDb.TableDefs.Count
For i = MyTableCount - 1 To o Step -1
Set MyTable = MyDb.TableDefs(i)
MyTableName = MyTable.Name
If Left$(MyTableName, 4) <> "Msys" Then MyDb.TableDefs.Delete (MyTableName)
Next
MyDb.Close

End Function

ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

واليك الامثلة التي توضح الطريقتين

 

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

إضافة الحاسبة والنتيجة ونموذج تكبير النصوص

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

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

والثانية بإضافة زر أمر بجانب الحقل

 

 

 

 

 

 

 جــــــديد

 <   التالي                  السابق   >

 

    الملفات         عامة         فلسطين        أخرى

   الرئيسية        الصور         المقالات   

 
Make a Free Website with Yola.