اذهب الي المحتوي
أوفيسنا

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

  1. Foksh

    Foksh

    الخبراء


    • نقاط

      9

    • Posts

      3015


  2. ahmed draz

    ahmed draz

    03 عضو مميز


    • نقاط

      8

    • Posts

      164


  3. ابوخليل

    ابوخليل

    أوفيسنا


    • نقاط

      4

    • Posts

      12701


  4. Moosak

    Moosak

    أوفيسنا


    • نقاط

      3

    • Posts

      2166


Popular Content

Showing content with the highest reputation on 08/03/24 in مشاركات

  1. السلام عليكم ورحمة الله وبركاته 🙂 اليوم يسرني أن أقدم لكم فكرة مبتكرة لتصميم :: الصفحة الرئيسية للبرنامج مع قائمة جانبية متمددة :: بألوان جميلة وتصميم راقي وتحكم شامل بعدد عناصر القائمة والقوائم الفرعية لها 👌 وأهم شي استهلاك أقل كمية من البرمجة والأكواد في التصميم ✌ :: وبدون مقدمات نبدأ على بركة الله :: الفكرة الرئيسة للقائمة الجانبية هي : عمل نموذج فرعي مستمر يستمد بياناته من جدول بحيث أن جميع عناصر القائمة الفرعية عبارة عن سجلات هذا الجدول ، ومن خلال هذا الجدول يتم ترتيب مواقع العناصر من خلال الحقل الرقم Order وكذلك يتم تصنيفها إن كانت زر رئيسي أم فرعي من خلال حقل Main or Sub والأيقونات يتم تخزينها في حقل مرفقات ، وأما الأوامر التي ستنفذها الأزرار فهي مخزنة أيضا في الجدول وهي محصورة في الأوامر التالية ( فتح نموذج - فتح نموذج فرعي - فتح تقرير - فتح تقرير فرعي - إظاهر رسالة نصية) .. والخطوة التي تأتي بعد ذالك هي تصميم النموذج الذي سيضم هذه الأزرار ، ويراعي الترتيب + فرز الأزرار الرئيسية والفرعية في الظهور + التنسيق الشرطي الذي يلون الأزرار بالألوان المناسبة لكل حالة + كود لتنفيذ الأوامر الموكلة للأزرار + .... وهكذا ثم بعد ذلك تصميم نموذج شامل للتحكم بالأزرار .. :: وللاستفادة من هذا الملف :: ستحتاج لهذه العناصر فقط ، ( والباقي كله زيادات لغرض الشرح ) : :: وهنا يأتي شرح يوتيوبي كافي وافي مفصل عن التصميم :: وفيه أيضا فوائد إضافية مثل ( طريقة اختيار أيقونات متناسقة ، وإشارة للنماذج المتطورة الأخرى ) :: تحديثات جديدة :: قمت بتطوير النموذج ليحمل أزرار فرعية وأزرار فرعية من الفرعية بناءا على طلب بعض الإخوة 🙂 كما تم إضافة خاصية إمكانية فتح الماكرو للأزرار .. وكذلك مع إمكانية فتح النماذج والتقارير في وضع التكبير Maximize .. وهذه لوحة التحكم : :: وأخيراا ملف التحميل 🙂 :: ‏‏‏‏Modern Main Page With Main Menue And Sub Sub Btns - Moosak -Maximize-Macro.accdb ملاحظة مهمة : قد لا يعمل هذا النموذج بشكل جيد على النسخ القديمة من 2007 وما قبلها . :: ولا تنسونا من صالح دعواتكم الطيبة 🙂 🌹🌷 ::
    3 points
  2. بالنسبة لهذه النقطة تم حلها ، واعتقد ان الليبل أفضل في المؤقتات والقيم الوقتية لإنه غير قابل للتركيز كما هو الحال في مربع النص ستضطر لقفله وعدم تمكينه. وسيتم إرفاق النسخة الجديدة مع تخزين القيم كما هي في الجدول. أشكرك أخي أحمد على ذوقك 😇 وللأسف تم إنشاء جدول واحد كما قلت لك لتخزين القيم كما هي وبنفس التنسيقات في الجدول 😉 💡 بالنسبة للترميش كان سببه الصورة التي في النموذج.
    2 points
  3. وهذه فكرتي المتواضعة والقابلة للتطوير بشكل بسيط جداً ,, TEST_2.accdb
    2 points
  4. السلام عليكم لمسة جمالية مني لا تضاهي مجهود اخونا العزيز Foksh كما تم ضبط حساب ايجار الساعة مع اجمال المستحق بعمل Me.Refresh تابع المرفق لكبر حجم الصورة السابقة PlayStation.rar
    1 point
  5. استاذي ومعلمي الفاضل عمل ممتاذ وجميل جزاك الله خير وزادك الله من علمه بس حبيت انبه علي حاجه هل عداد الوقت في هذه الصوره كده مظبوط لاني سعر الساعه 60 جنبه مصري والساعه فيها 60 دقيقه المفروض سعر الدقيقه 1جنيه يبق المفروض ال 26 دقيقه كما في عداد الوقت الذي في الصوره سعرهم 26 جنيه وقروش او انا في شي مش فاهمه
    1 point
  6. تفضل من هنا : ترقيم منوع ستجد مطلوبك فيه
    1 point
  7. النسخة الجديدة والمطورة مع بعض اللمسات 1. حفظ القيم في الجدول من خلال زر جديد = Go 2. تمييز الجهاز المشغول باللون الأخضر ، وعند الإيقاف الؤقت باللون الأحمر ، وعند الأيقاف التام باللون البني . وعند الحفظ يعود الى اللون الأسود الباقي أتركه لكم لإكتشافه PlayStation.accdb
    1 point
  8. عليكم السلام اخي العزيز انت تتعامل مع جدول النظام رأيي وانت حر في الأخذ به من عدمه وهو ان تطبق الطريقة العلمية العملية الصحيحة كالتالي : 1- الاكتفاء بجدول واحد لجميع الطلاب .. فقط يتم اضافة حقل الصف من اجل التصفية 2- ستكون النتيجة تقرير واحد للجميع حسب المادة . اقصد ان جميع التقارير الأربعة سوف تختزلها في تقرير واحد فقط ستحتاج في النموذج الى مربعي تحرير للتصفية من خلالهما : الصف / المادة اذا ترغب في ان اعدل لك مثالك وفقا لهذه الطريقة فاخبرني
    1 point
  9. مشاء الله عليك استاذي ومعلمي الفاضل Foksh وعلي صبرك ذيما بجواب علي كل نقطه بسالها وبسعة صدر الله يجزيك الخير ويجعله في ميزان حسناتك ويزيدك صبرا وعلما وفعلا الرمشه التي في النموذج كانت من الصوره التي في الخلفية 😁
    1 point
  10. وعليكم السلام ورحمة الله اخي الكريم ibrteeb75 مرحباً بك معنا... لو تفضلت وقمت يشرح ماتريده بشكل أوضح حتى يستطيع الاعضاء والخبراء مساعدتك وشكراً لك
    1 point
  11. السلام عليكم ورحمة الله وبركاته انا عملت كل استطاعتي بس في مشكلة في الكود انا عملت ادراج للمثال الذي يعمل تقريبيا كما اريد وهما عبارة عن جدول G1 AND G2 ونموزجين F1 and F2 لمن اراد ان يطلع على المثال كيف يعمل انا عملت الفاتورة الرئيسية بدل F1 واستخدمت جدول G2 لتسجيل الاقساط وطبعا بسبب عدم معرفتي بالاكواد عند تعديل الاسماء في الكود اعطانى رسائل خطأ لم افهمها ارجو مساعدتى في تعديل الكود invoice to installment.rar
    1 point
  12. أنا المشكلة مش فاهم المطلوب أنا عملت جدول أسمة installments المفروض من جدول الحسابات نستخرج القيمة الكلية للفاتورة وموجود عدد اشهر الأقساط أنا عايز كود بالضغط على الزر يأخذ القيمة الكلية ويقسمها على عدد الاقساط ويضيف قيمة القسط مع تاريخ الاستحقاق وهو بداية اول شهر من تاريخ الفاتورة وكل شهر يت اضافة القسط
    1 point
  13. أخونا حسين العربى أنا لم أفهمك خطأ فكلنا فهمنا كلامك وطنشنا بالعربي كدة عارف ليه؟ لان تصميم البرنامج من البداية تم على أنه برتامج Stopwatch وأضاف اليه أخونا Foksh الحساب حسب التسعيرة وأن القاعدة في الواقع ليس لها أي جدول فهي عبارة عن نموذج وبعض الاكواد فقط وعند بحثي في بداية التصميم وجدت أن حساب الوقت في الاكسس وتخزينه صعب قليلاً بعكس التواريخ فهو يتعامل معها بكل سهولة فقمت بعمله على الشكل الذي نراه وعلية أظن من خبرتي الصفرية المتواضعة أنه يجب علينا تصميم القاعدة من جديد لتقوم بعمليات الحساب والتخزين والمكسب والخسارة واصدار التقارير و الفواتير إلا إذا خالفني أخي العبقري Foksh الرأي واستطاع أن يقوم بتحويل برتامج Stopwatch إلى قاعدة حقيقية تقوم بمهام قواعد البيانات المعروفة وتقبل صراحتي وشكرأً جزيلاً لك
    1 point
  14. السلام عليكم ورحمة الله أخي العزيز Foksh طبعاً أصبح العداد أفضل بدون (الرمش) الذي كان فيه أنت دائما مبدع بالإضافة لتشغيل كل عدادات الأجهزة في نموذج واحد وجزاك الله خيراً وبالنسبة للأخ حسين العربى تم تفعيل حقل إيجار الساعة لتتمكن من كتابة الرقم الذي تريده للإيجار TEST_3.accdb
    1 point
  15. الف شكر استاذي ومعلمي الفاضل Foksh وجزاك الله خير الجزاء وزادك الله من علمة وانا اسف ان كنت تقلت علي حضرتك وشكرا علي سعت صدرك لي طلب اخير استاذي الفاضل لماذا حقل عداد الوقت حقل تكست lblcounter1 وليس حقل نص غير منضم هل ممكن عمله حقل غير منضم لاني اريد تخزين البيانات في الجدول
    1 point
  16. تم استخدام الخاصية Tag لكل جهاز ، حيث ما يلي :- أزرار البدء والإيقاف Tag = Station1 للجهاز الأول ... وهكذا لكل جهاز ( Station2 ، Station3 ... إلخ ) مربعات النص والليبلات Tag = St1 للجهاز الأول ... وهكذا لبقية الأجهزة ( St2 ، St3 ... إلخ ) شرح الكود بشكل مبسط وليس تفصيلاً :- في البداية تم حجز متغيرات عامة قابل للتعديل لتخزين القيم الزمنية للعدادات الستة و لتحديد ما إذا كان العداد قيد التشغيل أم لا و لتحديد ما إذا كان العداد متوقف مؤقتًا أم لا و لتخزين القيم الزمنية عند توقف العداد مؤقتًا . وطبعاً العدد 6 قابل للتعديل كيفما تريد . Dim counters(1 To 6) As Double Dim isRunning(1 To 6) As Boolean Dim isPaused(1 To 6) As Boolean Dim pauseCounters(1 To 6) As Double في الحدث عند التحميل كود لجعل الأزرار بالتسمية التوضيحية Start , Stop ، والعدادات قيمتها الإفتراضية = 00:00:00 ، والفاصل الزمني = 1 ثانية ( 1000 ملي ثانية ) Dim i As Integer For i = 1 To 6 counters(i) = 0 isRunning(i) = False isPaused(i) = False pauseCounters(i) = 0 Me.Controls("lblCounter" & i).Caption = "00:00:00" Me.Controls("TOTEL" & i).Value = 0 Me.Controls("cmdStartStop" & i).Caption = "Start" Me.Controls("cmdReset" & i).Caption = "Stop" Next i Me.TimerInterval = 1000 في الزر cmdStartStop هو المسؤول عن بدي وإيقاف مؤقت للتايمر مع تغيير حالة التسمية التوضيحية لكل زر حسب i ، حيث تم تسمية كل زر cmdStartStop بإضافة رقم يمثل رقم الجهاز للتمييز بينهم عند استدعاء الكود .. وكذلك الأمر عند الزر cmdReset المسؤول عن الإيقاف وإعادة تصفير العداد والقيم في كل جهاز ، ونفس الفكرة بالنسبة للتسمية التي تميز كل زر جهاز عن الآخر باستعمال المتغير i . وباقي الأجزاء الصغيرة واضحة ولا تحتاج شرح . Private Sub cmdStartStop_Click(Index As Integer) Dim stationId As Integer Dim startStopButton As Control Dim resetButton As Control stationId = Index Set startStopButton = Me.Controls("cmdStartStop" & stationId) Set resetButton = Me.Controls("cmdReset" & stationId) If startStopButton.Caption = "Start" Then startStopButton.Caption = "Pause" isRunning(stationId) = True isPaused(stationId) = False If counters(stationId) = 0 Then counters(stationId) = 0 Else counters(stationId) = pauseCounters(stationId) End If ElseIf startStopButton.Caption = "Pause" Then startStopButton.Caption = "Resume" isRunning(stationId) = False isPaused(stationId) = True pauseCounters(stationId) = counters(stationId) ElseIf startStopButton.Caption = "Resume" Then startStopButton.Caption = "Pause" isRunning(stationId) = True isPaused(stationId) = False counters(stationId) = pauseCounters(stationId) End If End Sub Private Sub cmdReset_Click(Index As Integer) Dim stationId As Integer Dim resetButton As Control Dim counterLabel As Control Dim totalCostBox As Control Dim startStopButton As Control stationId = Index Set resetButton = Me.Controls("cmdReset" & stationId) Set counterLabel = Me.Controls("lblCounter" & stationId) Set totalCostBox = Me.Controls("TOTEL" & stationId) Set startStopButton = Me.Controls("cmdStartStop" & stationId) If resetButton.Caption = "Stop" Then resetButton.Caption = "Reset" isRunning(stationId) = False isPaused(stationId) = True pauseCounters(stationId) = counters(stationId) ElseIf resetButton.Caption = "Reset" Then resetButton.Caption = "Stop" counterLabel.Caption = "00:00:00" counters(stationId) = 0 totalCostBox.Value = 0 isRunning(stationId) = False isPaused(stationId) = False pauseCounters(stationId) = 0 startStopButton.Caption = "Start" End If End Sub التركيز كله على الحدث عند الوقت ، وهو يحدث في كل ثانية العملية الحسابية لكل جهاز بشكل مستقل لا يؤثر على الآخر بالإعتماد على المتغيرات التي في الأسماء وهو الرقم i الذي يمثل رقم الجهاز ( لاحظ التسميات لهذه العناصر في النموذج ستعرف المقصود ) . والعملية الحسابية تقوم بتقسيم القيمة في STSATR_DATE لكل جهاز حساب التكلفة الإجمالية للعداد الحالي بناءً على معدل الساعة وإجمالي الثواني. ( طبعاً متغيرات كثيرة لم أتطرق لها لضيق الوقت ) . Private Sub Form_Timer() Dim i As Integer Dim totalSeconds As Long Dim hourlyRate As Double Dim totalCost As Double For i = 1 To 6 If isRunning(i) And Not isPaused(i) Then counters(i) = counters(i) + 1 Me.Controls("lblCounter" & i).Caption = Format(DateAdd("s", counters(i), "00:00:00"), "hh:mm:ss") hourlyRate = Me.Controls("STSATR_DATE" & i).Value totalSeconds = counters(i) totalCost = (hourlyRate / 3600) * totalSeconds Me.Controls("TOTEL" & i).Value = Format(totalCost, "0.00") End If Next i End Sub وفي النهاية استدعاء الأمر لكل زر (cmdStartStop1 ، cmdStartStop2 ... إلخ ) و (cmdReset1 ، cmdReset2 ... إلخ ) حسب تسميته Private Sub cmdStartStop1_Click() Call cmdStartStop_Click(1) End Sub Private Sub cmdStartStop2_Click() Call cmdStartStop_Click(2) End Sub Private Sub cmdStartStop3_Click() Call cmdStartStop_Click(3) End Sub Private Sub cmdStartStop4_Click() Call cmdStartStop_Click(4) End Sub Private Sub cmdStartStop5_Click() Call cmdStartStop_Click(5) End Sub Private Sub cmdStartStop6_Click() Call cmdStartStop_Click(6) End Sub Private Sub cmdReset1_Click() Call cmdReset_Click(1) End Sub Private Sub cmdReset2_Click() Call cmdReset_Click(2) End Sub Private Sub cmdReset3_Click() Call cmdReset_Click(3) End Sub Private Sub cmdReset4_Click() Call cmdReset_Click(4) End Sub Private Sub cmdReset5_Click() Call cmdReset_Click(5) End Sub Private Sub cmdReset6_Click() Call cmdReset_Click(6) End Sub وسلاااااامتك يا صديقي
    1 point
  17. مشكور استاذنا العزيز ahmed draz ربنا يباركلك في علمك يارب .
    1 point
  18. حاول تقرأ جيدا حول الجداول تفضل تحربه2.rar
    1 point
  19. السلام عليكم ورحمة الله وبركاته أخي الكريم (خالد جميل) Private Declare PtrSafe Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long Private Declare PtrSafe Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long Private Declare PtrSafe Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long Private Declare PtrSafe Function SendDlgItemMessage Lib "user32" Alias "SendDlgItemMessageA" (ByVal hDlg As Long, ByVal nIDDlgItem As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long Private Declare PtrSafe Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long Private Declare PtrSafe Function GetCurrentThreadId Lib "kernel32" () As Long هذه العبارات تقوم بأستدعاء أو تحميل مكتبات لغة VBA في بداية الكود و كلمة "user32" تدل على أن الكود يعمل فقط على اصدار اوفيس 32بت (32Bit) وإذا وجدت كلمة "user64" فمعناها أن المبرمج قام بأستدعاء أو تحميل مكتبات لغة VBA لتعمل على اصدار اوفيس 64بت (64Bit) وفي الغالب تجد أن المبرمج قد وضع أكواد الإصدارين معاً ليضمن عمل الكود على أي إصدار أوفيس قد يستعملة المستخدم أو قد ينقل القاعدة على أي جهاز لا يعرف نوع إصدار الأفيس علية (32Bit) أو (64Bit) أما لماذا تعطي خطاء لديك وذلك لأن المكتبة مفصولة عن بقية الكود الخاص بها بالخط الفاصل أو أنها لاتتبع الكود أصلا الكود المكتوب اسفل الكود الخطأ هو كود إخفاء إطار الاكسس و هذا كود إخفاء إطار الاكسس أخر يعمل بكفاءة hideaccesswindow.zip وهذه مشاركة تشرح ماذا تعني مكتبات (32Bit) و (64Bit)
    1 point
  20. ليست بالقليل .. فخلف هاتين الكلمتين DeleteObject و CopyObject مكتبة عظيمة اوجدتها مايكروسوفت لو اني تمهلت قليلا لكان الإخوة بارك الله فيهم عملوا وحدة نمطية محاكية لها . او بالاصح محاكية للجزئية الخاصة بالنسخ واللصق .
    1 point
  21. السلام عليكم ورحمة الله السادة الخبراء والأعضاء الكرام بكل فخر أعلن باكورة تعاوني مع الخبير ذائع الصيت اخي الحبيب Foksh و أعتز بمساعدته الكبيرة في نجاح الفكرة حيث أنها اصبحت تعمل كبرنامج قائم بذاته وقد نالت هذه القاعدة اهتمامي لأنها قد تخدم في عدة مجالات بعد تطويرها مثل الشبكات و المصانع والمطاعم والكافيهات وصالات البلياردو. ولكم جزيل الشكر playstation 5.rar
    1 point
  22. 😁 نفس الطلب مع التصحيح ونخصيص Animation الحواف والسرعة بقى تضبيط التلقائي لكامل حجم الفورم لكل فورم عند الفتح 😇 حبيبتي صفاء ما قالت رايها ❤️🥰 استاذ @ahmed draz شكرا للتعديل ❤️🌹☕ ما انتبهت كنت مشغولة الى ارفع تصميمك ارتب بس كنت بحاكي طلب حبيبتي صفاء تحديث UP_date_Lest_Form.rar
    1 point
  23. بعد إذن أختنا الفاضلة hanan_ms النموذج الخاص بك بعد التعديل (لكن بدون سلاسة أو إزاحة للعناصر كما كانت تتمنى أختنا safaa salem5 ) وشكراً up lest button update.rar
    1 point
×
×
  • اضف...

Important Information