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

Foksh

أوفيسنا
  • Posts

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

  • Days Won

    194

مشاركات المكتوبه بواسطه Foksh

  1. 7 دقائق مضت, mohammed farhat said:

    error_01.JPG

    هذا ما يظهر عندي كمثال 

    و هذا مثال أخر 

     

    error_02.JPG

    اما ما ارفقته انا كصورة في البداية فهو الشكل الصحيح للكلام بعد تعديل الاتجاه و انا لا اعرف كيف اظهره هنا في المنتدي كما اوضحت في أول صورة لي 

     

    كلامك صحيح وسليم 100% ، لأنك تستعمل واجهة الموقع باللغة الإنجليزية ، فسوف تكون المحاذاة تلقائياً من اليسار لليمين ، و99.999% من المواضيع هنا تكتب ويساق فيها الحديث باللغة العربية ، لذا بدل واجهة الموقع الى العربية من أسفل الصفحة ، وستجد أن المشكلة تم حلها 😉

  2. 4 ساعات مضت, omran2015 said:

    ولدي عدة ملحوظات وهى:

    1/ مشكلة القفز في الترتيب ولو تلاحظ أن الترتيب يظهر هكذا

    بسيطة أخي الكريم ..

     

    يعني انت تريد إظهار الطلاب الذين في المركز الرابع مثلاً جميعهم بالتمييز بينهم ( متكرر ) !!!!!!!

    انا لم أقترب من الدالة التي قمت بإنشائها ، حرصاً على أنه قد يكون مطلبك .. لكن بعد التوضيح ، إليك التعديل الذي تم على الدالتين أولاً :-

    Public Function fncTrteeb()
        Dim rst As Object
        Dim RankNumber As Long
        
        ' تصفير الحقل أولاً
        CurrentDb.Execute "UPDATE Q_top10 SET trteeb = Null"
        
        Set rst = CurrentDb.OpenRecordset("SELECT * FROM Q_top10 ORDER BY average DESC, StudentID ASC", 2)
        
        If rst.RecordCount = 0 Then Exit Function
        
        rst.MoveFirst
        RankNumber = 0
        
        Do While Not rst.EOF And RankNumber < 10
            RankNumber = RankNumber + 1
            
            rst.Edit
            rst!trteeb = GetArabicRank(RankNumber)
            rst.Update
            
            rst.MoveNext
        Loop
        
        rst.Close
        Set rst = Nothing
    End Function
    
    Public Function GetArabicRank(ByVal n As Long) As String
        Select Case n
            Case 1: GetArabicRank = "الأول"
            Case 2: GetArabicRank = "الثاني"
            Case 3: GetArabicRank = "الثالث"
            Case 4: GetArabicRank = "الرابع"
            Case 5: GetArabicRank = "الخامس"
            Case 6: GetArabicRank = "السادس"
            Case 7: GetArabicRank = "السابع"
            Case 8: GetArabicRank = "الثامن"
            Case 9: GetArabicRank = "التاسع"
            Case 10: GetArabicRank = "العاشر"
            Case Else
                GetArabicRank = "المركز " & n
        End Select
    End Function

     

    والإستعلام سيصبح بهذاالشكل :-

    SELECT TOP 10 S.StudentID, S.StudentName, S.ClassName, S.SETNO1, F.SemesterID, F.TotalSum, F.average, F.Grade, GetArabicRank((
          SELECT COUNT(*)
          FROM TBL_Final1 AS F2
          INNER JOIN TBL_Students AS S2 
          ON F2.StudentID = S2.StudentID
          WHERE 
              F2.SemesterID = F.SemesterID
              AND S2.ClassName = S.ClassName
              AND (F2.average > F.average 
                   OR (F2.average = F.average AND S2.StudentID < S.StudentID))
        ) + 1) AS RankText
    FROM TBL_Students AS S INNER JOIN TBL_Final1 AS F ON S.StudentID = F.StudentID
    WHERE F.SemesterID = [أدخل رقم الفصل]
        AND S.ClassName = [أدخل اسم الصف]
    ORDER BY F.average DESC , S.StudentID;

     

    في الاستعلام القديم كان المنطق هو ( احسب كم طالب معدله أكبر مني ) ؟؟

    فإذا كان هناك طالبان معدلهما متساوٍ ( مثلاً 91% ) ، فإن كلاهما سيجد نفس العدد كترتيب من الطلاب المتفوقين عليهما ، وبالتالي يأخذان نفس الرقم ( مثلاً المركز 2 ) ، ثم يقفز الترتيب للمركز 4 مباشرة .

    أما في الاستعلام المعدل ، إذا تساوى طالبان في المعدل ، انظر لرقم الطالب ؛ صاحب الرقم الأصغر يعتبر هو الأسبق .

    :excl: وبالنسبة لي هذا غير منطقي ، فلا بد من شرط ثاني لتحديد المنافس على نفس المركز !!!!

     

    💥 وفي هذا الموضوع هنا ، قد تطرقنا مع مشاركة أخي @ابو جودي لنفس الفكرة تقريباً .

     

    وملفك بعد التعديل :-

    Data_Base.zip

  3. اهاااا ، بعد متابعة النتيجة ، وجدت أنه يأتيك بجميع الطلاب للفصل الأول والصف الثامن وعددهم 16 على سبيل المثال .. وأنت تريد فقط 10 :biggrin:

    جرب هذا الإستعلام التالي :-

    SELECT TOP 10 S.StudentID, S.StudentName, S.ClassName, S.SETNO1, F.SemesterID, F.TotalSum, F.average, F.Grade, (
          SELECT COUNT(*)
          FROM TBL_Final1 AS F2
          INNER JOIN TBL_Students AS S2 
          ON F2.StudentID = S2.StudentID
          WHERE 
              F2.SemesterID = F.SemesterID
              AND S2.ClassName = S.ClassName
              AND F2.average > F.average
        ) + 1 AS RankOrder
    FROM TBL_Students AS S INNER JOIN TBL_Final1 AS F ON S.StudentID = F.StudentID
    WHERE F.SemesterID = [أدخل رقم الفصل]
        AND S.ClassName = [أدخل اسم الصف]
    ORDER BY F.average DESC, S.StudentID ASC; 

     

    • Like 1
  4. بدايةً ، وعليكم السلام ورحمة الله وبركاته ..

    لديك نقطة واحد فقط كان عليك إدراكها . وهي إضافة الحقل ClassID من الجدول F ، وجعل الشرط [أدخل اسم الصف] له وليس للحقل ClassName من الجدول S . قبل تجربة المرفق ، جرب دون النظر للمرفق حتى تفهم المقصود من كلامي ..

     

    مع العلم أن ملفك يعمل معي بشكل سليم باستخراج الأوائل . إلا إن كان هناك نقطة لم تتوضح في شرحك 😀

     

    Data_Base.zip

  5. 1 ساعه مضت, mohammed farhat said:

    جزاكم الله كل خير 

    هل هناك حل لمشكلة ظهور الكلمات باللغة  الانجليزية عند استخدمها داخل الجملة باللغة العربية 

    لان عند استخدام اي كلمة انجليزية في وسط الجملة تظهر في المنتدي بشكل مختلف عما كتبه الكاتب 

    و مثال على ذلك الصورة الاخيرة التي رفعتها و البوست السابق للمهندس فادي 

    أين المشكلة لم أفهم بعد 😅

    في البوست الأخير لي لم أر مشكلة في موضع الكلمات ، ولا حتى في الصورة التي ارفقتها ..

    لإذا كان اتجاه النص ومحاذاته من اليمين لليسار وكان يتخلله كلمات أنجليزية فستظهر بمكانها الصحيح 100% . ولكن وللتجربة اجعل النص عربي ولكن محاذاته واتجاهه من اليسار لليمين فستجد أن الكلمة الأنجليزية قد انتقلت لنهاية السطر بدلاً من بدايته مثلاً .. انظر الصورة للتوضيح أكثر

     

    image.png.97873e1165ce9a12bce823e6de683cb8.png

  6. 11 ساعات مضت, mohammed farhat said:

    هل ممكن توضيح النقطة التالية  كما وضحتم الامر مع ال gmail

    باختصار شديد :-

    ضرورة فتح برنامج Outlook في الكمبيوتر الذي تريد استعمال الأداة فيها . وتقوم بتسجيل بريدك الذي ستستعمله في الإرسال من Outlook فقط .

    السبب هنا أننا سنستعمل السيرفر أو الخدمة المدمجة في مايكروسوفت نفسها والمنفذ نفسه الذي يستعمله برنامج Outlook بشكل خفي خلف الكواليس .. فقط لا غير .

     

     

  7. 3 دقائق مضت, حافظ التونسي said:

    اما DMAX  هل من الممكن ان تشرح لي كيف و اين اضعها حتى يبقى الرقم مطابقا و لكم جزيل الشكر

    سؤالي الذي أريد منك إجابة مقنعة له حتى نصل إلى جوهر المشكلة لنجد لها حلاً ..

    لماذا تشترط أن يكون الترقيم مرهوناً ومقروناً ومساوياً بعدد السجلات التي لديك ..

    يعني لو حذفت السجل رقم 4 من أصل السجلات 1500 والتي هي فعلاً تطابق الترقيم ، فهل تريد أن يكون الترقيم للسجل الجديد = 1500 :blink:

    أما لاستخدام الدالة DMAX مثلاً ، فعليك أولاً تغيير نوع الحقل من ترقيم تلقائي الى حقل رقمي ، ثم في مربع النص داخل النموذج تستعمل الجملة

    = Nz(DMax("[BL n°]", "BL"), 0) + 1

    في القيمة الإفتراضية لمربع النص داخل النموذج .

  8. 1 ساعه مضت, حافظ التونسي said:

    و لما اغلقها و احاول الفتح من جديد الاحظ ان العداد يتقدم كما هوفي الصورة رقم 2

    وعليكم السلام ورحمة الله وبركاته ..

    نوع الحقل BL n° في جدول BL هو AutoNumber . أي ترقيم تلقائي .

    وهذا من الطبيعي يا صديقي لأنه عندما تدخل أي قيمة في أي حقل داخل الجدول ، فإن آكسيس يعتبره سجل جديد ويقوم بحجزه حتى عند حذفه أو إلغاء الإدخال والتراجع . يعني انت لو حذفت السجل رقم 2 من أصل السجلات الـ 6 التي لديك لتصبح 5 ، فإن السجل الجديد لن يكون رقمه 6 بل سيصبح 7 وهذا كله شأن الترقيم التلقائي .

    لذا استخدم للترقيم حقل رقمي باستعمال DMAX مثلاً .

     

    أما المشكلة الأولى التي ذكرتها لم تظهر عندي للأسف بعد فتح سجلات جديدة كثيرة

  9. New00.png.b57a897881fc32b5f4520aa6b41e52e2.png

    Momayzat.png.61c5e492e26488b9c32bf69bcdf5f252.png

    1. إصلاح مشكلة الإرسال على دفعات ، حسب الوقت الذي يقرره المستخدم من خانتي image.png.795f5699ad3ee9f3b81ea2a073f125e4.png .
    2. ضبط مشكلة Yahoo عند استلامه بريد من Gmail ، والسبب طبعاً في هذه المشكلة هو سيرفر الـ Yahoo نفسه لما يفرضه من قيود أمان .
      وحيث أنه يمكن للمستخدم اعتبار الإيميل Not Spam عند استلامه بريد من Gmail .
    3. إتاحة الإرسال من Outlook كما فعلنا في Gmail . حيث على المستخدم فقط تشغيل تطبيق الـ Outlook وتفعيل بريده مرة واحدة فقط لا غير . وبعدها لن نحتاج للتطبيق أبداً أو حتى فتح التطبيق بالخلفية أو بأي شكل من الأشكل . السبب في هذا هو عدم فرض قيود مايكروسوفت على المستخدم نهائياً .
    4. تحسين ردود الرسائل في الجدول Tbl_SentLog ، بحيث تكون أوضح للمستخدم عن سبب الخلل عند فشل الإرسال ، كي يتم التعامل مع الخلل بشكل مباشر .
    5. تحسين وإصلاح بعض النقاط الصغيرة .

     

    OpenSource.png.19447339bd1748afd11f0b92a58ed69e.png

    EmailSender V.2.0.accdb.zip

     

    • Thanks 1
  10. 14 ساعات مضت, mohammed farhat said:

    هل من الممكن ان يتم اضافة 
    اعدادات Outlook.com لهذا المشروع

    أهلاً بشمهندس محمد ، في حقيقة الأمر هناك مشكلة في الطريقة التي استخدمها حالياً مع Gmail لعدم توافقها مع سيرفر مايكروسوفت لما يفرضه من قيود محكمة وغريبة جداً بهذا الشكل ، لكن من قال أنني لا أسعى بأن تكون الأداة متكاملة 😁 ...

    فعلياً في الوقت الحالي ، جاري العمل على حل مشكلة استقبال سيرفر الياهو للرسائل المرسلة باعتبارها Spam ، ولكن هنا الأمر أيضاً مفروض جبرياً من نفس سيرفر الياهو ، ولكن حلها تقريباً شبه مكتمل الأوجه والتنفيذ ، أو للمستخدم المستقبل اعتبار البريد الوارد غير مزعج وبالتالي ستعود الرسائل التالية الواردة منه في صندوق الوارد مباشرة ، وهذا ما أشجعه حقيقة لعدم كسر قيود الحماية أو التجاوز عنها

     

    أما بخصوص البريد المرسل من مايكروسوفت عموماً ، فالفكرة قيد العمل إن شاء الله ، وقد تم إنهاء 70% من مرحلة التجارب ومتابعة الأخطاء . والنتيجة :-

     

    MuTest02.thumb.gif.b87a2a60e16b37312932efec34916c6d.gif

  11. 3 ساعات مضت, منتصر الانسي said:

    عمل رائع أخي @Foksh والحقيقة أنها المرة الأولى التي ينجح مع إرسال الإيميل بهذه السهولة

    حياك الله أخي منتصر .. :fff:

     

    3 ساعات مضت, منتصر الانسي said:

    لدي ملاحظتين الأولى غير مهمة وهي أن Yahoo يتعرف على الأيميل الصادر من التطبيق بأنه بريد إحتيالي ولا أدري إذا كان بالإمكان حل المشكلة

    في الحقيقة اعتقد أن هذه مشكلة تخص الياهو نفسه . السبب في عدم اهتمامي لموقع الـ Yahoo هو حتى أنه حالياً لا يقوم بفتح حساب جديد 😅😅 .. ولا يقبل تسجيل الدخول الى حسابي رغم انه يقول لي انه مستخدم بالفعل .

     

    3 ساعات مضت, منتصر الانسي said:

    اما الملاحظة الثانية أنه يجب تعديل السطر التالي

    أما ملاحظتك الثانية والمهمة ، وأشكرك على طرحها . فقد تركتها في حقيقة الأمر لغير الإلزام بالجدول حصراً ، وقد نوهت للقارئ أنه يستطيع اختيار أي جدول آخر يريده في مشروعه شريطة أن يقوم بإضافة حقل الإسم أولاً ثم الحقل الإيميل . يعني العمود الأول للإسم والثاني للإيميل ، والكود تلقائياً سيتعامل مع الحقل الثاني كمرسل له .

  12. تفضل أخي الكريم .. أولاً وجدت خطأ في اسم النموذج مصدر الشرط وهو رقم الحريف ليصبح في جميع الشروط التي يطلبها :-

    [forms]![F_BL]![ref_client]

    بدلاً من :-

    [forms]![BL]![ref_client]

     

    قمت بتعديل الاستعلام R_Solde_Finale_par_client ، ليصبح كالتالي :-

    SELECT T_Client.Ref_Client, 
           R_Total_vente_client_solde.Total_Vente AS TV, 
           R_Total_Recette_client_solde.Total_Recette AS TRC, 
           R_Total_Retour_client_solde.Total_retour AS TRT, 
           (Nz([TV],0)-Nz([TRC],0)-Nz([TRT],0)) AS Net
    FROM R_Total_Retour_client_solde 
    RIGHT JOIN ((R_Total_Recette_client_solde 
    RIGHT JOIN T_Client ON R_Total_Recette_client_solde.Ref_client = T_Client.Ref_Client) 
    LEFT JOIN R_Total_vente_client_solde ON T_Client.Ref_Client = R_Total_vente_client_solde.ref_client) 
    ON R_Total_Retour_client_solde.Ref_Client = T_Client.Ref_Client;

    والسبب هو أنه في الاستعلام النهائي أنت لم تقم بإضافة الحقل Ref_Client إليه

    الآن في النموذج في مربع النص Texte45 ، أصبح مصدره :-

    =DLookUp("Net","R_Solde_Finale_par_client","Ref_Client = " & [ref_client])

    وتستطيع أيضاً إضافة الدالة NZ لتلافي القيم الفارغة لتصبح مثلاً :-

    =Nz(DLookUp("Net","R_Solde_Finale_par_client","Ref_Client = " & [ref_client]),0)

    النتيجة :-

    MuTest01.gif.37cc0e20d559006acc023fb39ae10c42.gif

     

    ملفك بعد التعديل :-

    E G P_test.zip

  13. 55 دقائق مضت, حافظ التونسي said:

    السلام عليكم و رحمة الله و بركاته

     

    وعليكم السلام ورحمة الله وبركاته ..

    لمحاولة توصيل الفكرة بشكل أوسع للأخوة الذين سيقرأون موضوعك هذا ، دعني اسألك كم سؤال :-

    1. في الاستعلام R_Solde_Finale_par_client سيطلب منك ادخال رقم Ref ن ولنفترض اخترت القيمة 1 . فستكون النتيجة في الاستعلام =
      R_Solde_Finale_par_client
      TV TRC TRT Net
      42,812,000.00 31,801,050.00 1,010,950.00 10000000
    2. الآن انت تريد ان يتم عرض قيم محددة من هذا الاستعلام !! في أي مربعات نص ؟؟

     

  14. image.png.0b78eff404a44e6cfe38b32ce992747d.png

    small.Blue-check.png.685b9b4d755a1579b52 تم إضافة زرين جديدين لإضافة إيميلات متعددة لـ :-

    • النسخة الكربونية Cc - نسخة إلى
    • النسخة الكربونية المخفية Bcc - نسخة مخفية

    بحيث من خلال نفس النموذج الفرعي تستطيع اختيار أكثر من ايميل لترسل لهم نسخة من البريد الصادر ، كما هو الحال سابقاً من الزر الموجود عند خانة المرسل له .

     

    image.png.85867c7baf11b2d93ebaa75852ac5bd8.png

     

    AddSoon.png.02467578cf6047256d92d6468750f0e6.png

    small.Blue-check.png.685b9b4d755a1579b52 الملف المرفق مفتوح المصدر ..

    EmailSender 2026.zip

     

    05.png.8fe3b502e8827cbc9c5d0d0a8c4e8770.png

    كيف نحصل على SMTPPassword المقدم من Gmail ؟ إليك الطريقة خطوة بخطوة ببساطة .

    1. في متصفحك ، ادخل إلى ( إعدادات حساب Google ) .
    2. تحقق أولاً وقبل كل شيء من تفعيل ميزة ( التحقق بخطوتين ) أو ( 2-Step Verification ) في حسابك .
    3. ابحث في خانة البحث عن ( كلمة مرور التطبيق ) أو ( كلمات مرور التطبيقات )، او ( App Password ) ، حسب لغة الموقع لديك .
    4. ادخل كلمة المرور الخاصة بالإيميل الذي تريد استخدامه كإيميل مرسل .
    5. في خانة ( اسم التطبيق ) أو ( App Name ) ، أدخل اسم للتطبيق ، مثلاً ( SenderMailer ) . ثم انقر زر ( إنشاء أو Creat ) .
    6. الآن سيزودك الموقع بكلمة من 16 حرف ، انسخها والصقها في الحقل SMTPPassword .

     

    05.png.8fe3b502e8827cbc9c5d0d0a8c4e8770.png

    في المشروع ، سيتم انشاء إستعلام بإسم Qur_Foksh تلقائي . كل ما عليك فعله هو إضافة الأسماء والإيميلات الى الجدول Tbl_Emails ، ثم في الاستعلام إضافة حقل الإسم أولاً ثم حقل الايميل ثانياً ، كي يظهر معكم الإيميلات التي تم تسجيلها في النظام للإرسال داخل النموذج أو في نفس الاستعلام اختر الجدول الذي يحتوي الأيميلات ، وقم بإضافة حقلي الإسم والإيميل فقط.

  15. في العمليات الحسابية داخل أي معادلة أو مشروع .. من الأفضل أن يكون بدلاً من القيم الفارغة = استخدام الصفر 0 . لأننا عندما نتعامل مع جمع خليتين إحداهما رقم والأخرى فارغة فقد تتضارب العمليات الرياضية وتخطئ ويصبح ناتج الحقل أو الخلية قيمة غير صحيحة كما حصل معك .

    فليس من منطق الرياضيات أن تكون قيمة الصفر سالبة إلا أن كانت قيمة A2 كخلية = A1 + "-" حينها سينتج عنها 0- إذا كانت قيمة A1 = 0

     

    هذا من وجهة نظر غير ملزمة ، والحديث يختلف بعد إرسال الملف .

  16. 8 دقائق مضت, ابوخليل said:

    الف مليون شكرا لا تفي بحقك

    ابداع وحوكمة وجمال منقطع النظير

    نسأل الله الكريم ان يجعل عملك هذا خالصا لوجهه ، وأن يجزاك عنا وعن اخوانك خير الجزاء 

    العفو ، وجزيل الشكر لكم معلمي الفاضل أبو خليل على دعمكم المتواصل .. ونرجو من الله أن يوفقنا على دربكم وخطاكم :wub:

  17. 1 دقيقه مضت, mohammed farhat said:

    جزاكم الله كل خير بشمهندس فادي - دائما  سباق بباب الي الخير 

    ربنا يجازيك عنا كل خير و يزيدك من العلم النافع 

    العفو بشمهندس محمد ، وجزاكم الله خيراً إلى يوم الدين لكم ولوالديكم ولأمة محمد أجمعين ..  :fff:

×
×
  • اضف...

Important Information