اذهب الي المحتوي
أوفيسنا

ابوخليل

أوفيسنا
  • Posts

    13535
  • تاريخ الانضمام

  • تاريخ اخر زياره

  • Days Won

    284

ابوخليل last won the day on ديسمبر 18

ابوخليل had the most liked content!

السمعه بالموقع

7011 Excellent

عن العضو ابوخليل

البيانات الشخصية

  • Gender (Ar)
    ذكر
  • Job Title
    طالب علم
  • الإهتمامات
    تحليل البيانات والتصميم

اخر الزوار

28540 زياره للملف الشخصي
  1. الدالة ستكون هكذا : التغير في مكانين .. بداية الرقم اصبح 6 بدلا من 5 والسطر الأخير يمكنك وضع الفاصلة التي تريد بدلا من "-" Public Function GenerateID(TableName As String, fieldName As String) As String on error resume next Dim vLastY As Variant Dim iNext As Integer vLastY = DMax(fieldName, TableName, fieldName & " LIKE '" & Year(Date) & "*'") If IsNull(vLastY) Then iNext = 1 Else iNext = Val(Mid(vLastY, 6)) + 1 End If GenerateID = Year(Date) & "-" & Format(iNext, "000000") End Function
  2. اهلا اخي العزيز صاحب الموضوع مشغول .. ولا اخفيك الفكرة راقت لي .. وعملت اضافات .. منها دالة لاختيار رقم عشوائي لذا دعنا نعمل عليه انت وأنا كبرنامج اختبار وقياس قابل لأكثر من رغبة سوف افتح موضوعا جديدا واطرح آخر تعديل ثم انتظر اضافاتك ولمساتك وهكذا حتى يخرج بثوب مناسب ما رأيك ؟
  3. نعم كأقصى عدد على الدالة الحالية هو 9999 جرب التعديل على الدالة بطريقة مختلفة نوعا .. ستبقى الخانات 6 ولكن يمكن ان يتم الترقيم الى 5 أو 6 خانات استغرب لماذا تريد ان يبقى صفرين بعد السنة لا فائدة منهما الدالة التالية الصفران موجودان ولكن متاح استخدامهما ويمكن لو اردت الفصل بين السنة والترقيم بفاصلة معينة مثل (-) او (/) او اي فاصلة Public Function GenerateID(TableName As String, fieldName As String) As String on error resume next Dim vLastY As Variant Dim iNext As Integer vLastY = DMax(fieldName, TableName, fieldName & " LIKE '" & Year(Date) & "*'") If IsNull(vLastY) Then iNext = 1 Else iNext = Val(Mid(vLastY, 5)) + 1 End If GenerateID = Year(Date) & Format(iNext, "000000") End Function
  4. من المثال المرفق تبين لي ان الدالة من عمل @Foksh فأهل مكة ادرى بشعابها
  5. الافضل لك ان تزيل التنسيق ليصبح السطر هكذا GenerateID = CLng(yearPrefix & (serialPart + 1)) جرب لن تخسر شيئا ولكن الرقم سيكون عاديا بدون اصفار وسيتزايد مثله مثل الارقام العادية .. وفي السنة الجديدة يبدأ بواحد بعد السنة
  6. المفروض تفيدنا اولا هل عملت معك ام لا ؟ والفرق الذي تسأل عنه هو انك تجاوزت نطاق العدد بعد السنة كأقصى رقم ثم يظهر خطأ هو 6 تسعات 999999 في الدالة التي لديك عندما يصل العدد الى الحد الاقصى لن ينتقل الى سنة جديدة بل سيظهر خطأ وسوف تنتظر حتى دخول السنة الجديدة
  7. Public Function GenerateID(TableName As String, fieldName As String) As Long Dim currentYear As Integer Dim yearPrefix As String Dim maxID As Long Dim serialPart As Long currentYear = Year(Date) yearPrefix = currentYear & "" maxID = Nz(DMax(fieldName, TableName, fieldName & " LIKE '" & yearPrefix & "*'"), yearPrefix & "00") serialPart = CLng(Mid(maxID, Len(yearPrefix) + 1)) GenerateID = CLng(yearPrefix & "000" & (serialPart + 1)) End Function هذه تعمل
  8. جرب يا حافظ على دالتك الاصلية نقص صفر من التنسيق في هذا السطر ليصبح 3 اصفار GenerateID = CLng(yearPrefix & "000" & (serialPart + 1))
  9. تفضلي التعديلاات كالتالي : 1- وضعت الوان في النموذج الرئيسي للاستدلال على الخطابات التي تم الاطلاع عليها .. الاخضر تم والبرتقالي لم يتم 2- في حدث العداد للنموذجين الفرعيين جعلت الوقت 5 ثواني ( كل 1000= ثانية ) يمكنك زيادة الوقت وهو الافضل مثلا 300000 = 5 دقائق بمعنى كل 5 دقائق يتم تحديث النموذج لمعرفة ان كان هناك خطابات جديدة الآن عند فتح النموذج الفرعي سيفتح بلا بيانات انتظري 5 ثواني لتري التيجة جربي ووافيني بملاحظاتك مراسلة3.rar
  10. انظر هذه الخطوة الاولى تم التصرف في المفاتيح حسب حاجة التصميم ( الاختيار العشوائي سيتم على المفاتيح ) فقط حتى تتخيل كيف سيكون الاخراج الخطوة التالية هي 1- تشغيل الاختيار العشوائي 2- ربط النموذج الفرعي بجدول الاجابات 3- تشغيل الوقت الاختيار العشوائي يتم عند فتح النموذج من غير تدخل يدوي او ازرار اذا اعجبك العمل واردت ان نستمر يا ليت تفتح موضوع جديد وعنوان جديد مناسب مثلا برنامج اختبارات او قياس قدرات او تقييم مهارات ونحو ذلك مما ينطبق على غرضك لأن العمل يستحق ذلك التعليق والملاحظات مفتوح للجميع .. باعتباره موضوعا ودرسا تعليميا new_test1.rar
  11. المتغير هذا والدالة تحته من اجل تحديد رقم القسم فالاقسام معرفاتها تبدأ من رقم 1 وحتى 5 في حدث تحميل النموذج المتغير strSectionID يأخذ قيمة معرف القسم .. يمكنك الاطلاع Public strSectionID As Integer ' اعلان عن متغير عام رقمي Public Function funSectionRecordCriteria() ' هذه الدالة تأخذ قيمة المتغير نستفيد من هذه الدالة كمعيار داخل الاستعلام فهي تحمل رقم القسم funSectionRecordCriteria = strSectionID End Function ليه استخدمنا الدالة كمعيار بدلا من المعيار المعتاد : forms!form1!text1 ? لأن الدالة تأخذ قيمة معرف القسم عند تحميل النموذج الخاص بالقسم فلو كان عندنا 10 نماذج وكل نموذج لقسم مختلف فالدالة تأخذ قيمة كل نموذج عند فتحه بواسطة المتغير strSectionID وهذه القيمة هي التي نستخدمها كمعيار في الاستعلام وللعلم يمكننا الاستغناء عن الدالة واستخدام معيار القسم مباشرة اذا كان كل ملف فرعي يعمل لوحده مثلا ملف او واجهة القسم القانوني نضع في الاستعلام رقم 4 كمعيار ....................... بالنسبة للاشعار فإليك الطريقة : نضيف حقل خانة نعم/لا في السجل تكون نعم افتراضيا في نموذج العرض البعيد (القسم) نضع كود في حدث الحالي للنموذج والافضل يكون في حدث العداد هذا الكود يفحص آخر سجل على الاقل اذا خانة الاختيار true تظهر رسالة بوجود رسالة او سجل جديد ويمكن ان نعمل على الا يظهر هذا السجل للمستخدم الا بعد الموافقة .. والموافقة تعني تحويل الخانة الى false وظهور السجل
  12. نعم هو كذا .. يا سلام شوفت جمال عملك .. على الاقل التسميات تفتح النفس .. وتدل على معانيها وعملها تمام كذا .. انتظرني .. اعمل لك الخطوة اللي بعدها
  13. يالله ياولاد بسرعة افطروا اوديكم المدرسة الوقت بياخذنا انا اعتقد اني قدمت افضل ما لدي وارفع يدي معتذرا عن مقاطعتكم وان اكون سببا في تأخر الحصول على المطلوب 🙋‍♂️
  14. المفروض انك تبني تصميمك على مثال يخص عملك لا فرق بين ما تفكر به وما اقترحه عليك سوى التنظيم المسألة يسيرة والفكرة لن تأخذ وقتا طويلا واطلق لخيالك العنان .. يجب ان يكون العمل قابلا لأي توسع وتطوير اترك المثال الحالي بعيدا عنك .. واعمل مثالا يخص عملك على النحو التالي : العمل سيكون مختصرا باقل كمية من البيانات الخطوة الأولى : 1- جدول مجموعات : رقم معرف / المجموعة (مدراء / معلمين / موظفين ...الخ) 2- جدول مفاتيح : معرف المفتاح / رقم فرعي للمجموعة 3- جدول الاسئلة واجاباتها : رقم السؤال /رقم فرعي للمفتاح / السؤال / اجابة1/اجابة2/اجابة3/ الاجابة الصحيحة اربط علاقة رأس باطراف على التوالي : المجموعات بالمفاتيح ..... والمفاتيح بالاسئلة من خلال اجدول المجموعات يمكنك النقر على علامة الزائد وتسجيل اكثر من مفتاح للمجموعة الواحدة .. مثلا اربعة مفاتيح وايضا من خلال الزائد في جدول المفاتيح يمكنك وضع اكثر من سؤال في المفتاح الواحد لنقل 2 أو 3 اسئلة او اعمل نماذج لادخال هذه البيانات .. انا افضل الأولى واترك النماذج اخيرا بعد عمل البرنامج على الوجه المطلوب هنا يصبح لدينا كل مجموعة لديها اربعة مفاتيح تخصها نجري عليها الاختيار العشوائي حسب المجموعة المختارة ( للعلم جدول المفاتيح يشتمل على حقلين فقط رقميين .. رقم المجموعة وينزل آليا عند ادراج رقم المفتاح) الخطوة الثانية : اجراءات وخطوات تقديم الاختبار
  15. المجموعات التي اتحدث عنها تخص هيكل الاسئلة المطروحة دعنا نسميها مفاتيح .. كل مفتاح تحته اسئلة مدروسة متكاملة سواء 10 او 15 او اقل او اكثر .. وخذ بالاعتبار تمكين التبديل بين هذه المفاتيح بحيث يمكن نقل سؤال من مفتاح الى آخر والعكس والمجموعات التي انت تتكلم عنها هي للتخصيص .. لذا يمكن تخصيص المفاتيح على طريقتك التي تريدها احتمال يخرج للمتسابق 10 اسئلة كلها في التاريخ .. هذا مثال اما على طريقتي فسيخرج له اسئلة تم فحصها والتأكد من شمولها لا مشكلة ان يتكرر سؤال او اثنين في جميع المفاتيح .. اقصد يكون عاما تجده في كل مفتاح ..................... في معرفي انظر اهتماماتي .. اي مشروع يبدأ بــــــــ : 1- فكرة ....... ( غالبا تبدأ من مالك المشروع) 2- تحليل البيانات 3- بناء الهيكل او القواعد الاساسية ( الجداول ) 4- تسليم العمل للمنفذ (المبرمج/ المبرمجين ) للتنفيذ قد تجتمع كل هذه بشخص واحد .. و ايضا يمكن توزيع هذه الفقرات على عدة اشخاص وتكليفهم بالمهمة
×
×
  • اضف...

Important Information