اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

أ / محمد صالح

أوفيسنا
  • Posts

    4,444
  • تاريخ الانضمام

  • Days Won

    192

كل منشورات العضو أ / محمد صالح

  1. وفقك الله أستاذ حمدي أقترح حسب ما تعلمنا في قواعد كيفية بناء قاعدة بيانات قوية * أن يتم إنشاء جدول لأولياء الأمور فيه (رقم واسم ولي الأمر وعنوانه وعدد الأبناء حقل محسوب وأي بيانات مطلوبة عن ولي الأمر) * وجدول آخر للطلاب به (رقم الطالب ورقم ولي الأمر (حقل ربط بين الجدولين) واسم الطالب الأول فقط وفصله وأي بيانات تخص الطالب) بهذه الطريقة تستطيع حساب عدد مرات تكرار كود ولي الأمر في جدول الطلاب وتحسب النسبة بكل سهولة وتعرض بيانات الطلاب أسفل نموذج أولياء الأمور في النموذج الفرعي كل عام أنتم بخير
  2. ولا يهمك يا غالي أنا رصيدي مبيخلصش من اللايكات زي ما برمجة المنتدى بتسمح أول مرة أعرف معلومة محدودية رصيد اللايكات دي المهم نشر العلم النافع للنفس وللغير وفقنا الله وإياكم لكل خير
  3. السلام عليكم ورحمة الله وبركاته بعد إذن الأستاذ الفاضل جمال سعد بالنسبة للتقريب في الرياضيات هو ما كان أكبر من نصف الرقم الذي نقرب إليه يتم جبره لأعلى وما كان أصغر من نصف الرقم الذي نقرب إليه يتم جبره لأسفل مثال 141 الواحد أقل من نصف 5 لذلك تجبر لأسفل فتصير 140 أما 143 فتجبر لأعلى فتصير 145 وكنت قد صممت دالة لهذا الغرض تساوي دالة mround الموجودة في إكسل Function masround(ByVal n As Double, Optional ByVal m As Double = 1) As Double masround = IIf(n - (m * (n \ m)) >= (m / 2), m * (n \ m + 1), m * (n \ m)) End Function وهي مرنة بحيث يتم تمرير العدد والمضاعف فمثلا لأقرب 5 masround([n],5) ولأقرب 20 masround([n],20) ولأقرب نصف masround([n],0.5) وهكذا أما إذا كان المطلوب هو الرفع لأقرب أعلى 5 وهو دور دالة ceiling في إكسل فهذه أيضا دالة لهذا الغرض Function masCeiling(ByVal X As Double, Optional ByVal Factor As Double = 1) As Double masCeiling = (Int(X / Factor) - (X / Factor - Int(X / Factor) > 0)) * Factor End Function ودورها رفع 121 إلى 125 ورفع 126 إلى 130 لأقرب أعلى 5 فاختر لنفسك أي الطريقتين تريد في حساباتك وفقنا الله وإياكم لكل ما يحب ويرضى
  4. وهذا تطوير للمثال بحيث يكون أكثر احترافية بحيث يقوم بالبحث ولا يمسح محتويات مربع البحث إذا تم تغيير الحقل وتفادي وقوع الأخطاء وعدم استعمال on error resume next وتحديد القيمة الافتراضية لقائمة الحقول بحث في جميع حقول النموذج.rar
  5. الصورة أسفل الكود مختلفة عما أرسلته وعما كتبه أخي وصديقي رمهان هدانا الله وإياكم لما فيه الخير ما يهمني هو أنك وصلت لما تريد فقط يلزمك زيادة فاصلة قبل الفلتر ليكون الكود في الصورة صحيحا لأن في الفاصلة الأولى اسم الفلتر إن كان له اسم وفي الفاصلة الثانية شروط الفلتر إن لم يكن له اسم وفقك الله لكل خير
  6. أخي الكريم يمكنك عملها بنفسك من آخرملف تم رفعه من حضرتك Questions.rar الخطوات التي تمت على آخر ملف * حذف زر السؤال السابق * إخفاء إجابة الطالب والإجابة الصحيحة من نموذج chapter أو حذفهما * تعديل كود زر التسليم إلى Private Sub Command45_Click() If Not (IsNull(Me.answers)) Then qcount = qcount + 1 If Me.answers = Val(Me.CorrectAnswer) Then truecount = truecount + 1 End If If qcount <= DCount("*", "Questions_Entry") Then Me.StudentAnswer = Me.answers If qcount + 1 <= DCount("*", "Questions_Entry") Then DoCmd.GoToRecord , , acNext Me.answers = Null Else DoCmd.OpenForm "result" Forms!result!lblcount.Caption = qcount Forms!result!lbltrue.Caption = truecount Forms!result!lblpercent.Caption = Format(truecount / qcount * 100, "%00.00") DoCmd.Close acForm, Me.Name End If Else MsgBox "يجب اختيار إجابتك" End If End Sub * تعديل كود زر الإغلاق في نموذج result إلى Private Sub Command41_Click() DoCmd.SetWarnings 0 DoCmd.RunSQL "update Questions_Entry set StudentAnswer=null" DoCmd.SetWarnings 1 DoCmd.Close End Sub * طبعا تصميم تقرير من خلال المعالج وإضافة رقم السؤال والإجابة الصحيحة وإجابة الطالب فقط * أو يمكنك تصميم نموذج باستخدام المعالج وإضافة نفس الحقول كل عام والجميع بخير وسعادة ورضا
  7. هي بالفعل بتنسيق 2007 فلم يتم تعديل تنسيق الملف فقط التعديلات المذكورة سابقا وفقنا الله وإياكم لكل خير
  8. تفضل أخي الكريم تم عمل تعديل بسيط في معادلة مسلسل الأفراد لاحظ أنه تم عمل معادلة صفيف array formula للمسلسل كما أنه لا يمكن حذف القائمة الكاملة التي تحتوي على الأفراد ورؤساء المجموعات فقط يلزمك كتابة مسلسل رؤساء المجموعات ليتم ظهور اسمهم من القائمة الكاملة واستبعادهم من الأفراد الموجود في قائمة وليس في الأخرى2.rar
  9. وفقك الله لكل خير أستاذ خالد * لقد استعملت كود Me.StudentAnswer = Me.Text33 بدلا من Me.student_answer=me.Answers فالأول يجعل قيمة إجابة الطالب هي النص المكتوب في مربع النص إجابة الطالب وهو غير مستعمل نهائيا ولا أعتقد أنك تريد أن يكتب الطالب رقم الإجابة في هذا المربع ولا يختارها بالضغط على زر الاختيار answers والثاني يجعل إجابة الطالب هي الرقم الذي اختاره من الإجابات الأربعة * كما أنك رجعت بالطالب لنموذج الاختبار من جديد وكأنك تعيد له الاختبار فيمكنه الاختيار وضغط زر تسليم من جديد ويمكنه طباعة النموذج أيضا عند الضغط على زر الإجابات الصحيحة والأولى كما قلت لك عرض (رقم السؤال ورقم الإجابة الصحيحة ورقم إجابة الطالب) في تقرير وهذا هو الملف بعد بعض التعديلات حتى يتناسب مع ما طلبت وفقنا الله وإياكم لكل خير Questions2.rar
  10. سهلة جدا أستاذي الفاضل حاليا أنا على موبايل ممكن أعملها لحضرتك بعد العودة من العمل وممكن تحاول فيها يتم عمل تقرير لجدول questions يعرض عمودين إجابة الطالب والإجابة الصحيحة فقط وإضافة سطر لتسجيل إجابة الطالب في حقل student_answer Me.student_answer=me.Answers إن شاء الله تقدر تعملها
  11. يا ريت تذكر لنا كيف لم يعمل معك كود فتح التقرير بنفس فلتر النموذج في الملف المرفق بمشاركتي وكيف عمل معك نفس الكود في حدث عند النقر المزدوج على مربع نص البحث المشار إليه في مشاركة أستاذ رمهان ؟؟!! الكود المستخدم في الحالتين هو Private Sub reprt_Click() DoCmd.OpenReport "report", acViewPreview, , Me.Filter End Sub و Private Sub txt_Search_DblClick(Cancel As Integer) DoCmd.OpenReport "report", acViewPreview, , Me.Filter End Sub لاحظ السطر الثاني DoCmd.OpenReport "report", acViewPreview, , Me.Filter
  12. تفضل أخي الكريم لاحظ أنه تم عمل معادلة للمسلسل والاسم في الأفراد كما أنه لا يمكن حذف القائمة الكاملة التي تحتوي على الأفراد ورؤساء المجموعات فقط يلزمك كتابة مسلسل رؤساء المجموعات ليتم استبعادهم من الأفراد الموجود في قائمة وليس في الأخرى.rar
  13. بارك الله لك أرجو أن يكون الهدف قد تحقق وهو أن استعمال أسماء الحقول والجداول بالانجليزية يسهل كتابة الكود وجمل الاستعلام sql وغيرها الكثير لقد نشأنا على هذا وأرجو الله أن ينفع به جميعنا فقط تمت إضافة زر أمر لفتح التقرير في وضع المعاينة للطباعة بفلترة مثل فلترة النموذج أي باستعمال نفس الفلتر كما أشار الأستاذ رمهان مشكورا وكنت أرجو أن تصل إليها بنفسك مثال 3.rar
  14. لا يتم تسجيل إجابة الطالب كل هذا يتم على الطاير ويمكنك مشاهدة حقل إجابة الطالب في الجدول قلت في المشاركة السابقة يمكننا الاستغناء عن حقل إجابة الطالب موفق إن شاء الله أستاذي الكريم
  15. بارك الله لك أخي الكريم ربما يفيدك هذا التعديل لا يلزمك حقل إجابة الطالب تم تعديل كود زر تسليم (هو ما يلزمنا) mas_Questions.rar
  16. أكيد بالإمكان يلزمك أولا أن تقوم بتسمية الجدول والنموذج باللغة الانجليزية ولو كتابة النطق مثل alesm والحقول الموجودة بهما أيضا ثم تنشئ التقرير الذي تريده ويبقى لك كود الفتح مع الفلترة
  17. بعد إذن الأستاذ جمال أخي الكريم يرجع الخطأ لاستعمال أسماء الحقول باللغة العربية وتصحيح هذا الخطأ هو ما يلي Private Sub comb_Search_AfterUpdate() On Error Resume Next Me.Filter = "[" & Nz(comb_Search, "رقم المستفيد") & "] Like ""*" & txt_Search & "*""": Me.FilterOn = True Me.txt_Search.SetFocus End Sub Private Sub txt_Search_Change() On Error Resume Next FindAsType = txt_Search.Text Me.Filter = "[" & (Nz(comb_Search, "رقم المستفيد")) & "] Like ""*" & FindAsType & "*""": Me.FilterOn = True txt_Search.SetFocus txt_Search = FindAsType txt_Search.SelStart = Len(FindAsType) End Sub لاحظ الأقواس قبل وبعد اسم الحقل * يبدو أنه أثناء إعدادي للرد سبقني بها أخي شيفان تقبل منا منكم صالح الأعمال
  18. أشكر كل من شارك في هذا الموضوع اللهم ارزقنا علما نافعا وعملا متقبلا نفعنا الله جميعا بما علمنا وعلمنا ما ينفعنا
  19. بارك الله لك أستاذ صالح وجعلنا الله جميعا من الصالحين مشكلة هذه الطريقة أن الدالة savesetting تخزن في الريجيستري في مسار محدد HKEY_CURRENT_USER\SOFTWARE\VB and VBA Program Settings والأفضل في هذه الحالة استعمال الريجيستري بطريقة عادية بدون savesetting باستخدام WScript.Shell وهذا ما حدث في هذا الموضوع الجديد والبسيط وفقنا الله وإياكم لكل ما تحبه وترضاه
  20. اللهم آمين ولك مثلها إن شاء الله بعض ما عندكم أخي العزيز اللهم علمنا جميعا ما ينفعنا وانفعنا اللهم بما علمتنا
  21. لو شفت الفيديو صديقي العزيز كنت عرفت الإجابة خلق الإنسان من عجل شكرا لمجرد مرورك
  22. الحمد لله الذي هدانا لهذا وما كنا لنهتدي لولا أن هدانا الله نجحت التجربة لم يتمكن أحد الأحباب من كسر المدة التجريبية وكما وعدت ووعد الحر دين عليه هذا هو الشرح لطريقة عمل هذه الطريقة من النسخة التجريبية التي تعتبر بداية يمكن تطويرها وتطويعها بما يناسب كل مبرمج ودائما شعاري البساطة في الشكل والسهولة في المضمون والآن مع الفيديو ولا ينقصني سوى دعاؤكم لي بالخير في الدنيا والآخرة حتى يقول لك الملك: آمين ولك مثلها
  23. أرى أن ما حدث ليس مشكلة وإنما هو حل لمشكلة فالأفضل تخزين التاريخ في حقل من نوع تاريخ وليس نصا ويمكن تحويل النص لتاريخ باستخدام cdate(fieldname) وربما لو تم تحديد نوعية المشكلة الناتجة عن تغيير نوع البيانات لأمكن حلها
  24. يمكن تنفيذ أمر الحماية في الإكسل لعدم تعديل محتويات الخلايا objXLSheet.protect وذلك بعد تنفيذ أمر الاحتواء التلقائي autofit أي قبل السطرين التاليين مباشرة 'close up other rs objects If Not rs Is Nothing Then rs.Close Set rs = Nothing
  25. بارك الله لكم جميعا أحبتي في الله ربما يكون المخزن في الحقل النصي تواريخ فأثناء التحديث تم قراءة المحتويات وتغيير النوع إلى تاريخ كل هذه افتراضات نظرية والعملي هو إرفاق الجزء الخاص بالمشكلة من البرنامج ومراجعة الكود موفقين إن شاء الله
×
×
  • اضف...

Important Information