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

منتصر الانسي

المشرفين السابقين
  • Posts

    1473
  • تاريخ الانضمام

  • تاريخ اخر زياره

  • Days Won

    62

كل منشورات العضو منتصر الانسي

  1. أخي الكريم دائماً ما ننصح الأعضاء بالتقيد بقواعد تسمية الكائنات في قاعدة بيانات أكسس وأول وأهم قاعدة هي عدم إستخدام الأحرف العربية وثاني أهم قاعدة أن لا تتضمن مسافات وأنت ماشاء الله عليك لم تتقيد بأي منها لذا أنصحك بقراءة المشاركات التي تكلمت عن هذه الجزئية لأهميتها عموما كمساهمة مني في حل مشكلتك قمت بوضع حل سيتطلب منك إضافة نموذج سيتم فتحه عندما تريد أن تضيف أمر تسليم جديد ومنه سيتم التحقق من الشروط فإذا لم يسبق إصدار أمر تسليم للجهة في نفس التاريخ فسيتم إضافة أمر التسليم مباشرة أما إذا سبق أن تم الإصدار فسيتم تخيير المستخدم إما للإضافة أو للتراجع أما السلع فبمجرد أن يجد أنه سبق إدخال نفس السلعة في نفس الأمر سيتم تجهلها وحذف السجل أرجو أن تكون هذه هي التعديلات المطلوبة تحياتي مشروع مخازن 2026.rar
  2. في البداية أشكركما على كلامكما المحفز الذي يدفعني لتقديم أفضل مايمكنني تقديمه أولاً فيما يخص ملاحظات الأخ @Moosak الوضع يختلف بين المثال 1 و المثال 2 ففي المثال 1 ولأنه يتم التعامل مع قيمة مربع النص بواسطة الأداة فقد قمت بتعديل الكود لتجاوز هذه المشكلة (إن شاء الله تكون ضبطت 😅) ولكن في المثال الثاني ولأن الأداة تتعامل مع قيمة متغير فنحن سنكون بحاجة لإضافة تعليمات برمجية للقيام بالتحقق من صحة البيانات أولآ ثم تعيين القيمة للمتغير وهذه التعليمات قد تختلف بإختلاف كل حالة لذا فأنا افضل ان لا أشملها ضمن الأمثلة حتى لايعتقد البعض بأنها من ضمن شروط عمل الأداة ولكني قمت بإضافتها لتتضح الفكرة وطالما ذكرنا هنا سبب إضافتها فهذا يفترض به إزالة أي لبس أما الملاحظة الثانية فالحقيقة أن ما حصل معي هو العكس فالمثال الأول كان يصل الى 99٪ فقط والثاني كان يصل الى 100٪ 😚 (لم أنتبه لهذا الخطأ إلا بعد ملاحظتك ) ولكن والحمدلله فقد قام الأخ @Foksh مشكورآ بتوضيح سبب المشكلة لا بل وجاء بالحل ايضا وهذا ليس مستغربا منه فله جزيل الشكر عموما قمت بإعادة رفع الأداة بعد إجراء التعديلات المطلوبة وأرجو أن يكون قد تم إصلاح الملاحظتين دون الوقوع في خطأ لم يكن في الحسبان الله يستر 😅 أرجو تجربة النسخة الجديدة وإبداء أي ملاحظات أخرى مع خالص تحياتي لكم
  3. Version 1.0.0

    8 تنزيل

    أقدم لكم اليوم أداة جميلة وهي أداة تقوم بنفس الوظيفة التي يقوم بها أحد عناصر تحكم ActiveX وهو عنصر التحكم SpinButton ولكنها تتميز عنه في أنها تضيف إمكانية القيام بنفس العمل ولكن عن طريق لوحة المفاتيح وأيضا التحقق من صحة البيانات بالتالي فإذا كان عنصر تحكم SpinButton يخدم المستخدم الذي يفضل العمل بإستخدام الماوس فإن الأداة ستخدم جميع أنواع المستخدمين + المطورين إستخدام الأداة سهل وتم توضيح كل شيئ في الملف المرفق بإسم النسخة التوضيحية (أرجو قراءة كل التعليمات والملاحظات والتعليقات المرفقة بالكود لإنها توضح كل ما تريدون معرفته) أرجو أن تنال الأداة إعجابكم وفي إنتظار أي أسئلة أو ملاحظات تحياتي
  4. اعرض الملف أداة إنشاء زري التدوير SpinButtons المخصصة {سلسلة الأدوات المساعدة المخصصة} أقدم لكم اليوم أداة جميلة وهي أداة تقوم بنفس الوظيفة التي يقوم بها أحد عناصر تحكم ActiveX وهو عنصر التحكم SpinButton ولكنها تتميز عنه في أنها تضيف إمكانية القيام بنفس العمل ولكن عن طريق لوحة المفاتيح وأيضا التحقق من صحة البيانات بالتالي فإذا كان عنصر تحكم SpinButton يخدم المستخدم الذي يفضل العمل بإستخدام الماوس فإن الأداة ستخدم جميع أنواع المستخدمين + المطورين إستخدام الأداة سهل وتم توضيح كل شيئ في الملف المرفق بإسم النسخة التوضيحية (أرجو قراءة كل التعليمات والملاحظات والتعليقات المرفقة بالكود لإنها توضح كل ما تريدون معرفته) أرجو أن تنال الأداة إعجابكم وفي إنتظار أي أسئلة أو ملاحظات تحياتي صاحب الملف منتصر الانسي تمت الاضافه 10/24/26 الاقسام قسم الأكسيس  
  5. أداة خارقة ونتائجها مدهشة وبصراحة لا أعرف هل أفرح بها أم أخاف منها في إنتظار نجاح تجربة الأخ @محب العقيدة وعند الإنتهاء منها ياريت يوضح لنا نسبة النجاح النهائية والمتطلبات والبرامج التي يجب توافرها في الجهاز تحياتي
  6. في الحقيقة حبيت أشارك في هذا الموضوع عن طريق تطبيق ماجاء في الدليل الشامل لتكامل الذكاء الاصطناعي مع Microsoft Access والذي يتكون من ثلاث مقالات الأولى تشرح طريقة تنزيل وتثبيت البرامج المطلوبة والمتطلبات الفنية المطلوب توفرها في أجهزة الكمبيوتر للحصول على تجربة أفضل الثانية توضح طريقة دمج الذكاء الصناعي مع تطبيقات أكسس وكيفية إرسال الطلبات للذكاء الصناعي وإستلام الردود منه الثالثة تشرح طرق أتمتة الإرسال والإستجابة بإستخدام VBA وكيفية تحسين النتائج عن طريق تعيين المعلمات الإضافية والحقيقة أن النتيجة كانت أكثر من رائعة حيث أنني وبعد أن قمت بتطبيق ما جاء في هذا الدليل حصلت بالفعل على محرك ذكاء صناعي محلي يمكنه المساعدة في إنشاء جمل Sql أو دوال / إجراءات VBA قابلة للإستخدام فكما ترون في هذه الصورة وكما هو موضح في الصورة فقد قمت بمطالبة الذكاء الصناعي بإنشاء كود يقوم بإنشاء مجموعة سجلات تضم أول عشرة سجلات في الجدول tblEmployees والمرور عليها وكتابة أسماء العشرة الموظفين في النافذة الحالية بعدها قمت النقر على زر (إسأل AI) وبعد لحظات قليلة تم فيها معالجة الطلب ظهرت النتيجة في مربع النص علي اليمين وعند نسخ النتيجة ولصقها في وحدة نمطية ظهرت بهذا الشكل نلاحظ وجود نوعين من الأخطاء تم تمييزها باللون الأحمر للأخطاء في بناء الكود وباللون الأزرق للإخطاء الإملائية (والتي يمكن تجاوزها عن طريق إضافة أسماء الحقول ضمن المطالبة) المهم أنه بعد أن قمت بتصحيح تلك الأخطاء حصلت على نتيجة ولا أروع كما توضحه الصورة التالية والروعة هنا هي في أن هذه النتيجة كانت من المحاولة الأولى بمعنى أنها أخطاء بالإمكان تلافيها بتحسين جودة المطالبة أو مايعرف بالـ(Prompt) ولهذا السبب قمت وفي محاولة بدائية بترجمة ماجاء في هذا الدليل وأرفقتها بملف الوورد المرفق ونصيحتي لكل من يود تطبيق ماجاء في هذا الدليل هو أن يتم أولاً قراءة المرفق بالكامل لفهم ماجاء فيه وبعد ذلك يمكن الإنتقال للتطبيق أرجو أن أكون قد وفقت في الترجمة (أو بالأصح في تصحيحها فقد قام جوجل بالترجمة الفعلية ) كما أرجو التجاوز عن أي أخطاء قد تجدونها فيها ولكن مايهم أنها بإذن الله ستتمكن من إيصال الفكرة لكم بشكل جيد تحياتي الدليل الشامل لتكامل الذكاء الاصطناعي مع Microsoft Access.docx
  7. وهذه وحدة نمطية يمكن إستخدامها بشكل مستقل كما في المثال أو إستيرادها إلى أي تطبيق وطريقة عملها بسيط للغاية نسخ الكود (إجراء - دالة - وحدة نمطية كاملة) ===> تشغيل الإجراء Indent ===> إعادة لصق الكود في مكانه للتجربة أفتح المثال المرفق ليظهر نموذج به زر أمر واحد إنسخ أي كود غير منسق من أي تطبيق لديك لايهم أنقر الزر أعد اللصق تحياتي Code Indenter.rar
  8. الحل الثاني أفضل ولكن بتعديل بسيط فأنت لا تريد إبقاء النموذج مفتوح لعدم وجود أي عمل فيه لذا فالأفضل أن يكون الأمر بهذا الشكل Private Sub cmdIndex_MouseMove(Button As Integer, Shift As Integer, X As Single, y As Single) On Error GoTo ErrorHandler Dim strChr As String strChr = ProcessArabicLetters(CInt(y / Me.cmdIndex.Height * (UBound(GetLettersArray) + 1))) If Me.cmdIndex.Caption <> strChr Then Me.cmdIndex.Caption = strChr End If ErrorHandler: MsgBox (" !!!!! عفواً ،،،، لا توجد بيانات"), vbOKOnly + vbMsgBoxRight, "ملاحظـة" DoCmd.Close acForm, Me.Name End Sub وهناك طرق أخرى لتفادي هذه المشكلة منها التحقق من وجود بيانات في الجدول المطلوب قبل فتح النموذج وذلك من حدث إستدعاء النموذج (زر الأمر أو النقر على أحد المفاتيح) أو في حدث الفتح أو التحميل لنموذج البحث الطرق كثيرة وعلى كل شخص إعتماد مايراه مناسباً له تحياتي
  9. رأيي هو نفسه في كل ماتقدمه ولا تحتاج إلى شهادة مني أو من غيري فأعمالك هي من مصاف الأعمال الإحترافية التي لم أجدها حتى عند الخبراء الأجانب ورغم أنك تهربت من الإجابة ولكن لابأس فحتى وإن غادرتنا فستظل أعمالك شاهدة على كل إسهاماتك القيمة في المنتدى
  10. لن اقوم بأي رد في الموضوع إلا بعد أن نعرف ما المقصود بهذه العبارة
  11. أخي العزيز الغرض من النسخة التوضيحية هو التعرف على طريقة العمل مع الأداة وأهم مايجب معرفته هو معرفة طريقة إنشاء القائمة المختصرة وطريقة معرفة نتيجة تحديد أحد عناصرها ومن خلال المثال المذكور سنعرف أن نتيجة التحديد ستظهر في المتغير intNum وبالتالي إذا إستخدمنا عبارة Select Case فيمكننا تنفيذ إجراءات تختلف بإختلاف قيمة هذا المتغير مرفق لك المثال بعد إضافة عبارة Select Case ستظهر رسالة بقيمة العنصر الذي تم تحديده وكل ما عليك هو إستبدال السطر MsgBox intNum إلى أي إجراء مطلوب فمثلاً إذا أردت عند النقر على العنصر رقم 11 أن يتم فتح تقرير Report1 فستقوم بتعديل الكود من Case Is = 11 MsgBox intNum إلى Case Is = 11 DoCmd.OpenReport "Report1", acViewPreview وهكذا لبقية العناصر تحياتي النسخة التوضيحية.rar
  12. لو تقوم بإرفاق مثال يضم الجدول والتقرير وبعض البيانات الوهمية ليتم التعديل عليه فستحصل على إجابة بشكل أسرع
  13. على رأي المعلق الرياضي رؤوف خليف شنو هاااااذااااا منتهى الروعة والجمال الأداة بوضعها الحالي لاتشوبها شائبة ولكن لدي ملاحظة وإقتراح الملاحظة هي إختلاف شكل رسالة التنبيه بإختلاف طريقة حفظ التعديل كما في الصورة المتحركة التالية أدري أن الماكرو يقوم برفع خطأ برقم ونص مخصصين ولكن لاحظ رقم الخطأ في أول رسالة (عند النقر على زر الحفظ) سنجد أن رقمه 3939 رغم أن الماكرو يرفع خطأ بالرقم 9991 والرقم 9992 فهل بالإمكان أن يتم رفع رقم الخطأ من الماكرو وإعتراضه عن طريق الكود ليتم معالجته بإستخدام VBA ؟ أما المقترح أن يتم إستخدام مربعات قائمة (قابلة للتحديد المتعدد) بدلاً عن مربعات التحرير والسرد وهذه الصورة ستوضح الفكرة في الأخير وكما أسلفت فإن الملاحظة والمقترح هما من باب مشاركة الأفكار ولا ينقصا من روعة الأداة بوضعها الحالي بشيئ تحياتي
  14. ملف أكسس مثله مثل أي ملف آخر داخل ويندوز يمكن لأي شخص تعديل إسمه لذا فلا يمكن منع أي مستخدم من تعديل إسمه ولكن يمكننا تقييد تشغيل البرنامج إلا إذا كان بالإسم الذي نريد في المرفق نفس الملف الذي أرسلته جرب فتحه بالإسم gelani وأغلقه وغير إسمه إلى أي بإسم آخر وشاهد النتيجة فهل يناسبك هذا الحل؟ gelani.rar
  15. لا لا هذا كان نتيجة فكرة كنت طبقتها ثم تراجعت عنها ونسيت حذف هذا السطر صراحة أنا غير ملم بالماكرو خصوصاً ماكرو البيانات ولكن السؤال أثار فضولي للبحث فيه
  16. تقصدني أنا صح ؟ 😅 سواء كانت هذه نيتك أم لا فأنا أشكرك لطرح هذا السؤال حتى يخرج لنا الأستاذ @Moosak بهذه التحفة فقد قدم لنا قطعة من الصلصال وما علينا إلا تشكيلها كما نشاء وهذه كانت تجربتي ولكن هذا تطلب مني تعديل دالة CheckProtection لتصبح على النحو التالي Public Function CheckProtection(ByVal tblName As String) As Boolean On Error GoTo ErrHandler Dim tmpPath As String tmpPath = Environ("TEMP") & "\DataMacro_Check_" & tblName & ".xml" ' Export the data macro (acTableDataMacro = 12, hidden member) Application.SaveAsText AC_TABLE_DATA_MACRO, tblName, tmpPath ' Read contents using FSO (Unicode) Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") If fso.FileExists(tmpPath) Then Dim ts As Object Set ts = fso.OpenTextFile(tmpPath, 1, False, -1) ' -1 = Unicode Dim result As String result = ts.ReadAll ts.Close On Error Resume Next Kill tmpPath On Error GoTo 0 CheckProtection = True Else Debug.Print "No file was created." CheckProtection = False End If Set fso = Nothing Exit Function ErrHandler: blnIsBlocked = False Debug.Print "No data macro found on '" & tblName & "': " & Err.Description Debug.Print "ERROR: " & Err.Description CheckProtection = False End Function أصبحت نتيجة هذه الدالة من النوع Boolean بدل String لترجع True إذا كان الجدول محمي أو False إذا كان غير محمي وسؤالي للأخ موسى هل سيسبب هذا التغيير أي مشكلة وأنه من الضروري أن يكون ناتج هذه الدالة ذلك النص الطويل؟ الآن عند النقر على الزر الأول سيتم التحقق من وجود الماكرو فإذا لم يجده سينشئه ثم يفتح النموذج If CheckProtection("Tbl_Cust") = False Then ApplyTableProtection "Tbl_Cust" End If DoCmd.OpenForm "frmCust" يمكن أن يكون هذا الكود خلف حدث الإغلاق للنموذج أو أي مكان آخر والعكس في الزر الثاني إذا كان موجود سيزيله ثم يفتح النموذج If CheckProtection("Tbl_Cust") = True Then RemoveTableProtection "Tbl_Cust" End If DoCmd.OpenForm "frmCust" صراحة تعجبني الحلول المبتكرة القابلة للتشكيل وفقاً لطريقة عمل كل شخص برافو أستاذ موسى
  17. تتبع الخطوات التالية وهذا هو محتوى المرفق سنغلق النموذج الشاشة الرئيسية ونفتح نموذج إنشاء الإختصار المسمى frmShortcut يفترض أن تكون النتيجة عندك مطابقة لما جاء في الصور
  18. سبق وقلت لك انت اذا نويت راح تخرج بأفكار يستعصي على أمثالنا أن نفكر بها 😂
  19. مع إحترامي لصاحب الفيديو ولكني أجد أن تخصيص أيقونة أكسس بأيقونة أخرى فهذا لن يحل المشكلة لو أردنا تخصيص الأيقونة لكل تطبيق جرب المرفق ولاحظ النتيجة (بعد إنشاء الإختصار يجب فتح التطبيق بإستخدام الإختصار) كل المطلوب هو إستيراد النموذج frmShortcut إلى اي تطبيق والنقر على الزر (إنشاء الإختصار) ويمكن حذف هذا النموذج بعد ذلك ملاحظة هذا الحل مخصص للعمل في ويندوز 10 فقط تحياتي تجربة.rar
  20. رغم أني أرى أن طريقة عمل الأداة أبسط من تحتاج إلى فيديو لشرحها ولكن إذا كان ولابد فلايوجد أفضل من الأستاذ @Moosak للقيام بالمهمة فهو الوحيد المتمرس في مثل هذا النوع من الفيديوهات
  21. من جمال الفكرة قمت بتنفيذها مباشرة الآن أصبح بالإمكان تصدير الكائنات المطلوبة فقط لعمل الأداة مع التحقق لعدم تصديرها أكثر من مرة
  22. والله كنت أتمنى يكون هذا النموذج من تصميمي فلا أخفيك أنني في البداية كنت قد قمت بتصميم نموذج قريب من هذا بشكل كبير ولكنه كان يعتمد على جدول يحتفظ بالصور داخله ولم تعجبني الفكرة فهذا سيتطلب إستيراد الجدول لتعمل الأداة وبعد البحث في مخزون الأمثلة لدي وجدت أحد الأمثلة الأجنبية الذي كان يتضمن هذا النموذج ولكنه كان يقوم بوظيفة أخرى وبطريقة مختلفة فقمت بإستغلاله والتعديل عليه بما يناسب الهدف المطلوب هنا والحمدلله نجحت الفكرة التي كانت في بالي للطريقة التي أريد تنفيذ العمل بها عند فتح القالب ستجد الملاحظة هذه أسفل النموذج (تختفي الملاحظة عندما تكون Addin ولكنك طرحت فكرة جميلة سأحاول تنفيذها ولكني أرى أن الأفضل أن يتم ذلك عن طريق زر أمر وليس تلقائياً فقد يقوم الشخص بفتحها لمجرد الاطلاع عليها أو فتحها عن طريق الخطأ وليس لاستخدامها
×
×
  • اضف...

Important Information