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

ابوخليل

أوفيسنا
  • Posts

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

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

  • Days Won

    286

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

  1. تفضل المشكلة لديك ان نوع حقل الترقيم في الجدول لديك رقمي وحينما رغبنا في اضافة رمز توجب علينا تحويله الى نصي Serial number_zero1.rar
  2. الامثلة المعدلة اعلاه كثيرة لو ارفقت الملف الموجود به المشكلة .. ننظر فيه
  3. جزيت خيرا مؤكد لن نعدم فائدة .. فجزاك الله خيرا سوف نتصفحه و نقتبس اجمل ما فيه .. وندعوا لك ولن نستغني عن تفاعلك ومشاركتك معنا
  4. جزيت خيرا اخ علي في جهازي امتنع برنامج الحماية عن فتحه و حيث ان امتداده EXE اعتقدت انه ملف تنفيذي .. ولم يخطر ببالي انه ملف مضغوط .. لأن امتدادات الضغط معروفة شكرا لك
  5. الف شكر استاذنا الغالي على الجهد وعلى البذل والعطاء .. فجزاك الله خيرا عني وعن رواد هذا المنتدى خير الجزاء عن نفسي .. انتظر الاخراج .. أقف على اصابع قدمي .. لأستبدل فكرتك وعملك الاول بهذا المخرج الجميل لدي مشروع صغير خاص بالاطفال
  6. مشاركة مع اخي خليفة ههههههههه ما لها دار لقمان ؟؟ اخي طاهر انت وجدت الجزء الرئيسي في المشكلة .. وهو حقل Nr فضلا اقرأ التالي بتمعن كلمة كلمة : في الاصل وبغض النظر عن كون نوع الحقل نصي وهو يحمل قيمة رقمية 1 ،2 ، 3 الخ .. هنا يمكن تغيير النوع من الجدول ويمكن ايضا تغيير النوع داخل الكود فمثلا اذا رقم 8 موجود في حقل نصي يمكننا تحويله داخل الكود الى قيمة رقمية . ولكن في جدولك الحقل يحمل قيمة نصية صريحة فرقم الوظيفة (متقاعد) الظاهر = 8 ولكن هذه الـــ 8 مجرد صورة وليست قيمة فالقيمة التي يحملها الحقل هي متقاعد هنا يتضح لك الخطأ بوضع الشرط داخل الكود : >= Nr 5 في الاصل غير موجود علاوة على انك تقارن قيمة نصية بصيغة خاصة بالارقام
  7. تم عمل التعديلات على النحو التالي : - اضافة جدول وسيط يحمل درجة الاجابة - تغيير كود الحاق الاجابة واستبداله باستعلام الحاق - اضافة بعض الضوابط مثل : الاغلاق بعد الحفظ منع اعادة الاختبار ( آلية مرنة يمكن للمسؤول تمكينه من اعادة الاختبار حيث اضفت حقل نعم/لا يمكن التحكم من خلاله) بعض اللمسات على نموذج الاجابة ....................................................... لترتيب هذا العمل .. مهم جدا العمل على آخر مثال تم التعديل عليه من قبل الاخوة الكرام وحبذا يراعى في الامثلة الترتيب الرقمي .. فالمرفق الجديد سميته Exam1 فيا ليت يكون التالي Exam2 .. وهكذا ... انتظر منكم الملاحظات او اي تعديلات قبل الانتقال للخطوة والمطلب التالي Exam1.rar
  8. شكرا استاذ عمر على المشاركة الجميلة تحقق من الخطوة الأولى 1- ضبط الوقت .. وغلق النموذج عند انتهائه 2- حفظ الاجابة في جدول tbl_Answers 3- عمل جدول اعدادات عامة ملاحظة : بعد التجربة اتضح لي وجوب ايجاد جدول وسيط لرصد الاجابة المبدئية في الوضع الحالي سيتم حفظ الفقرة الأخيرة اي اجابة سؤال واحد فقط انتظروني سأعمل على ذلك
  9. GenerateID = Year(Date) & "-" & Format(iNext, "000000") سبق وبينت لك انه يمكنك وضع اي فاصلة تريدها .. انظر السطر ادناه فقط غير علامة الناقص بما تريد مع الانتباه لعدم التعرض لعلامتي التنصيص يعني غير فقط : - بـــــ //
  10. السلام عليكم هذا برنامج لإجراء اختبارات القبول والمنافسة وقياس الثقافة والمعرفة للمتقدمين لوظائف معينة احببت ان افرد له موضوعا يتم بناؤه وفقا لمقترحات الاعضاء ولمسات وتوجيهات الخبراء الموضوع ملك الجميع لمن اراد ان يدلي بدلوه في المرفق حاليا تم عمل أساسات البرنامج : اولا - الجداول : 1- جدول اسماء الموظفين الذين يتقدمون لاداء الاختبار 2- جدول فرعي للمجموعات 3- جدول لمفاتيح الأسئلة 4- جدول الاسئلة ويشتمل على خيارات الاجابة ورقم الاجابة الصحيحة 5-جدول الاجابات ثانيا - الاستعلامات .. اثنان : واحد لتصفية المفاتيح حسب المجموعة .. والآخر لتصفية الاسئلة حسب المفاتيح ثالثا - النماذج : 1- نموذج دخول المتقدم .. يدخل الرقم القومي ورقم الهاتف لينقله الى : 2- نموذج الاسئلة واختيار الاجابة الصحيحة سجلت اثنين ، محمد .. الرقم القومي =1111 والهاتف = 1234 سعيد .. الرقم القومي = 2222 والهاتف = 1234 محمد في مجموعة المدراء وسعيد في مجموعة المعلمين وطبعا كل مجموعة لها اسئلتها التي تخصها ويمكنهم التغيير عشوائيا واختيار ما يرونه مناسبا من خلال تغيير المفتاح والبحث العشوائي عند النقر على السؤال تظهر خيارات الاجابة في الاسفل الى هنا كل شيء تمام التمام الخطوة او الخطوات القادمة المطلوبة كالتالي : 1- تفعيل الوقت ( العداد ) دقائق وثواني مثلا 10 دقائق في اعلى النموذج اذا انتهت تظهر رسالة بانتهاء الوقت ويتم غلق النموذج 2-لا يمكن الحفظ حتى تكتمل اجابات جميع الاسئلة 3- حفظ الحلول في جدول الاجابات tbl_Answers مع مراعاة اكتمال تعبئة جميع الحقول في الجدول 4- من قدم اختبار لا يمكن له ان يعيد الاختبار مرة اخرى .. ويتم حجبه من فورم الدخول new_test2.rar
  11. السبب هو ان نوع الحقل في الجدول رقمي ومنطقي يظهر معك خطأ فأنت بين خيارين : اما تحول الحقل في الجدول الى نصي ( من اجل يقبل الفاصلة) وإما تبقى على وضعك ولا تدخل الفاصلة في الكود وهذا مثالك بعد تحويله الى نصي وايضا تنسيق الارقام جعلتها 5 فلا اتوقع انك ستصل في سنة الى 99999 مائة الف الا واحد ولكن ان كانت هناك اكواد هو المعيار فيها فسوف تضطر الى تعديلها numero2.rar
  12. الدالة ستكون هكذا : التغير في مكانين .. بداية الرقم اصبح 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
  13. اهلا اخي العزيز صاحب الموضوع مشغول .. ولا اخفيك الفكرة راقت لي .. وعملت اضافات .. منها دالة لاختيار رقم عشوائي لذا دعنا نعمل عليه انت وأنا كبرنامج اختبار وقياس قابل لأكثر من رغبة سوف افتح موضوعا جديدا واطرح آخر تعديل ثم انتظر اضافاتك ولمساتك وهكذا حتى يخرج بثوب مناسب ما رأيك ؟
  14. نعم كأقصى عدد على الدالة الحالية هو 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
  15. من المثال المرفق تبين لي ان الدالة من عمل @Foksh فأهل مكة ادرى بشعابها
  16. الافضل لك ان تزيل التنسيق ليصبح السطر هكذا GenerateID = CLng(yearPrefix & (serialPart + 1)) جرب لن تخسر شيئا ولكن الرقم سيكون عاديا بدون اصفار وسيتزايد مثله مثل الارقام العادية .. وفي السنة الجديدة يبدأ بواحد بعد السنة
  17. المفروض تفيدنا اولا هل عملت معك ام لا ؟ والفرق الذي تسأل عنه هو انك تجاوزت نطاق العدد بعد السنة كأقصى رقم ثم يظهر خطأ هو 6 تسعات 999999 في الدالة التي لديك عندما يصل العدد الى الحد الاقصى لن ينتقل الى سنة جديدة بل سيظهر خطأ وسوف تنتظر حتى دخول السنة الجديدة
  18. 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 هذه تعمل
  19. جرب يا حافظ على دالتك الاصلية نقص صفر من التنسيق في هذا السطر ليصبح 3 اصفار GenerateID = CLng(yearPrefix & "000" & (serialPart + 1))
  20. تفضلي التعديلاات كالتالي : 1- وضعت الوان في النموذج الرئيسي للاستدلال على الخطابات التي تم الاطلاع عليها .. الاخضر تم والبرتقالي لم يتم 2- في حدث العداد للنموذجين الفرعيين جعلت الوقت 5 ثواني ( كل 1000= ثانية ) يمكنك زيادة الوقت وهو الافضل مثلا 300000 = 5 دقائق بمعنى كل 5 دقائق يتم تحديث النموذج لمعرفة ان كان هناك خطابات جديدة الآن عند فتح النموذج الفرعي سيفتح بلا بيانات انتظري 5 ثواني لتري التيجة جربي ووافيني بملاحظاتك مراسلة3.rar
  21. انظر هذه الخطوة الاولى تم التصرف في المفاتيح حسب حاجة التصميم ( الاختيار العشوائي سيتم على المفاتيح ) فقط حتى تتخيل كيف سيكون الاخراج الخطوة التالية هي 1- تشغيل الاختيار العشوائي 2- ربط النموذج الفرعي بجدول الاجابات 3- تشغيل الوقت الاختيار العشوائي يتم عند فتح النموذج من غير تدخل يدوي او ازرار اذا اعجبك العمل واردت ان نستمر يا ليت تفتح موضوع جديد وعنوان جديد مناسب مثلا برنامج اختبارات او قياس قدرات او تقييم مهارات ونحو ذلك مما ينطبق على غرضك لأن العمل يستحق ذلك التعليق والملاحظات مفتوح للجميع .. باعتباره موضوعا ودرسا تعليميا new_test1.rar
  22. المتغير هذا والدالة تحته من اجل تحديد رقم القسم فالاقسام معرفاتها تبدأ من رقم 1 وحتى 5 في حدث تحميل النموذج المتغير strSectionID يأخذ قيمة معرف القسم .. يمكنك الاطلاع Public strSectionID As Integer ' اعلان عن متغير عام رقمي Public Function funSectionRecordCriteria() ' هذه الدالة تأخذ قيمة المتغير نستفيد من هذه الدالة كمعيار داخل الاستعلام فهي تحمل رقم القسم funSectionRecordCriteria = strSectionID End Function ليه استخدمنا الدالة كمعيار بدلا من المعيار المعتاد : forms!form1!text1 ? لأن الدالة تأخذ قيمة معرف القسم عند تحميل النموذج الخاص بالقسم فلو كان عندنا 10 نماذج وكل نموذج لقسم مختلف فالدالة تأخذ قيمة كل نموذج عند فتحه بواسطة المتغير strSectionID وهذه القيمة هي التي نستخدمها كمعيار في الاستعلام وللعلم يمكننا الاستغناء عن الدالة واستخدام معيار القسم مباشرة اذا كان كل ملف فرعي يعمل لوحده مثلا ملف او واجهة القسم القانوني نضع في الاستعلام رقم 4 كمعيار ....................... بالنسبة للاشعار فإليك الطريقة : نضيف حقل خانة نعم/لا في السجل تكون نعم افتراضيا في نموذج العرض البعيد (القسم) نضع كود في حدث الحالي للنموذج والافضل يكون في حدث العداد هذا الكود يفحص آخر سجل على الاقل اذا خانة الاختيار true تظهر رسالة بوجود رسالة او سجل جديد ويمكن ان نعمل على الا يظهر هذا السجل للمستخدم الا بعد الموافقة .. والموافقة تعني تحويل الخانة الى false وظهور السجل
  23. نعم هو كذا .. يا سلام شوفت جمال عملك .. على الاقل التسميات تفتح النفس .. وتدل على معانيها وعملها تمام كذا .. انتظرني .. اعمل لك الخطوة اللي بعدها
×
×
  • اضف...

Important Information