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

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

  1. ابو جودي

    ابو جودي

    أوفيسنا


    • نقاط

      5

    • Posts

      6,814


  2. belkacem24

    belkacem24

    عضو جديد 01


    • نقاط

      3

    • Posts

      14


  3. محمد هشام.

    محمد هشام.

    الخبراء


    • نقاط

      3

    • Posts

      1,366


  4. Foksh

    Foksh

    الخبراء


    • نقاط

      3

    • Posts

      2,155


Popular Content

Showing content with the highest reputation on 29 ديس, 2023 in all areas

  1. السلام عليكم ورحمة الله تعالى وبركاته نظرا للطلب والتساؤلات الكثيرة حول الموضوع او نقاط فرعيه منه قاصدا من ذلك أن يكون الموضوع شاملا ومرجعا للراغبين فى ذلك والدراسبن اليكم بناء القاعدة والذى اتمنى على الله تعالى ان يبدأ البناء وينتهى بشكل احترافى بقدر الإمكان وسوف نبدأ من الصفر تباعا ان شاء الله سوف يتم تحديث الموضوع تباعا الموضوع بأمر الله سوف اضع له الخطوط العريضة طبقا للمؤسسة التى اعمل بها لاننى أصلا سوف اقوم بقاعدة البيانات لمؤسستى وبقدر الإمكان سوف أضع فى الحسبان ان يكون التصميم عام بقدر الإمكان ليتناسب ويتماشى مع الجميع ومع رغباتهم بقدر الإمكان اهلا بكل من يريد المشاركة فى ادراة الموضوع والافكار والتعديل او الاضافة و ...... مبدئيا خلونا نتفق وقتى ضيق فى الفترة المقبلة لما انا مقدم عليه فلذلك ارجو الاعتذار مقدما ان لم التفت الى اى تساؤلات والتى وإن حدث سوف يتم تأجيلها حتى ينتهى مشروع اعداد التطبيق لمؤسستى تماما ان شاء الله بسم الله وعلى بركة الله بداية المشروع اول شئ تصيد وتسجيل الاخطاء بجدول وده وظيفته تسجيل الحطأ باسم الحدث أو الدالة المستخدمة فى الكود عند تنفيذ امر ما ورقم الخطا وصفه للمساعدة مستقبلا فى الوقوف على اماكن الاخطاء لعمل الصيانة اللازمة طبعا تم التطرق اليه فى هذا الموضوع: ويمكنكم الذهاب اليه والمتابعة من هنا طيب حلو جدا جدا وعلشان انا هبدأ بالأكواد ملاحظات هامة جدا جدا جدا جدا لبداية صحيحة واحترافيه : كتابة كود احترافي تتطلب ممارسات جيدة واتباع مبادئ برمجية صحيحة. فيما يلي بعض النصائح التي يمكن أن تساعدك في كتابة كود احترافي: توضيح الكود: استخدم تعليقات لشرح الجزء العلوي من الكود وللأمور المعقدة. اختر أسماء مفيدة وواضحة للمتغيرات والدوال تدل على وظائفها التى تمت كتابتها من اجلها. التنظيم: استخدم الهندسة المعمارية لتنظيم البرنامج إلى وحدات صغيرة وقابلة لإعادة الاستخدام. قم بتقسيم البرنامج إلى وحدات ووظائف مستقلة. الأداء: ابتعد عن الأكواد المكررة وقدّم الأكواد القابلة لإعادة الاستخدام في وحدات. حافظ على الأداء بتجنب العمليات الزائدة غير الضرورية. اختبار الوحدات: قم بكتابة اختبارات للتأكد من أن وحدات الكود الخاصة بك تعمل كما هو متوقع. الأمان: تحقق دائمًا من صحة البيانات الواردة والخارجة من الدوال. تفادى استخدام الأكواد المعرضة لثغرات أمان. تحسين الأداء: استخدم الهندسة العكسية لتحسين الأداء. ابحث عن فرص لتحسين الكفاءة والسرعة. استخدام التعليمات البرمجية النظيفة: ابتعد عن استخدام المتغيرات العالمية عندما لا تكون ضرورية. تجنب الأكواد التي تعتمد على التبديلات الطويلة. توثيق الكود: وفر توثيقًا جيدًا للكود ليسهل على المطورين الآخرين أو نفسك فهم كيف يعمل البرنامج. متابعة المعايير: اتبع معايير البرمجة المتعارف عليها . التحسين المستمر: كن مستعدًا لتحسين الكود الخاص بك بناءً على التعلم وتغييرات متطلبات المشروع. الالتزام بتلك المبادئ يمكن أن يساعدك في كتابة كود أكثر احترافية وقابل للصيانة. حلو الكلام وكل ده هيبان بقدر المستطاع فى التعليمات البرمجية التى سوف تتم تباعا يمكنك استخدام البادئات التالية لتسمية العناصر والكائنات بشكل منظم ويجعل الشيفرة أكثر وضوحًا. البادئات تعتمد على النوع أو الدور الذي تقوم به العناصر: وعلى سبيل المثال وليس الحصر المتغيرات: int للأعداد الصحيحة. dbl للأعداد العشرية. str للنصوص. bool للقيم البولية اى True , False أو Yes , No . Dim intCounter As Integer Dim dblAmount As Double Dim strName As String Dim boolIsValid As Boolean المصفوفات: arr للمصفوفات. Dim arrNames() As String الدوال: Function للدوال التي تعيد قيمة. Sub للإجراءات (دوال بدون إرجاع قيمة). Function CalculateTotal() As Double Sub DisplayMessage() الكائنات: frm للنماذج (Forms). rpt للتقارير (Reports). tbl للجداول (Tables). qry للاستعلامات (Queries). cls للكائنات أو الفئات لتعريف الكلاسات (Classes). bas وحدات الشيفرة- الوحدات النمطية (Modules). tbl للجداول (Tables). qry للاستعلامات (Queries). Dim frmCustomer As Form Dim rptSales As Report Dim tblData As TableDef Dim qryFilteredData As QueryDef الثوابت: c للثوابت. Const cMaxValue As Integer = 100 المتغيرات العامة: g للمتغيرات العامة. Public gCounter As Integer المتغيرات المؤقتة: temp للمتغيرات المؤقتة. Dim tempValue As Integer التعليقات: REM لتعليقات الشيفرة. REM هذا تعليق لشرح الشيفرة الأشكال والعناصر الرسومية: btn للأزرار (Buttons). lbl للتسميات (Labels). txt لحقول النص (Textboxes). chk لمربعات الاختيار (Checkboxes). القوائم والمراقبين: cmb لقائمة الاختيار (Comboboxes). lst لقوائم الاختيار (Listboxes). cb لمراقبات الصندوق (Checkboxes). الكائنات الأخرى: app لكائن التطبيق (Application). cnn لكائن الاتصال (Connection). doc لكائن المستند (Document). الحقول والأعمدة: fld لحقول البيانات (Fields). col لعمود البيانات (Column).
    5 points
  2. السلام عليكم ـ الهدف الرئيسي للبرمجة هو تسهيل العمل، سواء كان ذلك في مجال إكسال أو أي برنامج آخر. يُعتبر وضع الفكرة أو الخطة العامة للبرنامج تحديًا صعبًا قبل الشروع في تنفيذه. حينما يكون هناك تحديد واضح للفكرة، وخطة العمل ، وآليته يصبح التنفيذ أسهل بكثير. الاخوة غالبًا ما يطرحون أسئلة لانهم اصحاب خبرة في مجالهم ، لكن يصعب فهمها لغيرهم وخاصة مختصين البرمجة يمكن أن يكون فهم الأفكار والأسئلة أمرًا صعبًا لأولئك الذين لديهم خبرة في البرمجة أو المجالات ذات الصلة. السؤال قد يكون أصعب من تنفيذ الأفكار بحد ذاته. يُفضل تبسيط الفكرة والأسئلة لتسهيل فهمها للمحترفين في المجال وتحفيز التفاعل المثمر لذا ارى والله اعلم ـ تسهيل الفكرة او توضيح السؤال اكثر ليمكن اخوننا اهل البرمجة او لهم خبرة في حل المشكل وتنفيذه ـ وشكرا على كل شئ
    3 points
  3. السلام عليكم اخي العزيز استبدل كلمة (true) بـ (false) في الكود DoCmd.OutputTo acOutputTable, "Aracestbl", acFormatXLS, filePath, False, , , acExportQualityPrint تحياتي
    2 points
  4. اخي قم بازاحة العمود الاول على ورقة الشيكات للحصول على عمود A فارغ ووضع المعادلة التالية مع سحبها الى الاسفل على حسب البيانات الموجودة لديك =IF(G2<>"";COUNTIF($G$2:G2;G2)&"-"&G2;"") وفي ورقة اليومية الخلية Q8 ضع المعادلة الاتية مع سحبها الى الاسفل =IFERROR(VLOOKUP(COUNTIF($A$8:A8;A8)&"-"&A8;الشيكات!$A$2:$G$1000;2;0);"") اليك الملف للتجربة استخراج رقم من البيانV2.xlsx
    2 points
  5. الاخ الكريم الغالي @Foksh دايما ليك لمساتك اللي بنتعلم منها بشكرك بجد علي المساعدة الكريمة الغالية
    1 point
  6. مشاركة جانبية ،، جرب هذه الفكرة اعتماداً على كودك Private Sub Form_Open(Cancel As Integer) Dim expirationDate As Date expirationDate = #12/28/2023# If Not IsDateValid(expirationDate) Then MsgBox "تم اكتشاف تلاعب بتاريخ الجهاز." & vbCrLf & vbCrLf & _ "يرجى الاتصال بمصمم البرنامج." & vbCrLf & vbCrLf & _ "سامر محمود تليفون", vbOKOnly + vbMsgBoxRight + vbExclamation DoCmd.Quit End If If Now > expirationDate Then MsgBox "حدث عطل فني" & vbCrLf & vbCrLf & _ "يرجى الاتصال بمصمم البرنامج." & vbCrLf & vbCrLf & _ "سامر محمود تليفون", vbOKOnly + vbMsgBoxRight + vbExclamation DoCmd.Quit End If End Sub Function IsDateValid(testDate As Date) As Boolean ' تحقق من أن التاريخ لم يتم تلاعب به بشكل كبير (تأخير طويل جدا) Const MaxDelayDays As Integer = 7 IsDateValid = Abs(DateDiff("d", Now, testDate)) <= MaxDelayDays End Function الكود الأول بالإعتماد على مدة محددة للتلاعب ،، والكود التالي بدون تحديد مدة Private Sub Form_Open(Cancel As Integer) Dim expirationDate As Date expirationDate = #12/28/2023# If Not IsDateValid(expirationDate) Then MsgBox "تم اكتشاف تلاعب بتاريخ الجهاز." & vbCrLf & vbCrLf & _ "يرجى الاتصال بمصمم البرنامج." & vbCrLf & vbCrLf & _ "سامر محمود تليفون", vbOKOnly + vbMsgBoxRight + vbExclamation DoCmd.Quit End If If Now > expirationDate Then MsgBox "حدث عطل فني" & vbCrLf & vbCrLf & _ "يرجى الاتصال بمصمم البرنامج." & vbCrLf & vbCrLf & _ "سامر محمود تليفون", vbOKOnly + vbMsgBoxRight + vbExclamation DoCmd.Quit End If End Sub Function IsDateValid(testDate As Date) As Boolean ' التحقق من أن التاريخ لم يتم تلاعب به IsDateValid = (DateDiff("d", Now, testDate) >= 0) End Function
    1 point
  7. عـــــــــــــــــــــــــاشت ايدك استاذنا العزيز الله يكرمك
    1 point
  8. وعليكم السلام ورحمة الله وبركاته ... أخي هاني هذا جهد المقل فتقبل مني ( تم إضافة عمود للمساعدة وتغيير الدالة المستخدمة بالكلية ) Unquie Data.xlsx
    1 point
  9. تفضل التعديل الكامل Rac.accdb
    1 point
  10. نعم اخي انت من تختار من الخلية J1 الحركة المرغوب اظهار اخر تاريخ لها او بمكنك تحديدها داخل المعادلة بحيث عند العثور على نوع الحركة يتم جلب اخر تاريخ او ترك الخلية فارغة مع عدم اظهار 00-01-1900 =IFERROR(1/(1/MAXIFS(G3:G1000;$A3:$A1000;"="&J3;$E3:$E1000;"="&"صادر"));"") '""""""""""""""" =IFERROR(1/(1/MAXIFS(G3:G1000;$A3:$A1000;"="&J3;$E3:$E1000;"="&"وارد"));"") ملف.xlsx
    1 point
  11. شكرا لاجابتك الوافية اخينا الكريم
    1 point
  12. أخي الكريم ، سيتم حفظ الملف في مكان قاعدة البيانات ، أما إذا أردت تخصيص مكان آخر ، فتفضل الكود التالي :- Dim strPath As String strPath = "D:\NRc\Aracestbl.xls" DoCmd.OutputTo acOutputTable, "Aracestbl", acFormatXLS, strPath, True, , , acExportQualityPrint
    1 point
  13. ساقوم بالتجربة وابلغكم بالنتيجة ولكم منا جزيل الشكر
    1 point
  14. وعليكم السلام وحيا الله أخي عبدالرحمن هناك طريقتين لعمل المطلوب ، وأخي عبدالرحمن شرح الطريقة الاولى ، والطريقة الثانية: في 99.9% من برامجي ، انا لا استخدم منبثق ولا شكلي او مشروط الطريقة هي ، اختر الاختيار الذي عليه السهم: جعفر
    1 point
×
×
  • اضف...

Important Information