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

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

  1. محمد عبد الله ٢

    محمد عبد الله ٢

    03 عضو مميز


    • نقاط

      6

    • Posts

      261


  2. د.كاف يار

    د.كاف يار

    الخبراء


    • نقاط

      6

    • Posts

      1,681


  3. أبوعيد

    أبوعيد

    الخبراء


    • نقاط

      5

    • Posts

      1,541


  4. Hamdi Edlbi-khalf

    Hamdi Edlbi-khalf

    الخبراء


    • نقاط

      5

    • Posts

      993


Popular Content

Showing content with the highest reputation on 02 فبر, 2022 in all areas

  1. السلام عليكم و رحمة الله و بركاته المرفق يحتوي على كل ما يحتاجه المبرمج و يستحق الإكتشاف أفكار جديدة و رائعة , الملف منقول للأمانة تقبلوا تحياتي VBA Task Dial.accdb
    6 points
  2. هذه البداية غير الاوقات في العمودين E, F ولاحظ النتايج في عمود ستاتس شروط 3معدل.xlsm
    4 points
  3. السلام عليكم ورحمة الله وبركاته وبها نبدأ معادله قبل ٢٠١٥ =countif(b2:b10,"<01/01/2015") معادله من ٢٠١٥ الى قبل عام ٢٠٢١ =countifs(b2:b10,">=01/01/2015",b2:b11,"<01/01/2021")
    2 points
  4. السلام عليكم يمكنك استخدام هذه المعادلة لإيجاد مجموع الكميات بالعمود D بداية من الخلية D2 سحباً للأسفل =IF(COUNTIF($B$2:B2,B2)=1,SUMIF($B:$B,$B2,$C:$C),"") وهذه معادلة النسبة المئوية بالعمود E =C2/VLOOKUP(B2,$B$2:$D$2000,3,0) تجربة1.xlsx
    2 points
  5. 🙂 بأمرك مشكوراً على ثقتك ... ولكن أرغب بأن أوضح أمراً .... لا أعمل في مجال البرمجة، والأكسس مجرد هواية لقضاء وقت الفراغ شأنه في ذلك شأن الرياضيات التي أعشقها ...بدأت منذ عام 2013 تحديداً مع نيسان من ذلك العام ... لم يكن لي به علم من قبل، ولم أبدأ بصورة جدية معه إلا مع اشتراكي في هذا الموقع والتي تزامنت مع بداية اهتمامي في مجال الحاسوب عامة ثم تحول VBA إلى شكل من الإدمان، ومعظم ما نفذته ببرنامج الأكسس كان على صفحات هذا الموقع الطيب، وأما خارجه فمجرد محاولات قليلة جداً وأقل من القليل الذي نفذته على هذا الموقع، لتسهيل أعمال بعض الأشخاص ممن يجدون صعوبة باستخدام الحاسب ... ومنه ما أجراه الله بي في إحدى مؤسسات الدولة خدمة لصديقين وعدتهما أني سأقوم بعمل برنامج لا يحتاجون معه إلى تنسيق صفحات الورد أو كتابتها، والتي بدت أشغالاً شاقة بالنسبة إليهما، فلله الحمد والمنة ولذلك قد أستطيع كتابة خوارزمية لكن قد أعجز عن كتابة الكود المناسب بسهولة، سأحاول لكني ... لا أعدك!
    2 points
  6. استخدم هذي الطريقة Dim varFilter As Variant: varFilter = Null If Not IsNull([Text1]) Then varFilter = (varFilter) & "[column1] LIKE '" & Text1 & "'" End If If Not IsNull([Text2]) Then varFilter = (varFilter + " AND ") & "[column2] LIKE '" & Text2 & "'" End If If Not IsNull([Text3]) Then varFilter = (varFilter + " AND ") & "[column3] LIKE '" & Text3 & "'" End If Form.RecordSource = "SELECT * FROM [table_name] where" & varFilter كذلك للبحث الجزئي If Not IsNull([Text1]) Then varFilter = (varFilter) & "[column1] LIKE '*" & Text1 & "*'" End If
    2 points
  7. حتى يكون هذا العمل مثمراً أقترح عليك التالي.. -- ابتعد عن حفظ إجراءات تلوين الحواشي في الجدول لأن هذا سيؤثر على حجم الجدول وبطيء من أداءه! وفي الواقع أن تحتاج إلى الحاشية الملونة فقط عند عرض البيانات.. لحل هذا اللازم أقترح عليك إنشاء استعلام من جدول Book، وتعرف فيه عامودا جديد باسم النص الملون وتربطه بدالة تلوين النص، مع التأكد من تغيير خاصية نوع النص في العامود إلى RichText.. -- قبل هذا أنت بحاجة إلى اختزال دالة تلوين النص في دالة واحدة حتى تتمكن من ربطها في الاستعلام.. يلزمك قبل استخدام هذه الدالة جلب قيم سجل التلوين باستخدام تابع تجميع البيانات Dlookup على الأقل لاختزال دالة تلوين النص نستخدم عبارة شرطية If.. كالتالي Public Function ColorTxtOnePeace(myData As String, ColorTxtStart As String, _ Optional ColorTxtEnd As String = vbNullString, Optional ColorCode As String = 0) If ColorTxtEnd = vbNullString Then myData = Replace(myData, ColorTxtStart, "<b><font color=" & ColorCode & ">" & ColorTxtStart & "</font></b>") Else myData = Replace(myData, ColorTxtStart, "<b><font color=" & ColorCode & ">" & ColorTxtStart) myData = Replace(myData, ColorTxtEnd, ColorTxtEnd & "</font></b>") End If ColorTxtOnePeace = myData End Function -- ما يتعلق باختلاف الحواشي بين الكتب فأقترح استخدام طريقة التحزيم: وهي أن تجعل لكل نوع من الحواشي حزماً من الألون وفقاً للطريقة التي وضعاها صاحب التحشية.. لتحقيق هذا المطلب يلزمك إضافة حقل بيانات جديد إلى جدول التلوين برقم معرف المحشي.. تنشيء جدولا جديدا بحقلين على الأقل: الأول رقم معرف بصاحب التحشية، والثاني باسم صاحب التحشية كمثال.. المعرف رقم: 1 اسم صاحب التحشية: الألباني المعرف رقم: 2 اسم صاحب التحشية: زهير
    2 points
  8. جزاكم الله كل خير وأعطاكم فوق السؤل.
    2 points
  9. وبهذا يا اصدقائى نكون قد تأكدنا وتيقنا من البخور العمانى وعمايله
    2 points
  10. بسم الله الرحمن الرحيم السلام عليكم ورحمة الله وبركاته فهذا ملف أكسيل به العديد من المعادلات والكود المفيد جدا ويمكن أن يعمل بلغات عديدة وكنت أحب أن أسئل أهل الخبرة عن حل لمشكة ظهور اللغة العربية بحروف مخلفة على الاجهزة التي تم تسطيب الوندوز فيها مع أختيار لغة أخرى عير العربية للوحة المفاتيح الله الموفق إلى كل خير sewer.rar
    1 point
  11. السلام عليكم 🙂 وما في كائنات مخفية 🙂 والنتيجة النهائية ، لاحظوا الحقل الاخير على اليمين Change_Delete_Insert ، فهو يخبرنا اذا قمنا بعملة تعديل او حذف او اضافة : . جعفر Access Tables Magic.accdb.zip
    1 point
  12. شكر وتقدير واحترام من اخيك
    1 point
  13. جزاك الله خيرا اخى محمد 🌹
    1 point
  14. شكرا على المجهود اخي العزيز
    1 point
  15. وعليكم السلام هذه معادلة لحساب الضريبة Function irgne(x As Double) As Double Dim r1, r2, k As Double x = (Int(x / 10)) * 10 If x <= 30000 Then irgne = 0 Else '---------------Part1------------------ r1 = Round( _ IIf(x <= 40000, (x - 20000) * 0.23, _ IIf(x <= 80000, (x - 40000) * 0.27 + 4600, _ IIf(x <= 160000, (x - 80000) * 0.3 + 15400, _ IIf(x <= 320000, (x - 160000) * 0.33 + 39400, _ (x - 320000) * 0.35 + 92200)))), 1) '---------------Part2---------------- k = r1 * 0.4 r2 = _ IIf(Round(k, 2) > 1500, Round(r1 - 1500, 1), _ IIf(Round(k, 2) < 1000, Round(r1 - 1000, 1), _ Round(r1 * 0.6, 2))) '---------------Part3---------------- irgne = Round(IIf(x <= 35000, Round(r2 * 137 / 51 - 27925 / 8, 1), r2), 1) End If End Function
    1 point
  16. استاذنا ومعلمنا / @Eng.Qassim ياالله الله عليك ، بارك الله فيك وفى افكارك وفى علمك وكشف عنك الغمة وزرقك من غير حساب الان فهمت كلمة tag هى تعمل كل هذا ـ مع انك اشرت اليها وقلت حلى بالك انا اللى طلعت اى كلام اعذرنى اخى الكريم كل شئ اصبح تمام التمام واشكرك اخى الكريم / المهندس قاسم كل الاحترام والتقدير لكم
    1 point
  17. ما أروعك أيها الاستاذ المجتهد
    1 point
  18. 1 point
  19. لديك خطأ في المعيار عدل الخطأ و سيعمل معك Like "*" & [Forms]![frmSearchAllReqords]![txtSearch] & "*"
    1 point
  20. لو عاوز الحل الاحترافى يبقى حل الاستاذ @د.كاف يار اما الحل البدائى شاهد الصورة واطلع على المرفق 😆 الفكرة هى انى عملت استعلام جديد يعتمد على نتائج الاستعلام القديم و عملت نموذج فرعى مصدره الاستعلام الجديد , عند البحث فى المربع الاول جعلت مصدر النموذج الفرعى داخل النموذج الرئيسى هو الاستعلام الاول Me.SubFrm.SourceObject = "SubFrm" Me.SubFrm.Requery .. وعند البحث فى المربع الثانى يتم تعديل مصدر النموذج الفرعى ليصبح النموذج الفرعى الجديد .. Me.SubFrm.SourceObject = "SubFrm2" Me.SubFrm.Requery افتح القاعدة وانت تفهم 😄 اعذرنى انا توهت فى قاعدتك فعملت قاعدة صغيرة توضحلك الفكرة اللى هتطبقها على قاعدتك . بالتوفيق Query 2 Steps Amr.accdb
    1 point
  21. جميل استاذ عمر واعتقد انه يمكن عمل المستعرض الشجري استنادا الى عدة جداول وايضا اعتقد يمكن الاكتفاء بنموذج فرعي واحد للتسجيل داخل الجداول الفرعية
    1 point
  22. باعتذر على التأخر فى الرد لظروف الشغل الان هذا تفعلها انت كيفما تشاء انا اعطيتك الفكره حضرتك استخدم الطريقة المناسبه لعمل هذا ممكن تجرب هذا النموذج للاسف خبرتي فى ان ابرمج مش كبيره انا وضعت الاساس باقى ان احد ممكن يبرمجه لك لانى بصراحه حاولت لكن معرفتش افعل نقطة ان يتم الحفظ حسب الصفحه المتفعله مرفق شكل ممكن تجربه tree.rar
    1 point
  23. تحتاج الى معيار يضبط العملية المعيار على ارض الواقع ان الذي سجل له تاريخ تسليم الجهاز لا يظهر وانما الذي يظهر هو من سجل له تاريخ استلام فقط ولم يسجل له تاريخ تسليم هنا في استعلام التقرير تدرج حقل تاريخ التسليم من جدول الحركات وتضع له المعيار التالي Is Null
    1 point
  24. تفضل حسب البيانات الموجودة في الجدول ولو زدتنا زدناك Database3.accdb
    1 point
  25. نعم استاذي الفاضل ولا غنى عن هذا الامر هي خاصية مفيدة وفرحت بها مع اتي لم اطلبها واهميتها اذا احببت ان ارجع الكتاب كما كان اذا اكتشفت خطئا في معايير التلوين لم انتبه له لكن اذا كانت تسبب مشكلة قيمكن الالتفاف على الامر باعادة نسخ الكتاب ولصقه في جدول جديد بدون تنسيق واحب ان اذكرك استاذي الفاضل بان المطلوب تلوين الكتاب كله وليس صفحة صفحة منه وكما ذكرت في مشاركة سابفة انا وضعت الكود في حدث في الحالي فهذه الطريقة التي اعرفها ولست متاكدا انها الطريقة المناسبة اكيد ان هذا الكلام موجه للاستاذ @Khalf فهو اصعب من ان احاول فهمه وتطبيقه 🤣 وشكرا للاساتذة الافاضل على اهتمامهم وزادكم الله علما ونفعا
    1 point
  26. تفضل التعديل تم اضافة تجميع حسب الاسم كما يلي الصندوف - المجموع = الرصيد لم افهم كيف يتم اضافة موازنة ! تم بالفعل system1.1.zip
    1 point
  27. هل كل الكتب ستكون في قاعدة بيانات واحدة؟ هل تحتاج إلى إعادة الألوان إلى الأسود؟
    1 point
  28. صدقت استاذي الفاضل طريقة سهلة ومرنة وبديعة وكونه توجد بعض الكتب عندي تتطلب تعديلا او معاملة خاصة لا يقلل من جمالية وجودة هذا الكود الذي تفضل به استاذنا @Khalf وقبل ان أحاول تفصيل ما عنيته بقولي (توجد بعض الكتب عندي تتطلب تعديلا ..) أحب ان ابدأ بموضوع ان الألوان التي تظهر عندي ليست هي التي تم اختيارها فأظن انني مسكت طرف الخيط كما يقال لعل السبب هو اني استخدم النسخة العربية وانعكاس اليمين والشمال سألت نفسي لماذا اذا اخترت اللون الازق (#FF0000) يظهر الأحمر (#0000FF) وبالعكس أيضا بينما في اللون الأخضر (#00FF00) لا توجد هذه المشكلة فقمت بعكس هذه الرموز يدويا (اليمين والشمال) في النموذج بعد اختيار اللون فظهر اللون المطلوب الذي تم اختياره وفعلت ذلك في بقية الألوان وحصلت في كل مرة على النتيجة المطلوبة هذا طرف الخيط إن لم اكن مخطئا 🙂 اما تطبيقه برمجيا فعند الأساتذة الافاضل والآن ساحاول ان أشرح إشكالية تطبيق الكود الموحد على جميع الكتب كما ذكرت في مشاركة سابقة ان أكثر الكتب تستخدم هذه الاقواس {} للآيات وهناك العديد من الكتب تستخدم (( )) للأحاديث أو الاقوال او المتون المشروحة لكن هناك بعض الكتب تجعل الايات بين (( )) وتستخدم هذه الاقواس {} لعبارات أخرى كتخريج الاحاديث {متفق عليه} وغير ذلك فاذا جعلت معيار تلوين الايات بالاحمر هذين القوسين {} فلن يناسب هذا تلك الكتب الأخرى التي تستخدم هذين القوسين لعبارات أخرى وسيتم تلوينها بالاحمر واذا جعلت المعيار (( )) ليناسب تلك الكتب فلن يتم تلوين الايات في أكثر الكتب التي تستخدم {} واذا استخدمتهما معا للتلوين بالاحمر فسيتم تلوين عبارات غير مطلوب تلوينها ولن تتميز الايات باللون المطلوب وما قيل عن الاقواس يقال أيضا عن العبارات فقد تكون هناك عبارات مطلوب تلوينها في بعض الكتب فقط وليس في كلها الطريقة التي عالجت بها هذه الإشكالية هي انني أنشأت جدولا آخر لمعايير التلوين (criteriaColor2) ووضعت فيه فقط المعاير التي تناسب الكتاب (book2) مع تعديل الكود Set rst = db.OpenRecordset("criteriaColor2") ونجحت المحاولة لكن هذه الطريقة تتطلب انشاء جدول معايير جديد لكل كتاب له وضع خاص وبعد التأمل واعادة النظر والتدقيق في الكود حاولت بطريقة أخرى مختلفة في كتاب (book3) حاولت ان اجعل التلوين يتم من داخل نموذج الكتاب نفسه دون استخدام (criteriaColor) فجعلت الكود هكذا Dim s1, s2, i As String s1 = "((" s2 = "))" i = "(فصل)" Me.txtnass = Replace(Me.txtnass, s1, "<b><font color=red" & ">" & s1) Me.txtnass = Replace(Me.txtnass, s2, s2 & "</font></b>") Me.txtnass = Replace(Me.txtnass, i, "<b><font color=green" & ">" & i & "</font></b>") ونجح الامر ايضا هذه محاولاتي وبانتظار ما عند الاساتذة الافاضل Colorizing3.accdb
    1 point
  29. صحيح اخى @د.كاف يار ولكن لم يجب احد من الاخوة وايضا سبب تكرار الموضوع اننى اردت توضيح ما هو مطلوب فى عدة ردود واصبحت القصة مملة ارجوك راجع الموضوع الاول واقرا التعديلات
    1 point
  30. Sub Test() Dim a, temp, dict As Object, buy As Double, sell As Double, i As Long, x As Long Set dict = CreateObject("Scripting.Dictionary") With Sheets("Sheet1").Cells(2).CurrentRegion a = .Value: ReDim temp(1 To UBound(a), 1 To 3) For i = 2 To UBound(a) If Not dict.Exists(a(i, 1)) Then dict.Add a(i, 1), "" buy = Application.WorksheetFunction.SumIfs(.Columns(7), .Columns(1), a(i, 1), .Columns(2), "BUY") sell = Application.WorksheetFunction.SumIfs(.Columns(7), .Columns(1), a(i, 1), .Columns(2), "SELL") If buy > sell Then x = x + 1: temp(x, 1) = a(i, 1): temp(x, 2) = buy: temp(x, 3) = sell End If Next i End With With Sheets("Sheet2") .Columns(1).ClearContents .Range("A2").Value = "Market" .Range("A3").Resize(x, 1) = temp End With End Sub
    1 point
  31. وعليكم السلام ورحمة الله وبركاته تفضل جرب هذا book1 معدل.xlsx
    1 point
  32. من الأشياء المتعلقة بهذا الموضوع (تتبع التغيرات).. في الإصدار 2007 البيانات من نوع ( ملاحظات Memo) وما بعده من الإصدارات (النصوص الطويلة Long Text) يوجد خاصية ضمن خواص هذا النوع من البيانات اسمها (Append Only)، عند ضبطها على (On) تقوم بتكديس البيانات السابقة للحقل في الخلفية بالتاريخ والوقت ولإعادة طلب البيانات نستخدم التابع Application.ColumnHistory، يأخذ هذا التابع ثلاثة عوامل: العامل الأول اسم الجدول، والثاني اسم الحقل، والثالث معيار التصفية ويعيد هذا التابع التاريخ والوقت والبيانات المتغيرة للحقل XHistory = Application.ColumnHistory("Products", "List Price", "id=1") [Version: 30/01/2022 09:55:41 ] 20 [Version: 30/01/2022 10:07:44 ] 30 يمكن معالجة البيانات باستخدام الإجراء التالي للحصول على بيانات نظيفة Sub XColHist() Dim RE As New RegExp Dim R, M As Match Dim XHistory As String, P As String '-- Refer to Microsoft Docum for more info XHistory = Application.ColumnHistory("Products", "List Price", "id=1") '-- Data History before processing Debug.Print XHistory Debug.Print '-- Data History after processed by RegExp P = P & "(\d{1,2}/\d{1,2}/\d{2,4})\s" ' date of change P = P & "(\d{1,2}:\d{1,2}:\d{1,2})\s\]\s" ' time of change P = P & "([A-Z0-9]+)" ' value of change '--Refer to regexp docum for more info RE.Pattern = P RE.IgnoreCase = True RE.Global = True '-- For Each M In RE.Execute(XHistory) For Each R In M.SubMatches Debug.Print R; Tab; Next Debug.Print Next End Sub Data History before processing [Version: 30/01/2022 09:55:41 ] 20 [Version: 30/01/2022 10:07:44 ] 30 Data History after processed by RegExp 30/01/2022 09:55:41 20 30/01/2022 10:07:44 30 لمزيد من المعلومات أرجو زيارة الرابط التالي Docs.Microsoft.ColumnHistory AppendOnly.accdb
    1 point
  33. السلام عليكم 🙂 مايكروسوفت عملت اضافة لجداول الاكسس 2010 (وتم ابقاء هذه الميزة للنسخ التالية) ، عملت الاحداث التالية لكل حقل (حقول النص والتاريخ والرقم (ويشمل الرقم التلقائي و العملة) فقط) وهذه الاحداث (هناك تسمى Trigger) كانت ميزة في جداول SQL Server : للسجلات : حدث بعد ادخال السجل ، حدث بعد حذف السجل ، حدث قبل حذف السجل ، للحقول : حدث بعد تحديث الحقل ، حدث قبل تحديث الحقل ويمكن عمل هذه الاحداث والجدول في وضع التصميم: . او الجدول في وضع . لغة كتابة الاحداث ليست VBA وانما الماكرو المضمن ، والذي يمكنه ان ينادي دالة في وحدة نمطية هكذا (هنا ننادي الدالة fMsgbox) : . هناك طريقتين لكتابة الماكرو المضمن ، ونتيجة الكتابة النهائية هي كما نراها في الصورة التالية : - الطريقة اليدوية (وعيبها انها بطيئة ، وخصوصا اذا عندك حقول كثيرة في الجدول ، وعندك جداول كثيرة ، وعندك برامج كثيرة) 1. اذا لم يستطع الماكرو المضمن تنفيذ احد الاوامر ، فإنه يعمل جدول للاخطاء التي صادفها ، اسمه USysApplicationLog ، وتراه هنا: . او ولأنه جدول نظام ، فيكون مخفي ، الى ان تطلب من الاكسس ان يُظهر جميع جداول النظام ، فترى الجدول . لذا ومن واقع تجربة ، انصح بكتابة هذا السطر الاول (لتلافي اي اخطاء ، مما يؤدي لتوقف عمل الماكرو) ، 2. نكتب السطر كما هو ، بعد تغيير اسم الحقل الفريد/المميز في بياناته والمفرس بلا تكرار (انصح بأن يكون عندك حقل فريد ومميز في بياناته ، وانا دائما استعمل في برامجي حقل الترقيم التلقائي ، والذي نستفيد منه هنا استفادة قصوى ، فهو الدليل على محتويات السجل) ، 3. نظيف سجل جديد في الجدول الأخر ، 4. نبدأ بتعبئة الحقول بالامر SetField ، ثم اسم الحقل ، ثم قيمة الحقل ، ونستمر لعدد الحقول التي نريد اضافة بياناتها للجدول الآخر ، . - طريقة برمجية عن طريق عمل ملف XML نضع فيه الاوامر اعلاه ، ثم نستورده لقاعدة البيانات ، والملف عبارة عن ملف نصي ولكن بصيغة XML ، يجمع فيه جميع الاحداث (مرفق نسخة من الملف لقاعدة البيانات التي تم ارفاقها في مشاركتي الاولى) واليكم الجزء للحدث الذي في الصورة الاعلى . وثم نستخدم الكود التالي لإستيراد هذا الملف: من نفس برنامج الاكسس application.LoadFromText acTableDataMacro, "Table_Name", "D:\xml_File.xml" من برنامج اكسس خارجي 'Insert/Load this DataMacro in the Table Events Dim accApp As Object Set accApp = CreateObject("Access.Application") accApp.OpenCurrentDatabase Me.str_DB_Name 'D:\temp\myDB.accdb accApp.LoadFromText acTableDataMacro, Me.lst_Tables, xml_File accApp.CloseCurrentDatabase accApp.Quit Set accApp = Nothing . والطريقة التي عرفت بها الكود اعلاه ، هي: اعمل كود في احد هذه الاحداث او في جميعها ، وليكن بضعة اسطر حتى لا نضيع في الاكواد ، واحفظ الجدول ، ثم استخدم هذا الكود لتصدير DataMacro الذي عملناه لهذا الجدول ، هكذا : application.SaveAsText acTableDataMacro, "Table_Name", "D:\xml_File.xml" . نصائح: اختار الحقول المهمة ، ولا تستعمل جميع الحقول ، الجدول tbl_x_AuditTrail سيزداد حجمه بسرعة ، ولكن كثرة الجداول وكثرة عدد المستخدمين لا يُبطئ العمل ، في الجدول tbl_x_AuditTrail هناك حقل ChangeBy وهو اسم المستخدم عند دخوله الكمبيوتر ، وحقل ChangedOn وهو اسم الكمبيوتر الذي تم التعديل منه ، هاتان الدالتان تكونان في برنامج الواجهة ، طبعا يمكن استبدالها باسم المستخد حسب الصلاحيات ، وIP الكمبيوتر اذا كان لإسم الكمبيوتر اهمية ، الجدول tbl_x_AuditTrail لا تسمح لأحد ان يراه ، لأنه يمكن حذف وتغيير بياناه ، فيصبح عديم الفائدة ، وبما ان برنامجنا كان ذو بيانات حساسة ، فكنا نراقب من يتصفح البيانات كذلك ، بمناداة دالة عند حدث "الحالي" للنموذج ، ونستعمل "Browse" في حقل عن Change_Delete_Insert . جعفر tbl_info_DataMacro.xml.zip
    1 point
  34. أتوقع أن السر في الماكرو After Update و After Insert و After delet المصاحبة للجداول والله أعلم 😅✋🏻
    1 point
  35. او اعمل لك وحدة نمطية ، ترسل لها البيانات المطلوبة من الاستعلام ، وفي الوحدة النمطية ، اعمل معادلاتك ، وارسل النتيجة الى الاستعلام. هذا مثال: جعفر
    1 point
  36. السلام عليكم تم ارساله على الخاص
    1 point
  37. جرب هذا التعديل اخى ياسين ملف جديد.xlsm
    1 point
  38. بسم الله الرحمن الرحيم السلام عليكم ورحمة الله وبركاته قد وجدت بعض الأخطاء وقمت بإصلاحها وهذه نسخة بعد إصلاح الإخطاء رسم قطاعات الترع 1.rar
    1 point
  39. بسم الله الرحمن الرحيم السلام عليكم ورحمة الله وبركاته أخر نسخة من البرنامج بعد عمل عدة تعديلات 1185844841_.rar
    1 point
  40. السلام عليكم ورحمة الله وبركاته الاستعلام يُعتبر العمود الفقري لقواعد البيانات ، وكلما زادت معرفتنا به ، كلما يصبح البرنامج افضل واسرع 🙂 البحث/التصفية في الاستعلام من الطرق المهمة ، ولكن وللأسف الشديد ، ارى الكثير من المبرمجين لا يعرفون الطريقة الصحيحة في عملها ، فالطريقة الغير صحيحة قد تعطيك النتائج ولكن على حساب وقت تنفيذ الاستعلام 😞 الامثله هنا تقوم على انه يوجد لدينا نموذج اسمه frm_Main ، وبه حقل الاسم fName ، وحقل التاريخ:من Date_From ، وحقل التاريخ:الى Date_To ، والحقول في الاستعلام ، حقل الاسم fName ، وحقل التاريخ DateX . 1. اذا اردنا البحث عن اسم كامل (وليس جزء من اسم) ، فيجب ان يكون المعيار في الاستعلام: [forms]![frm_Main]![fName] 2. واذا كان حقل الاسم فارغا في النموذج ، ونريد ان نرى جميع الاسماء ، فالمعيار يصبح: iif(len([forms]![frm_Main]![fName] & '')=0,[fName],[forms]![frm_Main]![fName]) والشرح للتأكد بأن الحقل فارغ في النموذج، بدل ان نكتب IsNull([forms]![frm_Main]![fName]) or [forms]![frm_Main]![fName]=0 فإننا نختصر هذين الشرطين بشرط واحد len([forms]![frm_Main]![fName] & '')=0 iif(كان الحقل فارغ في النموذج,[fName] اعطنا جميع بيانات الحقل,[forms]![frm_Main]![fName]واذا كان الحقل به قيمة فاستعمل هذه القيمة) . 3. اذا اردنا البحث عن جزء من الاسم Like IIf(Len([forms]![frm_Main]![fName] & '')=0,"*","*" & [forms]![frm_Main]![fName] & "*") والشرح IIf(Len([forms]![frm_Main]![fName] & '')=0 نعم Like "*" لا Like "*" & [forms]![frm_Main]![fName] & "*") . 4. اذا اردنا البحث بين تاريخين بدون سجلات التاريخ الفارغة Between (IIf(Len([Forms]![frm_main]![Date_From] & '')=0,#01-Jan-1900#,[Forms]![frm_main]![Date_From])) And (IIf(Len([Forms]![frm_main]![Date_To] & '')=0,#01-Jan-2900#,[Forms]![frm_main]![Date_To])) والشرح Between (IIf(Len([Forms]![frm_main]![Date_From] & '')=0,#01-Jan-1900#,[Forms]![frm_main]![Date_From])) And (IIf(Len([Forms]![frm_main]![Date_To] & '')=0,#01-Jan-2900#,[Forms]![frm_main]![Date_To])) مع سجلات التاريخ الفارغة Between (IIf(Len([Forms]![frm_main]![Date_From] & '')=0,#01-Jan-1900#,[Forms]![frm_main]![Date_From])) And (IIf(Len([Forms]![frm_main]![Date_To] & '')=0,#01-Jan-2900#,[Forms]![frm_main]![Date_To])) Or [DateX] Is Null والشرح Between (IIf(Len([Forms]![frm_main]![Date_From] & '')=0,#01-Jan-1900#,[Forms]![frm_main]![Date_From])) And (IIf(Len([Forms]![frm_main]![Date_To] & '')=0,#01-Jan-2900#,[Forms]![frm_main]![Date_To])) Or [DateX] Is Null او طريقة استاذنا واخونا العود ابو خليل Between nz([forms]![frm_main]![Date_From];"01/01/1900") And nz([forms]![frm_main]![Date_To];"01/01/2100") . جعفر
    1 point
  41. بسم الله الرحمن الرحيم السلام عليكم ورحمة الله وبركاته فهذه نسخة أخرى مع طريقة معلجة خطأ يمكن أن يحدث sewer.rar طريقة معلجة الخطا.rar
    1 point
  42. اعتقد انه يمكن كما فى المرفق ربط رقم الهارد ديسك الخاص بجهازك بكود ومن خلاله فى كل مرة يتم فتح ملف الاكسل يتم التحقق من هذا الرقم وان لم يكن مطابقا لرقم الهارد ديسك الخاص بط لا يفتح الملف والمرفق هو عمل لاحد الاخوة والاساتذه الافاضل ولكنى لا اذكر الاسم حماية برقم الهارد ديسك.rar
    1 point
×
×
  • اضف...

Important Information