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

عملشرط على العمر ومحتويات الاسم

مغلق
بدأه الليلك في 13 يناير 2006 · 9 رد · 1,100 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

كل عام وانت بخير يا اعضاء المنتدى الكرام ، مع ان الدنيا عيد والناس بتعيد بس انا مصره اعرف اجابات هذه الاسئلة وهي:

1- كيف اعمل اسم الطالب يتكون من 30 حرف على الاكثر ومن 10 حروف على الاقل ويتضمن اسم الطالب حروف وفراغات فقط، ولا يقبل ادخال رموز خاصة او ارقام [/ U]

2 -لا يسمح للطالب بالتسجيل اذا كان عمره اقل من 18 سنة واذا كان اكبر من 40 سنة يعطي تنبيه.

انا في انتظار الاجابة

تحياتي

#2

اختي الليلك

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

وكل عام وانتي بخير

تفضلي هذا المثال مثل ما طلبتيه بالضبط الشرح موجود في التعليمات

لا يمكن التسجيل والدخول لاقل من 18 سنه

LILAK.rar

اختك

زهره

#3

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

zahrah اختي انا شاكره لك تعاونك معي وإن شاء الله اقدر اساعد في المنتدى وارد المعروف

تحياتي لك

#4

اختي زهره الملف المرسل لا استطيع ان اغير فيه اي شيء او اضيف بعض الاضافات ، ارجو ان تزوديني بالملف الاصلي

#5

السلام عليكم ورحمة الله

الاخت الكريمة

كل ماعليك فعله حتى تتمكنى من فتح الملف فى وضع التصميم حتى تستطيعى الاضافة والحذف والتعديل , هو ان تضغطى على زر Shift اثناء فتحك للملف ولا ترفعى يدك من على الزر حتى يفتح الملف. وعنده تستطيعين التعامل مع كامل امكانيات البرنامج.

وما فعلته الاخت الكريمة زهرة على الملف , هو نوع من انواع الحماية البسيطه ضد العبث بالبرنامج وذلك يمكن عمله عن طريق فتح قائمة Tools او ادوات , ثم منها تختارى StartUp او عند البدأ

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

وبالله التوفيق,,,

أشهد أن لا إله إلا الله وأشهد أن محمدا رسول الله

bnr025.gif

مـــوقـــعـــى

#6

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

بالنسبة للاخت زهرة: لقد دخلت البرنامج وبصراحة هناك اكواد لم اعرف ما عملها ولكني اتمنى ان توضحي الكود الخاص بحساب العمر ومقارنته مع 18 او 40 فقط لانك بصراحة عملت برنامج كامل باضافات كثيره وانا ما زلت مبتدئة

#7

اختي الكريمه الليلك

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

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

1. تم انشاء جدول بإسم يحتوي على الحقول التالية

*. NAME الاسم ( نوع البيانات نص )

*. BirthDay تاريخ الميلاد ( نوع البيانات تاريخ / وقت )

2. تم انشاء نموذج مبني على المعلومات التي في الجدول حسب مربعات النص

*. NAME

*. BirthDay

*. تم انشاء مربع نص جديد يدعى AGE يتم من خلاله حساب فرق العمر بين تاريخ الميلاد والتاريخ الحالي بإستخدام دالة العمر من الوحدة

النمطية حسب الكود التالي

=Age([BirthDay])

لاحظي بدأنا بعلامة المساواة = ثم دالة ()AGE من الوحدة النمطية ثم حقل مربع نص تاريخ الميلاد [birthDay]

3. تم استخدام وحدة نمطية خاصة بحساب العمر مباشرة وهي الدالة ()AGE لحساب الفرق بين عدد السنوات اي التاريخ المدخل في حقل

التاريخ ومقارنته مع التاريخ الحالي وكود الدالة هو

Function AGE(varBirthDate As Variant) As Integer
   Dim varAge As Variant

   If IsNull(varBirthDate) Then AGE = 0: Exit Function

   varAge = DateDiff("yyyy", varBirthDate, Now)
   If DATE < DateSerial(Year(Now), Month(varBirthDate), _
                        Day(varBirthDate)) Then
      varAge = varAge - 1
   End If
   AGE = CInt(varAge)
End Function

الان نريد ان نطبق هذا الموضوع بشروط معينه

1. عندما يكون العمر اقل من 18 سنه اي < 18 تظهر لنا رسالة تخبرنا ان العمر اقل من 18 سنه ولا يمكن التسجيل ومن ثم عدم التسجيل

اذن نشير له في الكود بهذه الطريقه

If Me.AGE < 18 Then
If MsgBox("معذرة لا يمكنك التسجيل ", vbOKOnly) = vbOK Then Exit Sub

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

اذن نضيف عبارة استعلام حذف للسجل الذي لا يتوافق مع الشرط حسب العبارة التالية

DoCmd.SetWarnings False
DoCmd.RunSQL "DELETE tblSTU.NAME, tblSTU.BirthDay, AGE([BirthDay]) AS age FROM tblSTU WHERE (((AGE([BirthDay]))<18));"
DoCmd.SetWarnings True
[/cdoe]
نظرا لان اي استعلام يتم تنفيذه في الاكسيس فإنه تظهر لنا رسالة تخبرنا بإننا على وشك حذف او تحديث او الحاق بيانات في الجدول لهذا يتم 

ايقافها وتنفيذ الكود الذي بعدها كما يلي
DoCmd.SetWarnings False

ايقاف رسائل الاستعلام

ثم تنفيذ الكود

[sql]
DoCmd.RunSQL "DELETE tblSTU.NAME, tblSTU.BirthDay, AGE([BirthDay]) AS age FROM tblSTU WHERE (((AGE([BirthDay]))<18));"

اعادة رسائل الاستعلام

DoCmd.SetWarnings True

ليصبح كامل الكود حسب الشرط الاول ( اقل من 18 سنه )

DoCmd.SetWarnings False
If Me.AGE < 18 Then
DoCmd.RunSQL "DELETE tblSTU.NAME, tblSTU.BirthDay, AGE([BirthDay]) AS age FROM 

tblSTU WHERE (((AGE([BirthDay]))<18));"
DoCmd.SetWarnings True
If MsgBox("معذرة لا يمكنك التسجيل ", vbOKOnly) = vbOK Then Exit Sub

2. الشرط الثاني اذا حاول الطالب الدخول بدون ادخال تاريخ الميلاد نضع هذا الكود

ElseIf Me.AGE = 0 Then
MsgBox "الرجاء ادخال تاريخ ميلادك الصحيح حتى تتمكن من التسجيل "

3. اذا كان العمر اكثر من اربعين سنه

ElseIf Me.AGE > 40 Then
MsgBox "عمرك تجاوز الاربعين"

4. نقوم بإنهاء الجملة الشرطية ومن ثم نقوم بتحديث السجلات وكذلك تحديث النموذج

End If
DoCmd.Requery

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

ENTER فعند النقر عليه يقوم بالتأكد من الشروط الثلاثة السابقه

Private Sub ENTER_Click()
DoCmd.SetWarnings False
If Me.AGE < 18 Then
DoCmd.RunSQL "DELETE tblSTU.NAME, tblSTU.BirthDay, AGE([BirthDay]) AS age FROM 

tblSTU WHERE (((AGE([BirthDay]))<18));"
DoCmd.SetWarnings True
If MsgBox("معذرة لا يمكنك التسجيل ", vbOKOnly) = vbOK Then Exit Sub

ElseIf Me.AGE = 0 Then
MsgBox "الرجاء ادخال تاريخ ميلادك الصحيح حتى تتمكن من التسجيل "

ElseIf Me.AGE > 40 Then
MsgBox "عمرك تجاوز الاربعين"
End If
DoCmd.Requery
DoCmd.Minimize
DoCmd.OpenForm "MAIN"
End Sub

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

اختك زهره

#8

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

اختي العزيزة زهرة اشكرك جزيل الشكر على تجاوبك وتعاونك وايضا على شرحك التفصيلي وصدقيني اني لما رايت شرحك للاكواد استحيت من حالي ومن ضعفي في الاكسس ، على كل حال الله يخليك للمنتدى ولاعضاء المنتدى ، هناك عدد من الاستفسارات تتعلق بمفهوم الاكواد التالية:

1- date serial(year(now),month(varbirthdate),day(varbirthdate)) then varage=varage-1

بالنسبة للكود اعلاه لماذا وضعنا serial و month

2- clnt(varage)

ما وضيفة هذا الكود؟؟؟

3- docmd.setwarnings false

وايضا ما معنى docmd?

4-docmd. runsql

ما عمل هذا الكود؟

اتمنى ان لا اكون قد اثقلت عليك بالاسئلة

مع فائق احترامي

أختك الليلك

#9

اختي الكريمه الليلك

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

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

02_02_06_12_25_10_1138868710LA.gif

month

serial

DoCmd

clnt

setwarnings

runsql

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

ملاحظة : يفضل القيام بعملية البحث اثناء قطع الاتصال بالانترنت لان التعليمات الاساسية مخزنه في تعليمات برنامج الاكسيس

تم تعديل هذه المشاركة بواسطة zahrah في 2 فبراير 2006 في 11:15

#10

شكرا يا الغالية، دائما ما تقصري

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

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