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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    415

كل منشورات العضو jjafferr

  1. رجاء لا تستخدم الكود في حساب الوقت ، وانما افتح الاستعلام يدويا ، 3 مرات لوسمحت 🙂 جعفر
  2. السلام عليكم 🙂 عندي مداخلة في التنسيق فقط 🙂 بما ان شجرة حساباتك بالعربي ، ايش رايك نخليها من اليمين الى اليسار ، هكذا : . وهذه هي الطريقة : . جعفر Database3 (1).zip
  3. بالفعل ، النتائج غير دقيقة حسب تجاربي 🙂 ورجاء ، كل استعلام جربه 3 مرات 🙂 جعفر
  4. فما هو وقت تنفيذ الاستعلام على كمبيوترك ؟
  5. اخي طارق 🙂 ما شاء الله عليك ، فعداد مشاركاتك يقول بانك اكملت 830 مشاركة ، ومعناها انك ادرى بطريقة عمل المنتدى 🙂 موضوعك السابق كان بعنوان : مساعدة في خطأ بالقاعدة بينما قوانين المنتدى تقول: 3. ضرورة كتابة عنوان واضح للموضوع يدل على محتواه ويعطي وصفاً مختصرا للسؤال. وقد سبق تنبيهك وقفل احد/بعض مواضيعك سابقا !! وللعلم ، فإننا نغض الطرف عن الكثير من القوانين ، وخصوصا للمبتدئين 🙂 1. لو قرأت اسم الموضوع مرة اخرى بعد اغلاقه ، لوجدت ان اخونا ابوخليل وضح الامر: مساعدة في خطأ بالقاعدة _ ( العنوان مخالف) 2. من تجاربي ، معظم المواضيع التي لا يكون فيها رد ، معناه ، إما الموضوع صعب ، وإما ان الشرح مافيه تفصيل وامثلة ، فأنا مثلا ، اذا وجدت ان السؤال غير واضح ، اذهب الى موضوع آخر ، لكي استفيد من وقتي ، وللأسف ارى بعض الاسئلة وكأن السائل يتمنن علينا بالمعلومة ، بينما يجب ان يساعدنا بالتفاصيل ، حتى نساعده بالجواب 🙂 وخذها قاعده ، اذا لم يتم الرد على سؤالك خلال يومين ، ووجدت اكثر من 10 قراءات ، فيجب عليك اعادة عرض السؤال بطريقة مختلفه ، وبشرح افضل وبمثال 🙂 جعفر
  6. الهدف من هذا الموضوع هو ان نتلافى استخدام DlookUp او DSum واخواتها في استعلام 🙂 الاستعلام الفرعي ، نعم ، لا مانع من ذلك 🙂 ولكن رجاء النظر في الرابط التالي ، بحيث ستعرف ان الاستعلامات الفرعية ليست جميعا بنفس السرعة ، لذا يجب عليك تجربة عدة طرق : جعفر
  7. تفضلوا ، وخلونا نناقش الموضوع هناك لو سمحتم 🙂 جعفر
  8. السلام عليكم 🙂 عند عمل البرنامج ، لا تجرب برنامجك على عدد اقل من 10 الآف سجل ، فسرعة الاستعلام الصحيحة هي لما تجرب البرنامج على اكثر من 10 الآف سجل 🙂 لا تستعمل DlookUp او DSum واخواتها في استعلام ، لأنها تجعل الاستعلام بطيء ، واذا كانت البيانات كثيرة ، فالاستعلام سيكون بطيء بشكل غير مقبول !! وللعلم ، فالاوامر DlookUp او DSum هي واقعا استعلام ، ولكن تم عمله بهيئة دالة ، ترسل لها المتغيرات ، وترج لك النتيجة 🙂 والبديل هو فك كل امر DlookUp او DSum في استعلام مستقل (قد نستطيع جمعهم ، ولكن هذا يعتمد على المعايير) ، بحيث نستخدم معايير الاستعلام بدلا عن معايير الاوامر DlookUp او DSum ، ونستخدم ربط الجداول كنوع من المعيار كذلك. المثال التالي سيوضح قصدي: احد المؤسسات التي اتعامل معها ، ارسلت لي هذا الملف وبه حوالي مليون سجل ، وطُلب مني النظر في بطئ استعلام الحاقي. الجدول التالي يحتوي على 100 الف سجل (حذفت الباقي 🙂) ، وسجلات سنة 2019 = 7 سجلات فقط ، وبقية السجلات لسنة 2018 : . الاستعلام الالحاقي الاصل هو : . ومن اجل هذا المثال ، سنحول الاستعلام الى استعلام عادي ، وسنفك الحقول ، وسنستخدم مجاميع سنة 2019 في استعلام مستقل وكذلك لسنة 2018 : . بالنسبة لسنة 2019 ، بدل عن استخدام الامر DSum (سبب بطئ الاستعلام) ، سنفك الامر DSum الى استعلام مستقل ، هكذا : . ونفس الشيء لسنة 2018 ، والآن نأتي الى المعيار الاخير (3) ، وهو حقل id لجدول var ، يجب ان يساوي حقل المعرف لجدول data ، وانا هنا وضعت استعلام 2019 (والذي يحتوي على 7 سجلات كما رأينا اعلا) ، ووضعت الاستعلام 2018 كذلك ، فيصبح بهذه الطريقة : . هذا الاستعلام يأخذ حوالي ثانيتين في تنفيذه ، ورجاء تجربته 3 مرات للحصول على متوسط وقت التنفيذ 🙂 واترك لكم تجربة الاستعلام qry_DSum_Egaza_9 ، رجاء تجربته 3 مرات كذلك ، وكل من يشارك في هذا الموضوع ، رجاء اعطائنا وقت التنفيذ 🙂 رجاء لا تستخدم الكود في حساب الوقت ، وانما افتح الاستعلام يدويا ، 3 مرات 🙂 اما الاستعلام qry_DSum_Egaza_8 ، فلا انصحك بتجربته ، إلا اذا ما كان عندك شغل آخر تعمله 😁 جعفر استعمل سجلات هذا الملف لتجاربك: --------------------------------------------------------------------------------------------------- هذا مثال آخر يؤيد الفرق في سرعة الاستعلام بين الطريقتين : 1475.Dont_use_DlookUp_DSum_in_Query.accdb.zip
  9. الدكتور حسنين 🙂 شكرا لك على الربط بين الاكسس وبعض الامور الاخرى التي لا يمكن استعمالها بواسطة الاكسس مباشرة ، والرابط مثل ما تفضلت هو برمجة من vb.NET مثلا 🙂 اذا ممكن ، ولكي تزداد الفائدة ، رجاء ارفاق كود vb.NET كذلك ، حتى يمكن للاعضاء الاستفادة منه كذلك 🙂 يعني بكلام آخر ، نريد نسخة اخرى من دكتور حسنين تفكر في هذا المجال 😅😁 جعفر
  10. انا اعمل على مثال الآن 🙂 وسأخبركم هنا بالموضوع الجديد ان شاء الله 🙂 جعفر
  11. يوما ما ، انا احتجت الى مثل هذا التذكير ، وبعد البحث ، اتضح لي ان الاكسس ليس الاداة المناسبة لهذا العمل ، نعم يمكن تطويعه ، ولكن هناك ادوات افضل ، خليني اشرح الفرق : في الاكسس ، يجب عمل كود لتفقد ساعة الوندوز ، كل دقيقة مثلا ، ولكن هذا الكود واقعا يجعل الاكسس يعمل طوال الوقت في الخلفية ، فهو يتاكد من انتهاء الدقيقة ، وبعدها ينظر للكود لعمل المطلوب. وحتى لو عملت هذا البرنامج ، فسيكون في نسخته الاولى 🙂 بينما هناك برامج للوندوز ، تعمل بساعة الوندوز (حتى والاكسس مغلق) ، ولا تستهلك قوى اضافية من المعالج CPU ولا يأخذ ذاكرة RAM زيادة ، وقد جربه الكثيرون ، ووصلوا بالتعديل عليه الى النسخة الفلانية. اليك روابط بعض هذه البرامج المجانية: https://www.microsoft.com/en-us/p/hourly-reminder/9nblggh0d6rb?activetab=pivot:overviewtab# https://www.wisecleaner.com/wise-reminder.html وقائمة عن برامج اخرى مجانية https://techwiser.com/9-best-reminder-apps-for-windows وقد قام الاخ @Amr Ashraf بعمل موضوع ، ويمكن الاستفادة منه مباشرة لغرضك ، وبدون اكواد ، مجرد اختيارات : ولا ننسى الهاتف الجوال ، فهو كمبيوتر متنقل وشغال 24 ساعة ولا يفارقنا ، وهذا رابط لبرنامج للاندرويد : https://play.google.com/store/apps/details?id=com.kittoboy.repeatalarm&hl=en_US&gl=US قد يكون احتياجك يضطرك لإستخدام الاكسس ، فإن كان كذلك ، فأتمنى ان يهب الاعضاء ممن له الخبرة في هذا المجال للمساعدة 🙂 جعفر
  12. في الواقع الاوامر dlookup او dsum عبارة عن استعلام 😁 افتح موضوع جديد ، و ارفق مثال به بيانات وبه الاستعلام الذي به الاوامر dlookup او dsum ، وضع الرابط هنا ، حتى اعرف الموضوع الجديد ، و ادلو به بدلوي 🙂 جعفر
  13. الظاهر كان المفروض ان اعطي مثال على كلامي 🙂 ومثل ما قال اخي @ABOLO2 ، وهذا مثال آخر : . لا لا لا يا دكتور ، انت وقعت على مشكلة اسوأ ، وهي وجود الاوامر Dlookup و DSum في الاستعلام !! ارسل لي احد اصحابي برنامجه لأعالج بطئ الاستعلام ، واذا به الامر Dlookup ، ومجموع البيانات كانت حوالي 100,000 معلومة !! كنت اشغل الاستعلام ، واروح اعمل شاي ، ولما ارجع بعد 28 دقيقة ، كان عندي وقت كفاية آخذ شفطتين من الشاي ، وبعدين تظهر النتائج 😀 والحل كان ، بأن اعمل استعلام A يظهر البيانات بدل الامر Dlookup ، وفي الاستعلام الاخير B ، اربط معايير الاستعلام A بجداول الاستعلام B ، وتظهر النتائج في وقت جدا قصير 🙂 جعفر
  14. وعليكم السلام استاذ وائل 🙂 يا ريت توضح ما الذي تريده بالضبط ، حتى يستطيع الاعضاء مساعدتك 🙂 جعفر
  15. وعليكم السلام 🙂 حيا الله اخوي محمد 🙂 في الواقع عمل هذا النوع من المجاميع في الجدول او الاستعلام ، يبطئ عمل الجدول والاستعلام ، ولا ارى فائدة منه ، إلا اذا تسمح للمستخدم ان يرى البيانات في الجدول ، وهذه كارثة 😱 جعفر
  16. وتكملة لكود اخي المهندس قاسم ، في حال لم يكن هناك صورة في المسار: Private Sub Form_Current() on error goto err_Form_Current Dim Path As String Path = Application.CurrentProject.Path & "\img\" Me![صورة0].Picture = Path & "1.jpg" Exit_Form_Current: exit sub err_Form_Current: if err.number=2220 then 'No image in path Me![صورة0].Picture = "" resume next else msgbox err.number & vbcrlf & err.description resume Exit_Form_Current end if End Sub جعفر
  17. وعليكم السلام 🙂 علشان تختار اكثر من اسم ، عندك اختيارين: 1. السجل تعمل فيه حقل iSelect من نوع نعم/لا ، ثم تعمل نموذج مستمر ، ويمكنك ان تختار اكثر من سجل/اسم. 2. تعمل مربع خيار ListBox ، ثم تجعل خيارات . فتستطيع بالنقر مرة على الاسم ان تختاره او تلغي الاختيار . وتضع احد الاختيارين في نموذج رئيسي ، وتعمل بقية الحقول المطلوبة ، والتي لا تكون مرتبطة بجدول ، وبعد اختيار الاسماء وتعبئة الحقول ، يكون عندك زر لتفريغ هذه البيانات في الجدول لهذه الاسماء ، سواء ان تُلحق سجل جديد ، او تعمل تحديث لسجل موجود ، كود الزر يعمل حلقة دوران للاسماء ، ويُدخل بيانات الحقول 🙂 جعفر
  18. وعليكم السلام ورحمة الله وبركاته 🙂 . 1. سبب ظهور هذه الرسالة هو ان برنامج الاكسس على كمبيوتر المكتب (الكمبيوتر الذي عملت عليه البرنامج) ، فيه نسخة احدث من نسخة البيت ، القاعدة العامة هي: اعمل برنامجك على اقل/اصغر/اقدم نسخة ممكنه ، حتى تستطيع النسخ الاكبر/الاحدث ان تفتحه في وضع التصميم. 2. المفروض ان لا يحدث هذا (ولا علاقة لهذا باختلاف النسخ) ، فأكيد هناك كود او استعلام يقوم بهذا !! جعفر
  19. وعليكم السلام 🙂 عندك طريقتين لكي "تحدد اليوم الذي يريدة الذي يبدأ الشهر منه" : 1. المعيار في الاستعلام مباشرة (يجب ان تكون الكتابة نفسها في المكانين) : . ولما نستخدم الكلمات العربية : . هذا هو الكود: Between [Please enter FROM date] And DateAdd("m",1,[Please enter FROM date])-1 . 2. في النموذج frm_Main في الحقل Date_From : فيكون المعيار في الاستعلام : . Between [Forms]![frm_Main]![Date_From] And (DateAdd("m",1,[Forms]![frm_Main]![Date_From])-1) . وهذا الكود DateAdd("m",1,[Forms]![frm_Main]![Date_From]) معناه اضف : m = شهر 1 = المدة التي نريد ان نضيفها [Forms]![frm_Main]![Date_From] = على هذا التاريخ فيعطينا شهر واحد بعد هذا التاريخ ، ولكنك تريد شهر ناقصا يوم واحد ، لهذا السبب نضيف 1- في نهاية الامر جعفر
  20. وعليكم السلام 🙂 اخي عمر ، هذا سؤالك ، وكلما وضحته اكثر ، وبأمثلة ، سترى ان رد الاعضاء اسرع وادق 🙂 سؤالك مافيه سؤال ولا شرح وانما مجرد نموذج والسلام !! جعفر
  21. السلام عليكم 🙂 هذه الرسالة تظهر بسبب اعدادات اللغة الداعمة لـ Unicode في كمبيوترك ، وهكذا تغيرها ، ليشتغل برنامج @Eng.Qassim : جعفر
  22. حيا الله دكتور حلبي 🙂 في الواقع هذا سؤال لا حدود له ، فكل شيء في برنامجك وبرمجتة ، يصب فيه !! وفي كل مشاركة اضعها ، اشرح فيها ميزاتها وعيوبها 🙂 خذ مثال من الموضوع الذي نحن به الآن: عادة في استعمال الامر Recordset : المبرمج عادة يستعمل Set rst_fy = currentdb.openRecordset("Select * From tbx") بينما انااستعملت Set rst_fy = Forms!fxy!fy.Form.RecordsetClone . والاثنين يعطون نفس النتيجة ، ولكن الفرق بينهم كبير ، فالطريقة الاولى ، البرنامج يذهب الى الجدول لأخذ جميع بياناته ، ووضعها في المتغير rst_fy ، بينما مفهوم الطريقة الثانية: بما ان النموذج الفرعي fy عند فتحه ، فقد اخذ جميع بياناته من الجدول ، مفلترة وجاهزة ، فلماذا اشغل الشبكة والجدول بأخذ البيانات منه مرة اخرى ، بينما يمكنني اخذ هذه البيانات من النموذج مباشرة ، فهو اسرع (لأنه على كمبيوتري) ، ولا يشغل الشبكة او الجدول 🙂 وهذا مثال اشرح فيه كيف البرمجة لها تأثير في سرعة عمل الاستعلام : جعفر
×
×
  • اضف...

Important Information