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

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

  1. ابوخليل

    ابوخليل

    أوفيسنا


    • نقاط

      17

    • Posts

      13499


  2. Foksh

    Foksh

    أوفيسنا


    • نقاط

      16

    • Posts

      4337


  3. عبدالله بشير عبدالله
  4. بن علية حاجي

    بن علية حاجي

    الخبراء


    • نقاط

      8

    • Posts

      4358


Popular Content

Showing content with the highest reputation since 12/05/25 in all areas

  1. السلام عليكم ورحمة الله تم التعديل أيضا (دائما بواسطة المعادلات) على ورقة "جداول الحراسة" التي تحتوي الجداول الفردية للحراس (معذرة لم أنتبه لها إلا الآن)... الحراسة2026 للتصحيح.xlsm
    4 points
  2. اعرض الملف بهذه الأداة سيتم تخصيص طريقة عرض وطباعة التقارير {سلسلة الأدوات المساعدة المخصصة} اليوم أقدم لكم أداة أعتقد أن الجميع يحتاجها والحقيقة أن هذه الأداة هي في الأصل عبارة عن أداتين كلا منها يؤدي وظيفة مستقلة لكنهما يتكاملان مع بعضهما لتقومان بجميع الوظائف المرتبطة بتخصيص طرق عرض وطباعة التقارير من حيث تخصيص حجم الورق وإتجاه الورقة ونوع الطابعة ومربع حوار الطباعة .... إلخ وظيفة الأداة الأولى - إنشاء قائمة مختصرة لطباعة التقارير - إظهار مربع حوار مخصص للطباعة وظيفة الأداة الثانية - إنشاء مايشبه القوالب الخاصة بمعاينة وطباعة التقارير بحيث يتم ربط كل تقرير بحجم الورق والطابعة وطريقة العرض الخاصة به - سيتم الإستغناء عن أمر معاينة وطباعة التقارير فبدلاً عن هذه الصيغة DoCmd.OpenReport "ReportName", ViewMode, , strCriteria, OpenArgs سيتم إستخدام هذا الصيغة MyOpenReport "ReportName", ViewMode, ReportTypeID, strCriteria, OpenArgs, NoMargins حيث نلاحظ أن الصيغتين لها نفس المعلمات مع إضافة معلنتين إضافينين هما - ReportTypeID وتمثل رقم السجل الخاص بالقالب في جدول القوالب - NoMargins معلمة خاصة بتجاهل الهوامش (سيتم توضيح عملها ضمن المثال التوضيحي) أخيراً مرفق لكم مجلد يحتوي على مايلي 1- مثال عملي شامل يوضح عمل الأداتين معاً 2- مجلد فرعي خاص بكل أداة يشمل مثال توضيحي لطريقة الإستفادة من الأداة وقالب يحتوي على الكائنات الأساسية لكل أداة في الأخير أتمنى من الجميع تجربة الأداة وإبداء إي ملاحظات تحياتي صاحب الملف منتصر الانسي تمت الاضافه 12/06/25 الاقسام قسم الأكسيس  
    4 points
  3. السلام عليكم اعرض عليكم احبتي فكرة قمت بتنفيذها .. واريد تحسينها نقاش ودي .. متاح لجميع رواد المنتدى المبتدىء قبل الخبير الفكرة هي حماية البرنامج ليعمل في فترة محددة كأشتراك ... 1شهر / 6 شهور / سنة ... الفكرة تم تنفيذها بكل اتقان واحترافية بفضل الله . اكرر .. العملية ناجحة نجاحا باهرا بكل المعايير ........................................................ ولكن قبل ذلك البرنامج يحتوي على حماية ضد النسخ بمعنى حين ابعث البرنامج اول مرة للمستفيد ويقوم بتشغيله يظهر له رقم النسخة ويطالبه برقم التسجيل يقوم المستفيد بمراسلتي ويزودني برقم النسخة فأعطيه رقم التسجيل رقم التسجيل هذا هو ملك له ويتم حفظه بملف نصي بجانب قاعدة البيانات ومادام هذا الملف موجود وداخله رقم التسجيل الصحيح فالبرنامج يعمل على اتم وجه ---------------- علما ان حماية الاشتراك مشابهة لها تقريبا والاختلاف فقط ان الاشتراك يعتمد على تاريخ داخل جدول -------------------- الى هنا كل شيء حلو وجميل ........................................................ نأتي للمطلوب لتفعيل حماية الاشتراك 1- الافضل وهو المطلوب في السوق غالبا اتاحة نسخة تجريبية لفترة محددة كشهر واحد مثلا ... المطلوب : لا اريد اكوادا .... اريد التوجيه والشرح .. اريد طريقة لتنفيذ الفكرة 1- اريد الجمع بين الحماية الاولى والثانية بعملية واحدة .. كيف؟ 2- اريد لما تنتهي فترة التجربة ازوده برقم فيتم تفعيل البرنامج لسنة قادمة مثلا . ( الطريقة السهلة ان ارسل له واجهة جديدة مفعلة لمدة سنة ..) هل اجعل النسخة التجريبية متاحة للنسخ بمعنى انها لا تحتوي على شرط العمل على جهاز واحد ويكفي حماية الاشتراك لأنها بعد انقضاء الشهر لن تعمل ابدا حتى لو تم نقلها لجهاز آخر هذه الطريقة تتيح للمستفيد نقل البرنامج الى الاجهزة الاخرى فترة السماح وسوف يعمل ___________________________________________________________________________________ قد تتعجبون اذا قلت لكم .. خلال كتابتي لآخر الاسطر هذه .. اني وجدت الحل والطريقة للجمع بين الحمايتين .. وايضا تفعيل الاشتراك الدائم بارسال الرقم فقط كثيرا جدا مرات ومرات .. حين ابدأ بعرض المشكلة وابدأ بالكتابة .. اصل الى حل مقنع .. لأني اعرض على نفسي المشكلة .. واستوعب ابعادها وانا اكتب .. ثم الغي الطلب ولكني اشعر ان هذا الموضوع يهم فئة ليست قليلة لذا سأطرحه مع الحل الذي توصلت اليه __________________________________________________________________________________ الحل حسب وجهة نظري هو جعل كود الحماية ( رقم التسجيل ) مشترك بحيث يكون جزء منه يشمل الحماية من النسخ ، والجزء الآخر لتفعيل الاشتراك ............. الموضوع مفتوح للمناقشة .. ومقترحاتكم محل اهتمام
    2 points
  4. تمام هي الفكرة نفسها .. كنت احسبها جديدة .. لأني لم اعمل من قبل عمل فيه اشتراك بالمدة وانما كنت ابيع الجمل بما حمل 🐫 .. وكنت اكتفي بان لكل جهاز نسخته
    2 points
  5. وعليكم السلام ورحمة الله وبركاته اليك الحل بطريقتين الاولى - بالتنسيق الشرطي Sheet1 اللون الاحمر =AND(A1<>""; OR(A2=""; A2=0)) اللون الاخضر =AND(A1<>""; A2<>""; A2<>0) الثانية - كود في حدث الورقة SHEET2 Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A2:ZZ2")) Is Nothing Then Dim r As Range For Each r In Intersect(Target, Range("A2:ZZ2")) If r.Offset(-1, 0).Value <> "" Then If r.Value <> "" And r.Value <> 0 Then r.Offset(-1, 0).Interior.Color = vbGreen Else r.Offset(-1, 0).Interior.Color = vbRed End If Else r.Offset(-1, 0).Interior.ColorIndex = xlNone End If Next r End If End Sub الملف sa1.xlsb
    2 points
  6. ما شاء الله تبارك الله اما طريقتي .... برنامج خاص بالتفعيل يخصني - اضافة كل العملاء واسم البرنامج ورقم العميل ورقم البرنامج والمدد المطلوب تفعيلها والسبب ( قد يفقد العميل التفعيل لاي سبب من الاسباب وعند التواصل بنا يتم ارسال التفعيل مرة اخرى له ) - يتم التفعيل حسب اختيار العميل ( عن طريق رقم يرسل عن طريق البريد او الواتس او عن طريق مفتاح تفعيل ..... ) او عن طريق الانترنت مباشر
    2 points
  7. وعليكم السلام ورحمة الله وبركاته سبب الخطا عدم وجود رابط بين اللست والشيت في الكود يوجد عمود مخفى في ListBox وهو الرابط بين الاختيار من اللست والشيت يعنى الاعمدة 10 للشيت +عمود مخفي في اللست =11 تم التعديل والغاء العمود المخفي في اللستبكس واستخذام مصفوفة تربط كل صف في الـ ListBox برقم الصف الحقيقي في الشيت. اليك الملف ليست بوكس 4.xlsm
    2 points
  8. وعليكم السلام ورحمة الله وبركاته .. أخي بلال أنت عضو فضي ( نتمنى لك المزيد من الدرجات ) ، وما زلت - متأسفاً منك - لا تهتم لأي ملاحظات يتم طرحها خلال المشاركات أو قوانين المنتدى . العنوان :- نكتشف أن مقصده ومعناه مختلف عما تريده أنت . الشرح :- تبخل على أخوانك في المنتدى بالشرح وتكتفي بكلمات لا تتعدى أصابع اليد . إرفاق ملف :- برأيك هل الصورة و 8 كلمات كافيات لتوصيل ما تفكر به لمن يقرأ الموضوع دون ارفاق ملف !!! شكراً لك على رحابة صدرك مراراً وتكراراً في تقبل الملاحظات التي ليس لها هدف إلا أن تحظى بطريق سليم لتوصيل معلومتك
    2 points
  9. اخي الكريم ، وعليكم السلام ورحمة الله وبركاته ... ارجو منك الإهتمام بتنسيق موضوعك ليسهل قراءته لمن يمر به ويحاول مساعدتك .. المطلوب غير واضح حتى من خلال الصور. ثم انك تستخدم مسميات عربية + من عدة مقاطع ..... إلخ ، وهذا لا يشجع البعض على المساهمة في المساعدة ، لأن التعامل مع المسميات العربية للعناصر والمكونات له تبعات مزعجة ومتعبة في الحلول . شكراً لك
    2 points
  10. السلام عليكم ورحمة الله وبركاته تم استبدال TextBox1 بـ COMOBOX1 يتم فيه تجميع التواريخ من العمود B التواريخ في العمود B بالنظام الفرنسى جعلتها بالنظام dd/mm/yyyy عند التعديل استخدم زر خفظ التعديل اليك الملف ليست بوكس1.xlsm
    2 points
  11. تفضل Sub ToggleColumns() Dim action As String Dim colsInput As String Dim colArray() As String Dim colItem As Variant Dim answer As VbMsgBoxResult Dim invalidInput As Boolean ' مربع حوار لتحديد الإجراء (إخفاء أو إظهار) answer = MsgBox("هل تريد إخفاء الأعمدة؟" & vbCrLf & vbCrLf & "اضغط 'Yes' للإخفاء، 'No' للإظهار.", vbYesNoCancel + vbQuestion, "تحديد الإجراء") If answer = vbCancel Then Exit Sub ' الخروج إذا ضغط المستخدم على "Cancel" ElseIf answer = vbYes Then action = "إخفاء" Else action = "إظهار" End If ' مربع إدخال لطلب الأعمدة من المستخدم colsInput = InputBox("الرجاء إدخال الأعمدة التي تريد " & action & "ها." & vbCrLf & vbCrLf & "أمثلة:" & vbCrLf & "عمود واحد: B" & vbCrLf & "أعمدة متجاورة: B:D" & vbCrLf & "أعمدة متفرقة: B,D,F", "تحديد الأعمدة") ' الخروج إذا كان الإدخال فارغًا If colsInput = "" Then Exit Sub ' إزالة أي مسافات زائدة وتقسيم الإدخال عند الفاصلة colArray = Split(Replace(colsInput, " ", ""), ",") invalidInput = False On Error Resume Next ' تجاهل الأخطاء مؤقتًا للتحقق من صحة الإدخال ' المرور على كل عنصر أدخله المستخدم For Each colItem In colArray If colItem <> "" Then ' التحقق من أن كل جزء من الإدخال يمثل نطاقًا صالحًا If Columns(colItem).Count = 0 Then invalidInput = True Exit For End If End If Next colItem On Error GoTo 0 ' إعادة تفعيل معالجة الأخطاء ' إذا كان هناك إدخال غير صالح، أظهر رسالة خطأ If invalidInput Then MsgBox "الإدخال '" & colItem & "' غير صالح. الرجاء التأكد من إدخال أسماء أعمدة صحيحة.", vbCritical, "خطأ في الإدخال" Exit Sub End If ' تنفيذ الإجراء على كل عمود أو نطاق For Each colItem In colArray If colItem <> "" Then If action = "إخفاء" Then Columns(colItem).Hidden = True Else Columns(colItem).Hidden = False End If End If Next colItem MsgBox "تم " & action & " الأعمدة بنجاح!", vbInformation, "اكتمل الإجراء" End Sub
    2 points
  12. االرجاء الانتظار الى الانتهاء من باقى التعديلات CertificateCustomization.zip
    2 points
  13. كل الشكر استاذ غبد الله جزاك الله خيرا
    1 point
  14. جزيتم خيرا احبابي المرء عزيز باصحابه زادكم الله عزا ورفعة المسألة ما تستهاهل كل هذا العناء مني .. وليست المسألة استسلام او احباط اعود لطريقتي التي عادة اسير عليها : تقسيم قاعدة البيانات .. ونسخة الواجهات التجريبية ارسلها عند الطلب . وان اراد الاستمرار ارسلت له النسخة الدائمة او مؤقتة بزمن محدد فقط يلصقها فوق الاولى ويوافق على الاستبدال .. وريح راسك يا شايب وعلى فكرة العملاء غالبا يا دوبك اثنين او ثلاثة .. لست وكالة توزيع 🚚 وانما انا طرحت الموضوع للفائدة لأن البرمجة تنفيذ فكرة والفكرة هي كالتالي لمن استحسنها واراد تنفيذها : 1- جدول يحتوي على حقلين نصيين سيدرج بهما تاريخين مشفرين 1- الحقل الأول يحمل تاريخ آخر مرة اشتغل فيها البرنامج بصورة صحيحة ( من اجل حماية تغيير تاريخ الكمبيوتر) 2- الحقل الثاني يحمل التاريخ الذي ينتهي فيه الاشتراك فالتفعيل بالكود يخص الحقل الثاني ( الكود يكون مشفر يحمل داخله التاريخ الذي سيتم تحديث الحقل به) وعلى فرضية ان البرنامج محمي من النسخ ولا يمكن فتحه الا بكود يتعرف على عتاد الكمبيوتر لذا نبعت الفكرة بدمج الكودين بكود واحد الفائدة : ان تجديد الاشتراك مثله مثل تركيب البرنامج أول مرة .. لا فرق بينهما والهدف :ان يقوم الكود بالمهمتين في خطوة واحدة بدلا من خطوتين
    1 point
  15. جزاكم الله خيرا على اثراء الموضوع الانسان يتعلم ويبحث عن الافضل والايسر كما في العنوان .. حماية متكاملة المرفق .. منتهي اشتراكه لذا ستظهر لوحة التسجيل وعدت الاستاذ @Foksh بالمواصلة وهذا رقم التسجيل يشمل حماية البرنامج من النسخ واشتراك لمدة يومين حسب طلبك ينتهي الليلة القادمة الساعة 12 448971214516870042 جرب حاول العبث بملف التكست الذي بجوار قاعدة البيانات او النقل او اي شيء test.rar
    1 point
  16. و عليكم السلام و رحمة الله و بركاته جرب =ROUND(A1*4;0)/4
    1 point
  17. طبعا كما تفضلت .. لا فكل تطبيق وكوده ولكن يوجد من يعترض بقوله اذا كثرت برامجك فسوف تنسى معادلاتك .. ولا بد من ايجاد عملية توليد مختلفة ولكنهاواحدة لجميع برامجك
    1 point
  18. شكرا ابا البشر .. بشرك الله بما يسرك ولكن مع الاستاذ @Foksh ما زالت المعركة قائمة استاذ فادي قد تكون المشكلة لديك من دالة التاريخ المصنوعة لأني صنعتها من اجل اختلاف تنسيقات التاريخ في الاجهزة ص / م أو am pm فجعلت الساعات بنظام الـــ 24 انا اتعامل مع حقل نصي ثم احوله لتاريخ تفضل هذه هي الفكرة جرب احتمال 99% تعمل عندك ما لم يتم التحزيم القاء نظرة على المرفق فقد تجدون لي شيئا افضل Database1.accdb
    1 point
  19. السلام عليكم ورحمة الله وبركاته مرحبا بالجميع الاوفيس 2016-32Bit النسخة المستخدمة هي tshfeerAB النتيجة ::::::::::::::::::::::::::::::
    1 point
  20. هذه 32 بت وحصلت على 64 وركبتها وهذه هي النتيجة جربوها tshfeerAA.rar
    1 point
  21. شكرا استاذنا الفاضل علي المجهود الرائع
    1 point
  22. ادخل على التنسيق واختار منها قياسى وحدد العلامة العشرية بعد كام رقم
    1 point
  23. سلام عليكم ورحمة الله تعالى وبركاته اخي عبد الله مرة اخرى شكرا و جزاك الله خيرا على هذا الجواب الان طبقته على البرنامج ويعمل بالتمام فجزاك الله خيرا و السلام عليكم ورحمة الله تعالى وبركاته
    1 point
  24. كلام سليم أستاذ قاسم ، فمن الناحية المنطقية السؤال غير كافي كمعطيات إذا كان هناك جدول يمثل الحركات ( الصادرة و الواردة للأصناف ) . ولكني افترضت من سؤاله دون أن يوضح لنا أي تفاصيل ، أن لديه في جدول المستودع تحديث لأي صنف يتم بيعه أو شراءه ... إلخ . ولذا لم أتطرق إلى الحصر بين تاريخين . لذا إذا كان لديه حقل Balance محدّث دائماً كما تصورت في إجابتي (حقل يمثل الرصيد اللحظي لكل صنف في كل مخزن) فالجملة كافية ، بحيث تستعلم عن ذلك الحقل بشرط ItemID و StoreID . أما إذا لم يكن هناك حقل جاهز للرصيد وبدلاً من ذلك يتم حساب الرصيد من حركات (وارد / صادر ) ، فالجملة غير كافية منطقياً كما تفضلتم ، لأن الرصيد سيعتمد على زمن (حتى أي تاريخ تريد الحساب ؟ الآن أو الحالي ؟ بعد يوم معين مثلاً؟ ... إلخ ) .
    1 point
  25. شكراً لك على الإجابة ارفقت لك ملف العمل اريد قائمة منسدلة اختار الموظف لتثبيت ساعة داومه القيم في A1-A20 مصدر البيانات هو الورقه Sheet 1
    1 point
  26. المواضيع المشار لهم ليس بهم مشكله في المرفقات اخي @محب المنتدى واخي @عبدالله بشير عبدالله
    1 point
  27. بسيطة أخر الكريم .. في حدث بعد التحديث لمربع النص Payment الموجود في النموذج الفرعي Credit_Paper_Payments ، اجعل الحدث = Forms!credit_paper.CheckPaymentState ولضمان ابقاء القيمة ذاتها للكومبوبوكس عند عدم تحقق الشرط ، استبدل كلمة Null بالقيمة التالية Me.Credit_Paper_Sub.Form!State.Value
    1 point
  28. السلام عليكم ورحمة الله في المرفق تجد حلا باستعمال المعادلات، أرجو أن يفي الغرض المطلوب... الحراسة2026 للتصحيح.xlsm
    1 point
  29. مداخلة صغيره كانت هذه فكرة استاذي @ابو جودي لانه كان من مناصرين فكرة (كل شئ يكون اوفلاين) وقد نجح هو فى تنفيذ هذا الامر مع التشفير بحيث رمز التفعيل يحمل المده وبصمة البرنامج وتاريخ البداية وتاريخ النهاية ويتعامل مع تمديد الفترات بالاضافة للفتره الحالية بشكل تلقائى وتجنب تكرار استخدام نفس التفعيل مره اخري وكان الموضوع معقد شوي وكان امامي الطريقين ووجدت ان ايسرهم هو الطريق الثاني (اونلاين) لانه جنبني تعقيد الاكواد الى حد ما لان التفعيل اون لاين وخاصه اذا كان لديك دومين مدفوع او دومين مستقر <وهي هنا ممكن استخدام تطبيقات مختلفه لعمل سيرفر محلي "لم اجربها لاني فضلت السيرفرات الخارجيه لانها اكثر ضمان للاتصال"> فالتفعيل اون لاين يكفي فقط كود فك التشفير (اذا كانت مشفر بيانات التفعيل) وكود التحقق من مطابقة بصمة التفعيل مع التفعيل الحالي وبصمة الجهاز وقد كان هذا الامر بمساعدة اخي الحبيب @Foksh وتوجيهي لاصل الفكره للطرق المجانيه وعلى الرغم من تناقض كلامي التالي فى رغبتي فى استخدام طريقة معلمي @ابو جودي لانها فيها شغل عالي واكثر فاعليه واضمن لعدم حاجتها للانترنت وبخلاف انها تشعرك انك تقوم بشئ كبير وايضا توسع مداركك لفهم الامور المتعلقه بالحمايه والنظر فى طرق التلاعب المختلفه واغلاق هذه الثغرات الا اني فى الاخير استخدمت الاون لاين لعدة امور مختلفه ومستقبلية ومنها وهي اهمها (امكانية الغاء الاشتراك)
    1 point
  30. سلمت يمينك استاذ @kkhalifa1960 ممنونه منك جعلها ربي في ميزان حسناتك
    1 point
  31. 1 point
  32. دعنا نناقش الجوهر فقط . ففي النقطة السابقة المقتبسة ، إن كان خط سيرك بإضافة تاريخ داخل الأكواد ، فهي فعلاً معضلة وقد يكون الشخص الذي حمل النسخة بعد 25 يوم قد بقي لديه 5 أيام ( على افتراض ان النسخة التجريبية 30 يوم من تاريخ مدرج في الأكواد . لكن !!!! إن كانت المدة 30 يوم من تاريخ التشغيل الأول فهنا سيكون لكل مستخدم 30 يوماً كاملةً . وبالتالي ستستغني عن هذه العبارة التالية :- ستدخل في متاهة أن التفعيل هو للنسخة التجريبية أو للنسخة المفعلة الكاملة ( سنة على سبيل المثال ) ؟؟؟؟ بالتالي سيكون في ملف التفعيل المدمج أو الجدول رقمي تفعيل الأول للتجريبية والثاني عند التفعيل الكامل . ( إذا كان ما فهمته صحيحاً 😅 ) . تطرقنا سابقاً مع الأستاذ @ابو جودي في تجارب بهذا الخصوص ( فكرة التمديد ) . فلنفترض أنني كعميل أعجبني عملك ومشروعك ويخدمني بكل تفاصيله وقد اشتريت أو تم التفعيل لمدة 3 اشهر بعد الفترة التجريبية . وأردت قبل انقضاء مدة الـ 3 شهور هذه أن أقوم بتجديد الإشتراك مدة 3 شهور أخرى ، كتحليل :- الـ 3 شهور الأولى تنتهي بتاريخ 31-01-2026 ، وانا طلبت منك بتاريخ 10-01-2026 كود تفعيل لـ 3 شهور أخرى . أي سينتهي اشتراكي بتاريخ 30-04-2026 ( إن صحت حساباتي ) فهل التاريخ صحيح أم سيتم احتساب التمديد والتجديد من 10-01-2026 !!!!!! عادةً أفكر عند هذا العمل بأن يكون هناك معامل لعدد أيام التشغيل ( الفرق بين أول تشغيل أو تفعيل وتاريخ اليوم ، بحيث يكون العدد كأيام مطابق لفترة الإشتراك ) . وهنا ستكون الحاجة لأن يكون إجمالي عدد أيام منذ التفعيل الأول إلى نهاية الإشتراك = هذا العدد . أي ان في المثال السابق سيكون مجموع أيام الإشتراك أو تفعيل البرنامج = 90 يوماً وليس 70 يوماً . هذه الجزئية تعود لك كمبرمج ولآلية عملك التي تفضلها . ولكن انظر لها مستقبلاً . أفضّل بالنسبة لي أن يكون النموذج الخاص بالتمديد أو التفعيل هو نفسه الوحيد . وليس له داعي لتفعيل النسخة التجريبية . فيكفي أن يظهر لأول مرة للمستخدم أن البرنامج نسخة تجريبية مدتها 30 يوماً كرسالة . وسيكون هناك زر خاص بالتفعيل يفتح النموذج الوحيد هذا . ستختلف الأفكار وتترامى بين هنا وهناك ( وهذا ما وقعت فيه سابقاً ) وما دعاني لتجربة التفعيل الهوائي . فوجدت أنه محكم جداً إلى حد ما . ولا مانع لدي من مشاركتك الفكرة مفتوحة المصدر وشرحها إن تطلب الأمر 🤗 .
    1 point
  33. جميل جدا ما تفضلت به ولكن دعنا نتفق على ان الحماية انواع وحسب البرنامج ... بعض البرامج لا تجد لها مريدين الا جهات خاصة يريدون شيئا جاهزا .. ولا مشكلة لديهم في دفع المقابل اذا كان سعره بحدود المعقول والا سيبحثون عن منتج آخر يخدمهم . ايضا دعنا نستبعد المغرمين بالهندسة العكسية وهواياتهم الغير شرعية . هذه النقطة تمكنت من ضبطها باحكام .. فأي عبث بتاريخ الكمبيوتر سوف تظهر رسالة تنبه بذلك ويغلق البرنامج ايضا التواريخ مشفرة وأي عبث فيها سوف تظهر رسالة تنبه بذلك ويغلق البرنامج سنطبق الحماية على بيئة أكسس والتجارب حصرية لهذا المنتدى ورواده ولأني الآن اعمل عليه ، فلا مشكلة لدي ان اطرح تجربتي لمن اراد التجربة . المهم اني خلصت الآن الى خطوات العمل التي ارى انها تخدمني وقبلها سأشرح سناريوهات التجارب : الفكرة الاولى : كل ما يرد يخص الواجهات .. لأن البرنامج مقسم 1- ان البرنامج يكون متاحا بلا حمايات للجميع ويتم نشره قدر الامكان .. ولكنه محدد بزمن التجربة داخل المحرر ، فاذا انتهت المدة لن يعمل وهنا يلزم لمن اراد الاستمرار الحصول على النسخة المحمية .. ولكن هذه غير عملية لأنه بعد عشرة ايام تكون النسخة المنشورة صالحة لمدة 20 يوما فقط على هذا يجب تحديث النسخة يوميا .. وهذا صعب الفكرة الثانية : يكون البرنامج متاح للتنصيب ولكن لن يعمل الا بشفرة .. هذه الشفرة تجمع بين حماية البرنامج عن النسخ ومدة الاشتراك المطلوبة . فيمكن ان نمنح المستفيد شفرة لفتح البرنامج لمدة شهر مجاني او شهرين واحد مجاني والآخر مدفوع او لأكثر من ذلك سنة مثلا ويمكن ان تكون الشفرة للتملك بلا اشتراكات لمدة 5 سنوات مثلا . عند ادخال هذه الشفرة يعمل البرنامج بلا مشاكل فكرة جميلة لم تخطر على بالي .. مع اني قد رأيتها في بعض البرامج سوف اطبقها ان شاء الله عند انتهاء الاشتراك .. سوف يظهر نموذج التسجيل المعتاد ونعيد العملية مرة أخرى الجميل في الموضوع ان التجديد بالنسبة للمبرمج مثله مثل تنصيبه لأول مرة .. لا يهمه ان كان على الحاسبة الاولى او تم نقل البرنامج الى حاسبة أخرى .
    1 point
  34. قم بنسخ الكود التالي ولصقه في أي وحدة نمطية Public Function ReportExists(rptName As String) As Boolean Dim obj As AccessObject For Each obj In CurrentProject.AllReports If obj.Name = rptName Then ReportExists = True Exit Function End If Next obj ReportExists = False End Function بهذا سيتم حل المشكلة التي تسبب الخطأ الظاهر في الصورة الثانية لا أدري إذا ما سيتم حل المشكلة الظاهرة بالصورة الأولى أم لا ولكن جرب ورد علينا بالنتيجة تحياتي
    1 point
  35. أخي بشار ، هذه محاولة بعدما حاولت فهم آلية العمل رغم توضيحاتك لي سابقاً بالفيديو 😅 تفضل جربه وأخبرني بالنتيجة Bashar_Jo.zip
    1 point
  36. وعليكم السلام ورحمة الله وبركاته.. أعتقد أن الموضوعين المشار إليهما قد مضى عليهما تقريباً 10 سنوات ، وأصبحت قديمة وذات عبئ على سيرفر المنتدى . لذا لا مانع من فتح موضوع جديد مستقل تطرح فيه مشكلتك وبإذن الله ستجد الحلول الجديدة. إلا إذا كان لإدارة المنتدى رأي آخر 😇 .
    1 point
  37. انظر الصورة المرفقة للتأكد . لذالك ، وتحقيقاً لنفس الفكرة من زر Open .. استخدمت الدالة التالية :- Public Sub OpenAttachmentFile(ByVal RecordID As Long, Optional ByVal PKFieldName As String = "ID") Dim rs As DAO.Recordset Dim rst As DAO.Recordset2 Dim filePath As String Dim cachePath As String Dim subFolder As String cachePath = Environ("LOCALAPPDATA") & "\Microsoft\Windows\INetCache\" Randomize subFolder = "ACC" & Int((9999 * Rnd) + 1) If Dir(cachePath & subFolder, vbDirectory) = "" Then MkDir cachePath & subFolder End If Set rs = CurrentDb.OpenRecordset("SELECT progIcon FROM tblEnDc WHERE " & PKFieldName & "=" & RecordID) Set rst = rs.Fields("progIcon").Value If Not rst.EOF Then filePath = cachePath & subFolder & "\" & rst.Fields("FileName").Value If Dir(filePath) = "" Then rst.Fields("FileData").SaveToFile filePath End If FollowHyperlink filePath End If rst.Close: Set rst = Nothing rs.Close: Set rs = Nothing End Sub واستدعيها حسب رقم السجل من خلال الزر كما يلي :- Call OpenAttachmentFile(Me.ID) طبعاً اسم المجلد عشوائي لمحاكاة نفس اسلوب آكسيس في السطر subFolder = "ACC" & Int((9999 * Rnd) + 1)
    1 point
  38. وعليكم السلام اهلا بك استاذي القدير @ابوخليل في حالة المرفق داخل قاعدة البيانات ..... دائما التعامل يكون بحيلة سواءا لفتح المرفق او عرض المرفق مباشرة .... والحيله هي تصدير المرفق ثم التعامل معه .... في مثالك مثلا والطلب بفتح المرفق مباشرة .... الكود يقوم اولا بتصديره ثم فتحه .... جرب هذا الكود لاني لم افتح القاعدة التي لديك Private Sub cmdOpenAttachment_Click() Dim rs As DAO.Recordset2 Dim rsA As DAO.Recordset2 Dim fld As DAO.Field2 Dim tmpPath As String Dim fileName As String 'افتح السجل الحالي Set rs = Me.Recordset 'اسم الحقل الذي يحتوي على المرفق Set fld = rs.Fields("MyAttachmentField") '← غيّر الاسم حسب جدولك If fld.Value Is Nothing Then MsgBox "لا يوجد مرفق لفتحه.", vbExclamation Exit Sub End If 'افتح المرفق داخل الحقل Set rsA = fld.Value If rsA.RecordCount = 0 Then MsgBox "لا يوجد مرفق.", vbExclamation Exit Sub End If rsA.MoveFirst 'الاسم الأصلي للمرفق fileName = rsA.Fields("FileName").Value 'حدد مسار مجلد مؤقت tmpPath = Environ("TEMP") & "\" & fileName 'احفظ المرفق كملف مؤقت rsA.Fields("FileData").SaveToFile tmpPath 'افتح الملف بالبرنامج الافتراضي FollowHyperlink tmpPath End Sub
    1 point
  39. ما دامه يحقق طلبك وغايتك ، فاعتمده بلا تردد 🙂 .
    1 point
  40. السلام عليكم ورحمة الله جرب تطبيق هذا التنسيق على التاريخ لعله يفي بالغرض : [$-ar-DZ,201]dddd yyyy/mm/dd
    1 point
  41. السلام عليكم تم تعديل المعادلات حسب ما تريد (حسب فهمي) في الملف المرفق... مخصصات.xlsx
    1 point
  42. وعليكم السلام ورحمة الله وبركاته الى جانب الحلول التي ارفقها استاذنا الفاضل hegazee اليك حل اخر بالكود في حدث الورقة Private Sub Worksheet_Change(ByVal Target As Range) Dim rngF As Range, rngG As Range Dim rngB As Range, rngC As Range Dim pos As Variant Set rngF = Me.Range("F2") ' Set rngG = Me.Range("G2") Set rngB = Me.Range("B2:B1000") Set rngC = Me.Range("C2:C1000") If Not Intersect(Target, rngF) Is Nothing Then Application.EnableEvents = False pos = Application.Match(rngF.Value, rngB, 0) If Not IsError(pos) Then rngG.Value = Application.Index(rngC, pos) Else rngG.Value = "" End If Application.EnableEvents = True End If rngG.Select End Sub data.xlsb
    1 point
  43. و عليكم السلام ورحمة الله و بركاته https://www.officena.net/ib/topic/64613-أبغي-قائمة-منسدلة-مرتبطة-بقائمة-منسدلة-أخري-فى-نفس-ورقة-العمل/
    1 point
  44. تم المطلوب في الملف المرفق... حافز.xlsx
    1 point
  45. وعليكم السلام ورحمة الله وبركانه بعد اذن استاذنا الفاضل عبدللرحيم الاستاذ مستر أيسم ان اردت الحل بالمعادلات فالاستاذ عبدالرحيم حله وافي وكافي اذا اردت الامر بالكود بحيت يجلب المواد والفصول تلقائيا زادات ام تقصت فاليك الملف جمع بشرطين.xlsb
    1 point
  46. للتجربة تفضل لعله المطلوب إن شاء الله OK lina_٠١٤٠٢٤.xlsx
    1 point
  47. 🌼 السلام عليكم ورحمة الله وبركاته 🌼 يسرني اليوم أن أقدم لكم الإصدار الثاني والمطور من الأداة المتميزة والرائعة ( الكاتب الذكي لدوال المجال ) . Dloockup, DCount, DMax, DMin, Dfirst, DLast هذه الأسطورة التي تقوم بكتابة دوال المجال نيابة عنك بشكل آلي .. :: ما هو الجديد :: اليوم أحتفل معكم بإصدار النسخة الثانية والمطورة لهذه الأداة والتي تتميز بالإضافات التالية : 1- إمكانية إضافة عدد لا نهائي من المعايير ( الشروط ). 2- التعرف التلقائي على نوع بيانات الحقول. 3- جلب قيمة المعيار من التقارير. 4- ميزة إضافة الأقواس حول المعايير. 5- حفظ بيانات آخر عملية قمت بها. 6- كتابة الدالة بمجرد الضغط على زر Enter. 7- تم إضافة أزرار لتسهيل كتابة الدالة NZ والمعامل Like. 8- تكبير لوحة الناتج بالضغط المزدوج عليها. 🌹🍀🌹🍀🌹 وهنا تم شرح هذه الإضافات بالتفصيل : :: شرح كيفية استخدام الأداة بالتفصيل :: :: 🌼 شكر وتقدير 🌼 :: لكل من ساهم برأي أو فكرة أو تطبيق في هذا العمل ، وجزاكم الله عن المسلمين كل خير 😊🌹 :: حمل الإصدار الثاني للكاتب الذكي لدوال المجال 2.0 :: ‏‏‏‏Domain Functions Builder V2.0.accdb
    1 point
×
×
  • اضف...

Important Information