نجوم المشاركات
Popular Content
Showing content with the highest reputation since 12/05/25 in all areas
-
السلام عليكم ورحمة الله تم التعديل أيضا (دائما بواسطة المعادلات) على ورقة "جداول الحراسة" التي تحتوي الجداول الفردية للحراس (معذرة لم أنتبه لها إلا الآن)... الحراسة2026 للتصحيح.xlsm4 points
-
اعرض الملف بهذه الأداة سيتم تخصيص طريقة عرض وطباعة التقارير {سلسلة الأدوات المساعدة المخصصة} اليوم أقدم لكم أداة أعتقد أن الجميع يحتاجها والحقيقة أن هذه الأداة هي في الأصل عبارة عن أداتين كلا منها يؤدي وظيفة مستقلة لكنهما يتكاملان مع بعضهما لتقومان بجميع الوظائف المرتبطة بتخصيص طرق عرض وطباعة التقارير من حيث تخصيص حجم الورق وإتجاه الورقة ونوع الطابعة ومربع حوار الطباعة .... إلخ وظيفة الأداة الأولى - إنشاء قائمة مختصرة لطباعة التقارير - إظهار مربع حوار مخصص للطباعة وظيفة الأداة الثانية - إنشاء مايشبه القوالب الخاصة بمعاينة وطباعة التقارير بحيث يتم ربط كل تقرير بحجم الورق والطابعة وطريقة العرض الخاصة به - سيتم الإستغناء عن أمر معاينة وطباعة التقارير فبدلاً عن هذه الصيغة DoCmd.OpenReport "ReportName", ViewMode, , strCriteria, OpenArgs سيتم إستخدام هذا الصيغة MyOpenReport "ReportName", ViewMode, ReportTypeID, strCriteria, OpenArgs, NoMargins حيث نلاحظ أن الصيغتين لها نفس المعلمات مع إضافة معلنتين إضافينين هما - ReportTypeID وتمثل رقم السجل الخاص بالقالب في جدول القوالب - NoMargins معلمة خاصة بتجاهل الهوامش (سيتم توضيح عملها ضمن المثال التوضيحي) أخيراً مرفق لكم مجلد يحتوي على مايلي 1- مثال عملي شامل يوضح عمل الأداتين معاً 2- مجلد فرعي خاص بكل أداة يشمل مثال توضيحي لطريقة الإستفادة من الأداة وقالب يحتوي على الكائنات الأساسية لكل أداة في الأخير أتمنى من الجميع تجربة الأداة وإبداء إي ملاحظات تحياتي صاحب الملف منتصر الانسي تمت الاضافه 12/06/25 الاقسام قسم الأكسيس4 points
-
السلام عليكم اعرض عليكم احبتي فكرة قمت بتنفيذها .. واريد تحسينها نقاش ودي .. متاح لجميع رواد المنتدى المبتدىء قبل الخبير الفكرة هي حماية البرنامج ليعمل في فترة محددة كأشتراك ... 1شهر / 6 شهور / سنة ... الفكرة تم تنفيذها بكل اتقان واحترافية بفضل الله . اكرر .. العملية ناجحة نجاحا باهرا بكل المعايير ........................................................ ولكن قبل ذلك البرنامج يحتوي على حماية ضد النسخ بمعنى حين ابعث البرنامج اول مرة للمستفيد ويقوم بتشغيله يظهر له رقم النسخة ويطالبه برقم التسجيل يقوم المستفيد بمراسلتي ويزودني برقم النسخة فأعطيه رقم التسجيل رقم التسجيل هذا هو ملك له ويتم حفظه بملف نصي بجانب قاعدة البيانات ومادام هذا الملف موجود وداخله رقم التسجيل الصحيح فالبرنامج يعمل على اتم وجه ---------------- علما ان حماية الاشتراك مشابهة لها تقريبا والاختلاف فقط ان الاشتراك يعتمد على تاريخ داخل جدول -------------------- الى هنا كل شيء حلو وجميل ........................................................ نأتي للمطلوب لتفعيل حماية الاشتراك 1- الافضل وهو المطلوب في السوق غالبا اتاحة نسخة تجريبية لفترة محددة كشهر واحد مثلا ... المطلوب : لا اريد اكوادا .... اريد التوجيه والشرح .. اريد طريقة لتنفيذ الفكرة 1- اريد الجمع بين الحماية الاولى والثانية بعملية واحدة .. كيف؟ 2- اريد لما تنتهي فترة التجربة ازوده برقم فيتم تفعيل البرنامج لسنة قادمة مثلا . ( الطريقة السهلة ان ارسل له واجهة جديدة مفعلة لمدة سنة ..) هل اجعل النسخة التجريبية متاحة للنسخ بمعنى انها لا تحتوي على شرط العمل على جهاز واحد ويكفي حماية الاشتراك لأنها بعد انقضاء الشهر لن تعمل ابدا حتى لو تم نقلها لجهاز آخر هذه الطريقة تتيح للمستفيد نقل البرنامج الى الاجهزة الاخرى فترة السماح وسوف يعمل ___________________________________________________________________________________ قد تتعجبون اذا قلت لكم .. خلال كتابتي لآخر الاسطر هذه .. اني وجدت الحل والطريقة للجمع بين الحمايتين .. وايضا تفعيل الاشتراك الدائم بارسال الرقم فقط كثيرا جدا مرات ومرات .. حين ابدأ بعرض المشكلة وابدأ بالكتابة .. اصل الى حل مقنع .. لأني اعرض على نفسي المشكلة .. واستوعب ابعادها وانا اكتب .. ثم الغي الطلب ولكني اشعر ان هذا الموضوع يهم فئة ليست قليلة لذا سأطرحه مع الحل الذي توصلت اليه __________________________________________________________________________________ الحل حسب وجهة نظري هو جعل كود الحماية ( رقم التسجيل ) مشترك بحيث يكون جزء منه يشمل الحماية من النسخ ، والجزء الآخر لتفعيل الاشتراك ............. الموضوع مفتوح للمناقشة .. ومقترحاتكم محل اهتمام2 points
-
تمام هي الفكرة نفسها .. كنت احسبها جديدة .. لأني لم اعمل من قبل عمل فيه اشتراك بالمدة وانما كنت ابيع الجمل بما حمل 🐫 .. وكنت اكتفي بان لكل جهاز نسخته2 points
-
وعليكم السلام ورحمة الله وبركاته اليك الحل بطريقتين الاولى - بالتنسيق الشرطي 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.xlsb2 points
-
ما شاء الله تبارك الله اما طريقتي .... برنامج خاص بالتفعيل يخصني - اضافة كل العملاء واسم البرنامج ورقم العميل ورقم البرنامج والمدد المطلوب تفعيلها والسبب ( قد يفقد العميل التفعيل لاي سبب من الاسباب وعند التواصل بنا يتم ارسال التفعيل مرة اخرى له ) - يتم التفعيل حسب اختيار العميل ( عن طريق رقم يرسل عن طريق البريد او الواتس او عن طريق مفتاح تفعيل ..... ) او عن طريق الانترنت مباشر2 points
-
وعليكم السلام ورحمة الله وبركاته سبب الخطا عدم وجود رابط بين اللست والشيت في الكود يوجد عمود مخفى في ListBox وهو الرابط بين الاختيار من اللست والشيت يعنى الاعمدة 10 للشيت +عمود مخفي في اللست =11 تم التعديل والغاء العمود المخفي في اللستبكس واستخذام مصفوفة تربط كل صف في الـ ListBox برقم الصف الحقيقي في الشيت. اليك الملف ليست بوكس 4.xlsm2 points
-
وعليكم السلام ورحمة الله وبركاته .. أخي بلال أنت عضو فضي ( نتمنى لك المزيد من الدرجات ) ، وما زلت - متأسفاً منك - لا تهتم لأي ملاحظات يتم طرحها خلال المشاركات أو قوانين المنتدى . العنوان :- نكتشف أن مقصده ومعناه مختلف عما تريده أنت . الشرح :- تبخل على أخوانك في المنتدى بالشرح وتكتفي بكلمات لا تتعدى أصابع اليد . إرفاق ملف :- برأيك هل الصورة و 8 كلمات كافيات لتوصيل ما تفكر به لمن يقرأ الموضوع دون ارفاق ملف !!! شكراً لك على رحابة صدرك مراراً وتكراراً في تقبل الملاحظات التي ليس لها هدف إلا أن تحظى بطريق سليم لتوصيل معلومتك2 points
-
اخي الكريم ، وعليكم السلام ورحمة الله وبركاته ... ارجو منك الإهتمام بتنسيق موضوعك ليسهل قراءته لمن يمر به ويحاول مساعدتك .. المطلوب غير واضح حتى من خلال الصور. ثم انك تستخدم مسميات عربية + من عدة مقاطع ..... إلخ ، وهذا لا يشجع البعض على المساهمة في المساعدة ، لأن التعامل مع المسميات العربية للعناصر والمكونات له تبعات مزعجة ومتعبة في الحلول . شكراً لك2 points
-
السلام عليكم ورحمة الله وبركاته تم استبدال TextBox1 بـ COMOBOX1 يتم فيه تجميع التواريخ من العمود B التواريخ في العمود B بالنظام الفرنسى جعلتها بالنظام dd/mm/yyyy عند التعديل استخدم زر خفظ التعديل اليك الملف ليست بوكس1.xlsm2 points
-
تفضل 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 Sub2 points
-
االرجاء الانتظار الى الانتهاء من باقى التعديلات CertificateCustomization.zip2 points
-
جزيتم خيرا احبابي المرء عزيز باصحابه زادكم الله عزا ورفعة المسألة ما تستهاهل كل هذا العناء مني .. وليست المسألة استسلام او احباط اعود لطريقتي التي عادة اسير عليها : تقسيم قاعدة البيانات .. ونسخة الواجهات التجريبية ارسلها عند الطلب . وان اراد الاستمرار ارسلت له النسخة الدائمة او مؤقتة بزمن محدد فقط يلصقها فوق الاولى ويوافق على الاستبدال .. وريح راسك يا شايب وعلى فكرة العملاء غالبا يا دوبك اثنين او ثلاثة .. لست وكالة توزيع 🚚 وانما انا طرحت الموضوع للفائدة لأن البرمجة تنفيذ فكرة والفكرة هي كالتالي لمن استحسنها واراد تنفيذها : 1- جدول يحتوي على حقلين نصيين سيدرج بهما تاريخين مشفرين 1- الحقل الأول يحمل تاريخ آخر مرة اشتغل فيها البرنامج بصورة صحيحة ( من اجل حماية تغيير تاريخ الكمبيوتر) 2- الحقل الثاني يحمل التاريخ الذي ينتهي فيه الاشتراك فالتفعيل بالكود يخص الحقل الثاني ( الكود يكون مشفر يحمل داخله التاريخ الذي سيتم تحديث الحقل به) وعلى فرضية ان البرنامج محمي من النسخ ولا يمكن فتحه الا بكود يتعرف على عتاد الكمبيوتر لذا نبعت الفكرة بدمج الكودين بكود واحد الفائدة : ان تجديد الاشتراك مثله مثل تركيب البرنامج أول مرة .. لا فرق بينهما والهدف :ان يقوم الكود بالمهمتين في خطوة واحدة بدلا من خطوتين1 point
-
بما أن رقم النسخة ظاهر ايضا تفضل اخي عمر 455810456716870042 ستجدون تقارب شديد بين الرقمين هذا والذي قبله ولكن اتبع مقولة : سددو وقاربو دوما ابحث عن العمل البسيط بدون تكلف سبب التقارب انهم ولدوا في وقت واحد وحضانة واحدة المسألة مسألة تشفير يستطيع المتفرغ والذي يعشق مثل هذه الاشياء ويتلاعب بالارقام ان ينشىء شفرة لا تخطر على البال عندما اعرض العمل مفتوحا ستتبين لكم البساطة التي اتحدث عنها1 point
-
جزاكم الله خيرا على اثراء الموضوع الانسان يتعلم ويبحث عن الافضل والايسر كما في العنوان .. حماية متكاملة المرفق .. منتهي اشتراكه لذا ستظهر لوحة التسجيل وعدت الاستاذ @Foksh بالمواصلة وهذا رقم التسجيل يشمل حماية البرنامج من النسخ واشتراك لمدة يومين حسب طلبك ينتهي الليلة القادمة الساعة 12 448971214516870042 جرب حاول العبث بملف التكست الذي بجوار قاعدة البيانات او النقل او اي شيء test.rar1 point
-
1 point
-
ابو البشر هل جربت العبث بالجدول .. من جميع الجوانب ؟: 1- العبث بالشفرة 2- تفريغ الحقول 3- حذف الجدول ( تغيير التسمية) او ارجاع تاريخ الكمبيوتر الى وقت يسبق تاريخ اليوم ؟1 point
-
ليه تنقر على الزر ؟؟ الزر كنت وضعته من اجل ادراج Now لأنها تاريخ ووقت ويصعب كتابتها واضح ان الامور تمام انتظروني سوف اعيد الحماية للمثال .. انا اضع المثال هنا لرؤية هل ستتم الحماية بحيث لا يمكن تجوزها .. سأعتمد التاريخ حسب اليوم فقط ( الساعات لا اعتبار لها) .. حتى في تغيير تاريخ الجهاز1 point
-
شكرا ابا البشر .. بشرك الله بما يسرك ولكن مع الاستاذ @Foksh ما زالت المعركة قائمة استاذ فادي قد تكون المشكلة لديك من دالة التاريخ المصنوعة لأني صنعتها من اجل اختلاف تنسيقات التاريخ في الاجهزة ص / م أو am pm فجعلت الساعات بنظام الـــ 24 انا اتعامل مع حقل نصي ثم احوله لتاريخ تفضل هذه هي الفكرة جرب احتمال 99% تعمل عندك ما لم يتم التحزيم القاء نظرة على المرفق فقد تجدون لي شيئا افضل Database1.accdb1 point
-
1 point
-
الف شكر انا استخدم اوفيس انجليش ولكن تنسيقات اللغة عربية1 point
-
للأسف انا لا استخدم أي برنامج باللغة العربية 😅 أكيد عندي النسخة المثبتة على أجهزتي ، وهذا الرابط .1 point
-
1 point
-
سؤالك فيه اشكالية لان المخزن فيه وارد ومنصرف شبه يومي.. يمكنك ان تحدد تاريخ حساب الرصي= اما اسبوعي او شهري اوسنوي من خلال المدخلات والمنصرف منها ابحث في المنتدى فهناك الكثير من مشاركات الاخوة الزملاء مما ينفعك او اعمل برنامج بسيط وسترى الكثير ممن يساعدك1 point
-
شكراً لك على الإجابة ارفقت لك ملف العمل اريد قائمة منسدلة اختار الموظف لتثبيت ساعة داومه القيم في A1-A20 مصدر البيانات هو الورقه Sheet 11 point
-
المواضيع المشار لهم ليس بهم مشكله في المرفقات اخي @محب المنتدى واخي @عبدالله بشير عبدالله1 point
-
1 point
-
السلام عليكم ورحمة الله في المرفق تجد حلا باستعمال المعادلات، أرجو أن يفي الغرض المطلوب... الحراسة2026 للتصحيح.xlsm1 point
-
1 point
-
مداخلة صغيره كانت هذه فكرة استاذي @ابو جودي لانه كان من مناصرين فكرة (كل شئ يكون اوفلاين) وقد نجح هو فى تنفيذ هذا الامر مع التشفير بحيث رمز التفعيل يحمل المده وبصمة البرنامج وتاريخ البداية وتاريخ النهاية ويتعامل مع تمديد الفترات بالاضافة للفتره الحالية بشكل تلقائى وتجنب تكرار استخدام نفس التفعيل مره اخري وكان الموضوع معقد شوي وكان امامي الطريقين ووجدت ان ايسرهم هو الطريق الثاني (اونلاين) لانه جنبني تعقيد الاكواد الى حد ما لان التفعيل اون لاين وخاصه اذا كان لديك دومين مدفوع او دومين مستقر <وهي هنا ممكن استخدام تطبيقات مختلفه لعمل سيرفر محلي "لم اجربها لاني فضلت السيرفرات الخارجيه لانها اكثر ضمان للاتصال"> فالتفعيل اون لاين يكفي فقط كود فك التشفير (اذا كانت مشفر بيانات التفعيل) وكود التحقق من مطابقة بصمة التفعيل مع التفعيل الحالي وبصمة الجهاز وقد كان هذا الامر بمساعدة اخي الحبيب @Foksh وتوجيهي لاصل الفكره للطرق المجانيه وعلى الرغم من تناقض كلامي التالي فى رغبتي فى استخدام طريقة معلمي @ابو جودي لانها فيها شغل عالي واكثر فاعليه واضمن لعدم حاجتها للانترنت وبخلاف انها تشعرك انك تقوم بشئ كبير وايضا توسع مداركك لفهم الامور المتعلقه بالحمايه والنظر فى طرق التلاعب المختلفه واغلاق هذه الثغرات الا اني فى الاخير استخدمت الاون لاين لعدة امور مختلفه ومستقبلية ومنها وهي اهمها (امكانية الغاء الاشتراك)1 point
-
اداة رائعه ومجهود واضح وكبير وافكار جميله ويشرفني اكون اول المعلقين1 point
-
دعنا نناقش الجوهر فقط . ففي النقطة السابقة المقتبسة ، إن كان خط سيرك بإضافة تاريخ داخل الأكواد ، فهي فعلاً معضلة وقد يكون الشخص الذي حمل النسخة بعد 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
-
أخي بشار ، هذه محاولة بعدما حاولت فهم آلية العمل رغم توضيحاتك لي سابقاً بالفيديو 😅 تفضل جربه وأخبرني بالنتيجة Bashar_Jo.zip1 point
-
وعليكم السلام ورحمة الله وبركاته.. أعتقد أن الموضوعين المشار إليهما قد مضى عليهما تقريباً 10 سنوات ، وأصبحت قديمة وذات عبئ على سيرفر المنتدى . لذا لا مانع من فتح موضوع جديد مستقل تطرح فيه مشكلتك وبإذن الله ستجد الحلول الجديدة. إلا إذا كان لإدارة المنتدى رأي آخر 😇 .1 point
-
انظر الصورة المرفقة للتأكد . لذالك ، وتحقيقاً لنفس الفكرة من زر 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
-
وعليكم السلام اهلا بك استاذي القدير @ابوخليل في حالة المرفق داخل قاعدة البيانات ..... دائما التعامل يكون بحيلة سواءا لفتح المرفق او عرض المرفق مباشرة .... والحيله هي تصدير المرفق ثم التعامل معه .... في مثالك مثلا والطلب بفتح المرفق مباشرة .... الكود يقوم اولا بتصديره ثم فتحه .... جرب هذا الكود لاني لم افتح القاعدة التي لديك 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 Sub1 point
-
1 point
-
السلام عليكم ورحمة الله جرب تطبيق هذا التنسيق على التاريخ لعله يفي بالغرض : [$-ar-DZ,201]dddd yyyy/mm/dd1 point
-
ما شاء الله تبارك الرحمن 🙂 جميل جدا تنوع الأفكار في نفس المجال 😊👌 وأنا أيضا لدي برنامج خاص بتصميم الشهادات وتنسيقها وتوليد الشهادات لمجموعة كبيرة من الطلاب أو المتدربين أو المستلمين بشكل عام ، وكذلك يقوم بإرسال الشهادات بالبريد الإلكتروني لكل المستهدفين ( كل متدرب أو طالب يستلم شهادته) ، وأيضا يقوم بحفظ جميع الشهادات على شكل Pdf دفعة واحدة .. 🙂 مع إمكانيات تنسيق النص ( الخطوط والألوان ) بشكل حر ، وإضافة التواقيع ، وتغيير إطارات البرنامج .. إلخ تصميم وتنسيق النصوص بكل أريحية إضافة المتدربين دفعة واحدة بعدد لا محدود معاينة بشكل مباشر اواجهة البرنامج مع خيارات البحث وعرض تقارير وإحصائيات لتحميل البرنامج : تنصيب برنامج صانع الشهادات الإصدار الثالث 3.0.zip1 point
-
السلام عليكم تم تعديل المعادلات حسب ما تريد (حسب فهمي) في الملف المرفق... مخصصات.xlsx1 point
-
وعليكم السلام ورحمة الله وبركاته الى جانب الحلول التي ارفقها استاذنا الفاضل 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.xlsb1 point
-
و عليكم السلام ورحمة الله و بركاته https://www.officena.net/ib/topic/64613-أبغي-قائمة-منسدلة-مرتبطة-بقائمة-منسدلة-أخري-فى-نفس-ورقة-العمل/1 point
-
1 point
-
عذرا لم انتبه ان قي طلبك طباعة متعددة الطريقة الاولى زر print all اكتب كود الشركة بداية الطباعة في الخلية P2 ونهاية الطباعة في Q2 الطريقة السابقة لطباعة الارقام المتسلسلة وراء بعضها الطريقة الثانية عن طريق فورم زر طباعة خسب الاختيار وهي تغنيك عن كل الازرار وعن الطريقة الاولى حيث يمكن الطباعة لموظف واخد او الطباعة للكل او الطباعة المتعددة خسب الاختيار سواء الارقام متصلة ام منفصلة اختر ما تراه متاسب لطلبك مرتبات شركة نقل البضائع فنيين عن شهر نوفمبر 2025 (1).xlsm1 point
-
1 point
-
استاذ @moho58 برفق اليك مرفق من أعمال استاذنا @ابو جودي انا شخصياً بستعمله . ملاءمة عناصر النموذج حسب حجم النموذج.rar1 point
-
1 point
-
🌼 السلام عليكم ورحمة الله وبركاته 🌼 يسرني اليوم أن أقدم لكم الإصدار الثاني والمطور من الأداة المتميزة والرائعة ( الكاتب الذكي لدوال المجال ) . Dloockup, DCount, DMax, DMin, Dfirst, DLast هذه الأسطورة التي تقوم بكتابة دوال المجال نيابة عنك بشكل آلي .. :: ما هو الجديد :: اليوم أحتفل معكم بإصدار النسخة الثانية والمطورة لهذه الأداة والتي تتميز بالإضافات التالية : 1- إمكانية إضافة عدد لا نهائي من المعايير ( الشروط ). 2- التعرف التلقائي على نوع بيانات الحقول. 3- جلب قيمة المعيار من التقارير. 4- ميزة إضافة الأقواس حول المعايير. 5- حفظ بيانات آخر عملية قمت بها. 6- كتابة الدالة بمجرد الضغط على زر Enter. 7- تم إضافة أزرار لتسهيل كتابة الدالة NZ والمعامل Like. 8- تكبير لوحة الناتج بالضغط المزدوج عليها. 🌹🍀🌹🍀🌹 وهنا تم شرح هذه الإضافات بالتفصيل : :: شرح كيفية استخدام الأداة بالتفصيل :: :: 🌼 شكر وتقدير 🌼 :: لكل من ساهم برأي أو فكرة أو تطبيق في هذا العمل ، وجزاكم الله عن المسلمين كل خير 😊🌹 :: حمل الإصدار الثاني للكاتب الذكي لدوال المجال 2.0 :: Domain Functions Builder V2.0.accdb1 point
-
1 point