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

أ / محمد صالح

أوفيسنا
  • Posts

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

  • Days Won

    195

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

  1. تفضل أخي الكريم هذا مثال بسيط لحقل به سورة غافر وحقل به 45 آية من سورة يس والبحث في نص السورتين لاحظ تعديل سطر الفلتر إلى Me.Filter = "cleantxt([ayatext1]) Like ""*" & FindAsType & "*""" & _ "or cleantxt([ayatext2]) Like ""*" & FindAsType & "*""" نفعنا الله وإياكم بما علمنا وعلمنا ما ينفعنا البحث في حقلين بدون تشكيل.rar
  2. لم أفهم السطر الأخير أخي الكريم وائل الدالة تقوم بتجاهل الهمزات والتشكيل ... إلخ وتستعمل مع كود الفلترة ... للبحث سواء في حقل واحد .... أو في أكثر من حقل حسب ما تم شرحه سابقا في سطر الفلتر مع استعمال المعامل or في حالة البحث في أكثر من حقل وفقنا الله وإياكم لكل خير
  3. * بالنسبة للدالة الخاصة بحذف التشكيل والهمزات وتجاهل الفروق بين التاء المربوطة والياء والألف المقصورة لا يلزمك استعمالها في التقرير فليس منطقيا أن تعرض النص بدون تشكيل وهمزات .... إلخ في التقرير على العموم استدعاؤها في التقرير مثل استدعائها في أي مكان =cleantxt([fieldname]) حيث fieldname هو اسم الحقل المراد حذف تشكيله أما إذا كان مقصودك عرض نتيجة الفلتر في تقرير فيمكنك تصميم تقرير يحتوي على الحقول التي تريدها وفتحه بهذا الأمر بعد إضافة الجزء الخاص بالفلتر في أمر الفتح DoCmd.OpenReport "reportname", , , Me.Filter * وبالنسبة للمطلوب الثاني فيمكنك استعمال المعامل المنطقي or (أو) فيكون شرط الفلتر هو Me.Filter = "cleantxt([field1]) Like ""*" & FindAsType & "*"" Or cleantxt([field2]) Like ""*" & FindAsType & "*""": Me.FilterOn = True حيث field1 هو اسم الحقل الأول و field2 هو اسم الحقل الثاني وفي هذه الحالة سيبحث عن النص في الحقل الأول ويحضر سجلاته وكذلك سيبحث عن نفس النص في الحقل الثاني ويجلب سجلاته السجلات الموجود بها هذا النص في هذا الحقل أو ذاك ويمكن تكرار (أو) بأي عدد من الحقول نفعنا الله وإياكم بما علمنا وعلمنا ما ينفعنا بارك الله لك أخي الكريم أبا جودي جهود مشكورة وربما تم حذف دالة cleantext من المرفق الخاص بكم سهوا رغم أنه لم يتم حذف النموذج quran فالأفضل حذف الاثنين أو ابقاؤهما فلن يعمل البحث داخل النموذج بدون الدالة فلماذا الإبقاء على النموذج؟؟!!! وإذا سمحت لي أعتقد أن الدالة الخاصة بي cleantext Public Function cleantxt(txt As String) As String For Each itm In Array("إ", "أ", "آ") txt = Replace(txt, CStr(itm), "ا") Next For Each itm In Array("َ", "ً", "ُ", "ٌ", "ِ", "ٍ", "ْ", "ّ", "ـ") txt = Replace(txt, CStr(itm), "") Next txt = Replace(txt, "ة ", "ه ") txt = Replace(txt, "ي ", "ى ") cleantxt = txt End Function أقل في عدد الأسطر من الدالة المجمعة Public Function change_characters(str_Name As String) 'كود العبد الفقير الى الله str_Name = Replace(str_Name, "أ", "ا") str_Name = Replace(str_Name, "إ", "ا") str_Name = Replace(str_Name, "آ", "ا") str_Name = Replace(str_Name, "ة", "ه") str_Name = Replace(str_Name, "ى", "ي") change_characters = str_Name 'كود الاستاذ ابو خليل لحذف التشكيل Dim i As Integer Dim fld As String, wr As String, spa As String wr = "" fld = str_Name i = 1 Do While i <= Len(fld) spa = Mid(fld, i, 1) If Asc(spa) = 240 Or Asc(spa) = 241 Or Asc(spa) = 242 Or Asc(spa) = 243 Or Asc(spa) = 244 Or Asc(spa) = 245 Or Asc(spa) = 246 Or Asc(spa) = 247 Or Asc(spa) = 248 Or Asc(spa) = 249 Or Asc(spa) = 250 Then Else wr = wr & spa End If i = i + 1 Loop change_characters = wr End Function وهذا يعني سرعة في البحث أكثر وبالنسبة للمطلوب الثاني أعتقد والله أعلم أن مقصود الأخ صاحب السؤال أن يبحث في الحقلين معا (بحث متعدد) في نفس الوقت وليس أن يختار الحقل الذي يبحث فيه وحده الحكم في مقصد الأخ صاحب السؤال هو نفسه ويختار ما يلبي طلبه والحمد لله الذي هدانا لهذا وكل عام والجميع بكل خير
  4. مشكورين جميعا وموفقين إن شاء الله وحتى تعم الفائدة لمن يزور هذا الموضوع كل عام والجميع بخير وسعادة ورضا
  5. مشكورين جميعا وموفقين إن شاء الله وحتى تعم الفائدة لمن يزور هذا الموضوع كل عام والجميع بخير وسعادة ورضا
  6. ربما لم تصل الفكرة المطروحة في هذا الرد إلى الأذهان فقمت على عجالة بهذا التصميم المبدئي لقاعدة بيانات المصروفات ربما يفيدك هذا التخطيط لنفس الأغراض وأكثر mas_المصروفات.rar
  7. شكرا للأستاذ qffffq على مجهوده في الوصول للحل لقد تم الوصول للحل قبل ذلك فلا داعي لبدء موضوع جديد مكرر ربما لم يتابع الأستاذ صاحب الموضوع الحلول المقترحة جل من لا يسهو كل عام والجميع بخير وسعادة ورضا
  8. أخي الكريم صبحكم الله بكل خير يمكنك الإعلان عن المتغير في بداية موديول ليكون عاما في كل البرنامج لأن أعلانك في بداية النموذج يعتبر عاما داخل النموذج ولا يتعداه ربما يفيدك هذا الفيديو ويسعدني اشتراكهم في قناتي عيدكم سعيد ملحوظة: أعتقد أنه قد تمت الإجابة على هذا السؤال في هذا الرابط لفتح نموذج الاختبار مفلترا حسب اختيار المستخدم في النموذج الأول
  9. ما شاء الله كود ولا أروع أستاذ @Shivan Rekany بالتوفيق للجميع مع العلم أن نصائح كيفية تصميم قاعدة بيانات مثالية ربما توفر على من يلتزم بها الكثير من الوقت والجهد والتفكير في حل المشكلات وربما يراها من لا يعرف قدرها غير مفيدة ولا ضير في ذلك فقديما قالوا ( الإنسان عدو ما ي*** ) كل عام وانتم جميعا بخير وسعادة ورضا عيدكم سعيد
  10. كل عام أنتم بخير أخي الكريم عبد الله قدور في هذه الحالة لن يتم فتح التقرير وفي نهايته الأمر me.filter وإنما ستحتاج مثلا forms!subformname.filter لأن الفلترة تتم على النموذج الفرعي مع مراعاة استبدال subformname باسم النموذج الفرعي لديك
  11. بسم الله الرحمن الرحيم السلام عليكم ورحمة الله وبركاته كل عام أنتم جميعا بكل خير كنت قد صممت ملفا للبحث في القرآن الكريم به دالة لكل ما تريد وهو تجاهل الهمزات والتشكيل والتاء المربوطة والياء المتطرفة لاحظ استعمالها في الفلتر كما أنه يمكن استعمالها في الاستعلام أو التقرير ربما يفيدك أخي الكريم ويفيد كل راغب في العلم النافع ولا تنسوني من صالح دعائكم البحث في القرآن الكريم بدون تشكيل.rar
  12. جرب هذا الحل لظهور اللغة العربية بطريقة صحيحة تقبل الله منا ومنكم عيدكم سعيد
  13. تعيين خيارات التصفية لقاعدة البيانات الحالية يمكن فرز المعلومات التي يتم عرضها في أحد النماذج بتحديد عامل تصفية باستخدام التعريف تصفية حسب النموذج وتحديد قيم العرض لنافذة تصفية حسب النموذج لقاعدة البيانات الحالية. تتحكم الخيارات في هذا المقطع العديد من ميزات مثل حجم قوائم القيم التي تظهر ل# حقل معين في النافذه تصفيه حسب النموذج. يمكنك تحديد الخيارات ل# ما اذا كان عرض القيم ل# الحقول المفهرسه او غير المفهرسه ول# الحصول علي جدول مرتبط من قبل مستخدم في ملف خارجي. يمكنك ايضا تحديد خيارات ل# ما اذا كان اظهار قوائم القيم في عناصر التحكم الموجوده في نموذج عند استخدام تصفيه حسب النموذج. الإعداد الوصف حقول محلية مفهرسة عند تحديد هذا الخيار، يتم عرض قيم من حقول محلية مفهرسة في قوائم القيم التي تظهر في النافذة تصفية حسب النموذج. حقول محلية غير مفهرسة تضمين قيم من حقول محلية غير مفهرسة في قوائم القيم التي تظهر في النافذة تصفية حسب النموذج. حقول ODBC تضمين قيم من الجداول التي تُنشئ ارتباطاً بها باستخدام اتصال قاعدة البيانات المفتوح (ODBC). عدم عرض القوائم التي يظهر فيها عدد من السجلات أكبر من ادخل الحد الاقصي ل# عدد السجلات التي تريدها Access ل# قراءه اثناء انشاء قائمه القيم ل# عامل تصفيه حسب النموذج العمليات. لن تظهر قائمه قيم عندما يتجاوز عدد السجلات المطلوبه ل# اكمال قائمه الرقم الذي تحدده. ستحتوي قوائم القيم كافه القيم الفريده فقط، حتي لو غير مفهرسه الحقول الخاصه بها. الاعداد الافتراضي هو 1000. الخلاصة هي إمكانية تضمين جميع أنواع الحقول (المفهرسة وغير المفهرسة والمرتبطة) في القوائم المفلترة بحد أقصى 1000 سجل
  14. بارك الله لك أستاذي الفاضل يمكنك تعديل كود زر فتح النموذج إلى DoCmd.OpenForm "Exam", , , "[Chapter_Question] = """ & Forms!startup!Label72.Caption & """" أو DoCmd.OpenForm "Exam", , , "[Chapter_Question] = """ & Me.Label72.Caption & """" بدلا من DoCmd.OpenForm "Exam", , , "[Chapter_Question] = Me.[Label74].caption" ملحوظة: ياعم الحاج احنا ناس غلابة قوي بلاش حكاية سعادة الأستاذ ال.... ال...... والكلام الكبير ده الواحد ياخد قلم في نفسه ولا حاجة ربنا يصلح أحوالنا جميعا
  15. بارك الله لك أستاذ إبراهيم ولإثراء الموضوع وتطوير الدالة وجعلها أكثر احترافية Function GetNumbersOnly(SText as string) as double Dim Numbers as string For i = 1 To Len(SText) If IsNumeric(Mid(SText, i, 1)) or mid(sText,i,1) = "." Then Numbers = Numbers & Mid(SText, i, 1) End If Next GetNumbersOnly = cdbl(Trim(Numbers)) End Function تم إضافة تعريف بعض المتغيرات وشرط للعلامة العشرية وتحويل ناتج الدالة لرقم من نوع دبل كل عام وانتم جميعا بخير وسعادة ورضا
  16. إذا كانت النصوص الممكنة مع الأرقام هي فقط رموز gr kg ml l يمكنك استعمال هذا التعبير في الاستعلام weight number: Replace(Replace(Replace(Replace([weight];"gr";"");"kg";"");"ml";"");"l";"") وهو لاستبدال النصوص بلا شيء لتظهر الأرقام فقط
  17. لعمل هذا يمكنك نسخ الكود الموجود في الزر الثاني إلى الزر الأول أو استعمال call button2_Click داخل حدث ضغط الزر الأول
  18. شكرا لكلمااتك الرقيقة أخي الكريم نفعنا الله وإياكم بما علمنا وعلمنا ما ينفعنا وبالنسبة لمعرفة رقم المازربورد يوجد الكثير من الموضوعات في المنتدى تخص هذا الأمر منها مثلا وبالبحث ستجد الكثير فقط ضع الكود الذي يعطي الرقم الذي تريده في دالة getcode
  19. تفضل أخي الكريم تم تعديل زر السابق وعرض الإجابة والخروج زأضافة موديول لإخفاء الأكسس مع تغيير حاصية منبثق popup ومشروط modal إلى نعم mas_Questions_4.rar
  20. عفوا هناك مشكله . لمنتمكن من تحديد المحتوي الذي ترغب في عرضه كود الخطاء : 2S328/1 تقريبا تم حذف المرفق
  21. وفقك الله أستاذ حمدي أقترح حسب ما تعلمنا في قواعد كيفية بناء قاعدة بيانات قوية * أن يتم إنشاء جدول لأولياء الأمور فيه (رقم واسم ولي الأمر وعنوانه وعدد الأبناء حقل محسوب وأي بيانات مطلوبة عن ولي الأمر) * وجدول آخر للطلاب به (رقم الطالب ورقم ولي الأمر (حقل ربط بين الجدولين) واسم الطالب الأول فقط وفصله وأي بيانات تخص الطالب) بهذه الطريقة تستطيع حساب عدد مرات تكرار كود ولي الأمر في جدول الطلاب وتحسب النسبة بكل سهولة وتعرض بيانات الطلاب أسفل نموذج أولياء الأمور في النموذج الفرعي كل عام أنتم بخير
  22. ولا يهمك يا غالي أنا رصيدي مبيخلصش من اللايكات زي ما برمجة المنتدى بتسمح أول مرة أعرف معلومة محدودية رصيد اللايكات دي المهم نشر العلم النافع للنفس وللغير وفقنا الله وإياكم لكل خير
  23. السلام عليكم ورحمة الله وبركاته بعد إذن الأستاذ الفاضل جمال سعد بالنسبة للتقريب في الرياضيات هو ما كان أكبر من نصف الرقم الذي نقرب إليه يتم جبره لأعلى وما كان أصغر من نصف الرقم الذي نقرب إليه يتم جبره لأسفل مثال 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 فاختر لنفسك أي الطريقتين تريد في حساباتك وفقنا الله وإياكم لكل ما يحب ويرضى
  24. وهذا تطوير للمثال بحيث يكون أكثر احترافية بحيث يقوم بالبحث ولا يمسح محتويات مربع البحث إذا تم تغيير الحقل وتفادي وقوع الأخطاء وعدم استعمال on error resume next وتحديد القيمة الافتراضية لقائمة الحقول بحث في جميع حقول النموذج.rar
  25. الصورة أسفل الكود مختلفة عما أرسلته وعما كتبه أخي وصديقي رمهان هدانا الله وإياكم لما فيه الخير ما يهمني هو أنك وصلت لما تريد فقط يلزمك زيادة فاصلة قبل الفلتر ليكون الكود في الصورة صحيحا لأن في الفاصلة الأولى اسم الفلتر إن كان له اسم وفي الفاصلة الثانية شروط الفلتر إن لم يكن له اسم وفقك الله لكل خير
×
×
  • اضف...

Important Information