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

نجوم المشاركات

  1. ابوخليل

    ابوخليل

    أوفيسنا


    • نقاط

      5

    • Posts

      12,177


  2. AbuuAhmed

    AbuuAhmed

    الخبراء


    • نقاط

      4

    • Posts

      976


  3. lionheart

    lionheart

    الخبراء


    • نقاط

      3

    • Posts

      664


  4. Eng.Qassim

    Eng.Qassim

    الخبراء


    • نقاط

      2

    • Posts

      2,302


Popular Content

Showing content with the highest reputation on 08 مار, 2023 in all areas

  1. نعم كل ما ذكرت صحيح .. والاصل ان قاعدة البيانات الخلفية غير قابلة للتحديث ابدا المبرمج صاحب الخبرة مع العملاء .. يحتاط بوضع حقل او حقلين زائدين في الجداول الاساسية المتغيرة .. ( وهذا ينبع من الخبرة باحتمالية الحاجة اليها ) اذا التحديثات في القاعدة الخلفية كبير فهذا يسمى تطوير وليس تحديث . ويعالج بعمليات خاصة مثل تصدير البيانات المهمة التاريخية وغالبا لا تزيد عن 3 الى 4 جداول ثم تركيب البرنامج الجديد المطور ثم اعادة استيراد البيانات . من تجربتي : لدي برنامج يعمل لدى العملاء من سنين ... اجريت عليه الكثير من التحديث في البداية ، ثم بعد سنوات قمت بتطويره وذلك بدمج برنامجين آخرين معه ... البرنامج خاص بحضور الطلاب ثم دمجت معه برنامجا خاصا بالوكيل لرصد والتعامل مع مخالفات الطلاب وبرنامجا ثالثا تحفيزيا لجمع النقاط وحصد الجوائز والشراء . عندما تطلب المدرسة البرنامج الجديد المطور ... يتم تنصيبه على الجهاز بمسى آخر بحيث تبقى قاعدة بيانات الجداول القديمة على الجهاز ومن البرنامج الجديد يتم استيراد البيانات حسب الرغبة على النحو التالي : 1-اسماء الطلاب وبياناتهم من جدول الاسماء ( الكل او الحالية ) 2- بيانات الحضور والانصراف التاريخية 3- بيانات رسائل ( sms ) الغياب ورسائل المخالفات الى اولياء الامور 4- بصمات الطلاب عادة يكتفون بجلب اسماء الطلاب وبياناتهم الحالية ( الموجودون فعلا ) وبصماتهم . لأن بيانات الاعوام السابقة محفوظة ببرنامج الوزارة الرسمي هذا الاجراء يجب على المبرمج اخذه بالاعتبار مهما كان نوع النشاط ( اجتماعي او مالي ... الخ)
    3 points
  2. رغم اني لم اعمل برنامج لزبون في حياتي ..ربما فقط على المستوى الشخصي بالتأكيد حينما تعطي الزبون البرنامج تقوم بتقسيم القاعدة الى امامية وخلفية .. بعد فترة ..يريد الزبون اضافة بعض الامور الى النماذج او التقارير ..وهذا يتم بالهاتف طبعا ...تقوم انت بالتعديل على النسخة لديك (طبعا مقابل اجر اضافي ) وتبعثها له عن طريق الايميل مثلا ليستبدلها بدلا من القاعدة الامامية لديه (لم اجربها ...فهل سترتبط بقاعدة الخلفية اوتماتيكيا؟) لكن المشكلة التي افكر بها ..هي اذا اراد الزبون اضافة بعض الجداول ..وهو عنده سجلات بالهبل من عدة سنوات انا استطيع عمل الجداول الاضافية بنسخة القاعدة عندي ..لكن حينما ابعثها للزبون ..كيف سيتم تصدير الجداول الاضافية الى القاعدة الخلفية ؟ في عقلي الا شغلة واحدة ..ان يبعث القاعدة الخلفية واجري عليها اضافة الجداول !!
    2 points
  3. The pivottable in worksheet Total is working well. What's the problem
    1 point
  4. Before this line shTarget.Range(columnMappings(i)).Resize(UBound(arr, 1), UBound(arr, 2)).Value = arr you can add this line shTarget.Range(columnMappings(i)).Resize(UBound(arr, 1), UBound(arr, 2)).ClearContents
    1 point
  5. تفضل الملف بعد التعديل <><><><><><><><<><><> ‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏HR19-2-2023.rar
    1 point
  6. شكرا استاذي بحاول واعطيك خبر وسامحني لقلة الخبرة زادكم الله علما وقبولا
    1 point
  7. طيب يا استاذي الكريم :::: من اساس الفكرة هي استعلام الحاق :::: تم الحاق اصحاب الفترة المسائية ثم الحاق اصحاب الفترة الصباحية وهذا ما مان في المرفق السابق احتجنا استعلام ثالث وهو الحاق اصحاب الفترة الثانية ( الدوام الثاني ) فاضفت لك هذا الاستعلام الثالث انظر الكود وقارن بالكود السابق .... DoCmd.SetWarnings False CurrentDb.Execute ("Delete * From EnEx1") 'استعلام الحاق اصحاب الفترة المسائية DoCmd.RunSQL "INSERT INTO EnEx1 ( ID, Ddate, ExDate, EnDate ) SELECT EnEx.ID, EnEx.Ddate, [Ddate] & "" "" & [ExDate] AS ex, [Ddate] & "" "" & [enDate] AS en FROM EnEx WHERE (((EnEx.EnDate)<>#12/30/1899 23:0:0#) AND ((EnEx.ExDate)<>#12/30/1899 23:0:0#));" 'استعلام الحاق اصحاب الفترة الصباحية DoCmd.RunSQL "INSERT INTO EnEx1 ( ID, Ddate, ExDate, EnDate ) SELECT EnEx.ID, EnEx.Ddate, [Ddate]+1 & "" "" & [ExDate] AS ex, [Ddate] & "" "" & [enDate] AS en FROM EnEx WHERE (((EnEx.EnDate)=#12/30/1899 23:0:0#));" 'استعلام الحاق اصحاب الفترة( الدوام الثاني ) DoCmd.RunSQL "INSERT INTO EnEx1 ( ID, Ddate, ExDate, EnDate ) SELECT EnEx.ID, EnEx.Ddate, [Ddate] & "" "" & [ExDate2] AS ex, [Ddate] & "" "" & [enDate2] AS en FROM EnEx WHERE (((EnEx.EnDate2) Is Not Null));" DoCmd.SetWarnings True DoCmd.OpenQuery "Tat_kan", acViewNormal ملاحظة:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: لن يعمل معك بالشكل الصحيح عند التطبيق الان ( حاول تعرف السبب ) .... ههههههه تحتاج تغيير جدول EnEx1 حاول .... وسوف ادرج لك الملف بعد ربع ساعة من الان .... لكسب الوقت ....
    1 point
  8. ربما Sub test2() Dim a Dim LR& a = Sheets("sheet1").Cells(13, 2).CurrentRegion With Sheets("sheet2").Cells(10, 4) LR = Cells(Rows.Count, 4).End(xlUp).Row .Resize(LR, 3).ClearContents .Offset(, 8).Resize(LR).ClearContents .Offset(, 10).Resize(LR).ClearContents .Offset(, 12).Resize(LR).ClearContents .Resize(UBound(a) - 1, 3) = Application.Index(a, Evaluate("row(2:" & UBound(a) & ")"), Array(2, 3, 4)) .Offset(, 8).Resize(UBound(a) - 1) = Application.Index(a, Evaluate("row(2:" & UBound(a) & ")"), 7) .Offset(, 10).Resize(UBound(a) - 1) = Application.Index(a, Evaluate("row(2:" & UBound(a) & ")"), 10) .Offset(, 12).Resize(UBound(a) - 1) = Application.Index(a, Evaluate("row(2:" & UBound(a) & ")"), 5) End With End Sub
    1 point
  9. نسخة أخرى بعد تعديل على حدث التراجع. أجر وعافية أخي العزيز ، شافاك الله وعافاك وأرجعك لنا سالما معافى.
    1 point
  10. ارفع مثالك عزيزي وستجد العون من الجميع إن شاء الله.
    1 point
  11. حلمك ابا احمد صاحب الموضوع هو من يلام على عدم المبادرة وسرعة الاستجابة ، لانه الوحيد المستفيد في الوقت الحاضر والذي يهمه الموضوع ومع ذلك نلتمس له العذر ... فهو بعيد في اليمن .. فقد لا يتهيأ له الانترنت على مدار الساعة .. والغايب عذره معه علما انني من البداية اظهرت له عدم قناعتي بطريقة التصميم ، لأنها لا تنتمي الى اكسس ، بل هي اقرب الى بيئة اكسل
    1 point
  12. 1 point
  13. حركوا ساكن ، لماذا الصمت؟!! توجد مشكلة في الإجراءات السابقة لإجراء التوسيط ، لماذا لا تراجعونها وتحاولون حلها؟ إجراء التوسيط يعمل بكل كفاءة، فقط أضفت سطرا واحدا لحل جزئية سببها الإجراءات السابقة ليتفادى الصناديق التي عرضها صفر ليصبح كالتالي: For Each Ctl In Me.Controls With Ctl If .Width <> 0 Then If .Left < minX Then minX = .Left If .Left + .Width > maxX Then maxX = .Left + .Width End If End With Next Ctl هذه آخر مشاركة لي في هذا الموضوع.
    1 point
  14. جزاك الله خير اخوي موسى صاحب الموضوع يتحدث عن هذا . وتصور اخونا قاسم بان يطلب ان يرسل العميل له قاعدة الجداول فيعمل عليها التحديثات .. هي آمن الطرق ولكن نبحث مع الأمان ان تكون المسألة عملية سهلة وسلسة ويقوم العميل بها بنفسه . وهذا ما اشرت اليه في مشاركتي السابقة .. من خلال استيراد البيانات من القديم بالنسبة لموقع الجداول والربط الآلي .. فلسنا بحاجة الى اكواد للربط .. فموقع البرنامج مفروض وموجه سلفا ... من خلال التنصيب ... ومع ذلك وجود الكود وظهور مربع حوار يطالب بربط الجداول شيء اساسي في كل برنامج . التجارب تفتق الذهن لعمل ضبط متكامل مع ان اكثر ما اعمله باستمرار هو تحديث الواجهات ، فاني ارسل الواجهة الجديدة للعميل بملف تنفيذي ، وعلى العميل تشغيله فقط ومن خلالها تتم عملية الاستبدال . برامجي اقوم بتنصيبها اما في مجلد C:\Program Files او على محور C:\ مباشرة واستثني قاعدة الجداول من الازالة فيما لو تم الغاء التنصيب بمعنى لو قمت بالغاء التنصيب فسوف يتم حذف جميع ما بداخل مجلد البرنامج ما عدا قاعدة الجداول
    1 point
  15. سبق وأن شاركت في موضوع لك سابق لنفس المشكلة ، ثم اختفيت دون أن تذكر النتيجة. لا بأس يا أخي ، لتختصر الوقت والجهود ارفع مثالا به مشكلتك وسنقوم بحلها وتوضيح السبب.
    1 point
  16. ليش متشائم ؟ 😅🖐🏼️ يوجد طرق عديييييييييدة وليست طريقة واحدة .. 😏 مثلا هذي طريقتي في عمل تحديثات وتوزيعها على جميع الأجهزة الرتبطة أوتوماتيكيا .. ولكنها طريقة قديمة وعملت لها تحديثات .. وأنوي تنزيل موضوع جديد إن شاء الله بآخر التحديثات 🙂
    1 point
  17. You can change this line Set rng = Range("H9:N" & Cells(Rows.Count, "H").End(xlUp).Row) to Set rng = Selection Now you can select one cell or more and run the code to do the task for you
    1 point
  18. تفضل أخي الكريم Private Sub TextBox3_Change() TextBox4 = IIf(TextBox1 = "", 1, TextBox1) * IIf(TextBox2 = "", 1, TextBox2) * IIf(TextBox3 = "", 1, TextBox3) End Sub Private Sub TextBox2_Change() TextBox4 = IIf(TextBox1 = "", 1, TextBox1) * IIf(TextBox2 = "", 1, TextBox2) * IIf(TextBox3 = "", 1, TextBox3) End Sub Private Sub TextBox1_Change() TextBox4 = IIf(TextBox1 = "", 1, TextBox1) * IIf(TextBox2 = "", 1, TextBox2) * IIf(TextBox3 = "", 1, TextBox3) End Sub بالنسبة لـ 0.25*0.23*0.26 يضرب تماما ولكن اعتقد انه يجب عند كتابة الرقم تبدأ بـ 0 تم . ثم بقية الرقم
    1 point
  19. شكرا لكم اساتذتي الافاضل @Moosak @ابوبسمله تم الأمر بنجاح جزاكم الله خيرا .. وبارك فيكما أسأل الله أن يدخلكما جنته الفردوس الاعلى
    1 point
  20. لا أعتقد .. ضع مثال (مرفق) أستاذنا العزيز @أبو عبدالله الحلوانى 🙂
    1 point
  21. بسم الله الرحمن الرحيم تحياتى الى الجميع من الملاحظ انه توجد بعض اوامر ال ( VBA ) لانستخدمها بكثرة فى مشاركتنا بل توجد الكثير من الاوامر التى لم تستخدم بالمرة فى معظم المنتديات العربية واحببت ان يشترك معى الاخوة الاعضاء فيما ارى ان نادر الاستخدام لنتعرف على بعض الاوامر Converting From Relative to Absolute اليوم نبدأ بأمر يسمح بتحوبل العناوين من عنواوين مطلقة الى نسبية والعكس . ولتتعرف كيف يعمل هذا الامر شاهد المرفق Converting_From_Relative_to_Absolute.rar
    1 point
×
×
  • اضف...

Important Information