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

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

  1. jjafferr

    jjafferr

    أوفيسنا


    • نقاط

      13

    • Posts

      9935


  2. ابوخليل

    ابوخليل

    أوفيسنا


    • نقاط

      7

    • Posts

      12879


  3. Ali Sadiq

    Ali Sadiq

    02 الأعضاء


    • نقاط

      4

    • Posts

      53


  4. sandanet

    sandanet

    الخبراء


    • نقاط

      4

    • Posts

      1366


Popular Content

Showing content with the highest reputation on 12/16/19 in all areas

  1. السلام عليكم بعد اذن استاذ Ali Sadiq وضع الكود في الحالي (Form_Current) ويمكن تغييره الى عدة صيغ وشكرا لكم 'يمكن اختيار احد الكودات التالية' Me.txtShowMe = "الصفحة " & CurrentRecord & " من " & RecordsetClone.RecordCount 'or Me.txtShowMe = "Record No. " & CurrentRecord & " of " & RecordsetClone.RecordCount 'or Me.txtShowMe = Me.CurrentRecord & " / " & Me.Recordset.RecordCount
    2 points
  2. أولاً مرحبا بعودتك سالماً لنا استاذنا القدير جعفر الحمد لله على ذلك . ثانياً أخي الكريم نبراس فكرة حماية برامج الاكسس تكمن في حماية الجداول والاستعلامات بالدرجة الاولى لانها هي التي توصلك الى البيانات اما النماذج والوحدات النمطية فهي تقفل تلقائياً بعد تحويل الملف الى accde كما ان الوحدات النمطية يمكن حمايتها برقم سري ايضاً من خلال الذهاب الى شاشة الاكواد البرمجية ومن ثم من اعلى القائمة تختار "tools" ومن ثم "properties" ومن ثم توجه لتبويب "protection" وضع علامة صح أمام "lock project" وتحتها ضع كلمة السر التي تريدها لكن السؤال الاهم هو كيف يمكن حماية الجداول والاستعلامات فمجرد الضغط على مفتاح شفت وفتح قاعدة البيانات حتى وان كانت بصيغة accde يمكن لأي شخص الاطلاع على بيانات الجداول والاستعلامات ولو فرضنا ان القاعدة محمية من المفتاح شفت اي لايمكن الدخول الى داخل القاعدة والاطلاع على البيانات فهي يعني ذلك ان البيانات محمية؟ الاجابة لا لانه لازال بالامكان الإرتباط بقاعدة بياناتك من خلال قاعدة بيانات أخرى وبذلك يمكن الارتباط مباشرة بجداول بياناتك والتلاعب بها اذن لابد من حل جذري ينهي هذا الصداع الذي اصابك واصابنا سابقاً قبلك الحلين الوحيدين الى الآن من وجهة نظري الشخصية انهما من اقوى الحلول على الإطلاق هما في التعليق الاول حل الاستاذ الكاسر هو قفل قاعدة البيانات بكلمة مرور "مختلف عن قفل الوحدات النمطية بكلمة سر" حيث ان قفل قاعدة البيانات بكلمة مرور يمنع الدخول الى داخل القاعدة والاطلاع على البيانات او الارتباط بالبيانات من قاعدة اخرى الا بعد ادخال كلمة المرور تلك وبما انك كمبرمج لاتريد اعطاء كلمة المرور التي وضعتها على القاعدة للعميل وبالتالي يمكنه التلاعب بالبيانات لذلك اقترح الاستاذ الكاسر تمرير كلمة المرور من خلال ملف اخر لايحتوي الا على كود يمرر كلمة المرور للقاعدة الاصلية لذلك تجد هنالك ملفين في موضوعه لتطبيق فكرته على برنامجك قم باستخدام الملف الاول "start_databases" الغير محمي بكلمة مرور وعدل على الكود بداخله بالتحديد في نموذج start ليقراً ملفك الاصلي لكن بصيغة accde وليس accdb ثم غير كلمة المرور التي سيمررها الكود لملفك الاصلي. ثم ضع كلمة مرور على قاعدة بياناتك الاصلية وحولها الى accde وضعها بجوار الملف المعدل. اما الحل الاخر فهو لايتطلب استخدام قاعدة بيانات اخرى لتمرير كلمة المرور و قفل قاعدة وما الى ذلك بل هو يتطلب منك استخدام كود يقوم باخفاء جداول البيانات عند بداية فتح القاعدة هذا الاخفاء ليس كالاخفاء العادي الذي يمكن ازالته من خلال قائمة الخيارات في الاكسس بل هو اخفاء تام لايمكنك اظهار الجداول الا عن طريق استخدام كود الاظهار داخل نفس القاعدة هذه الطريقة سهلة التطبيق نوعاً ما لكن لايزال امامك معالجة مسألة الاستعلامات حتى تمنع الدخول الى بياناتك بشكل كامل وهنا تكمن الصعوبة بعض الشيء من حيث تحويل الاستعلامات الى استعلامات غير مرئية او غير محفوظة او عن طريق استعمال عبارات الـ sql ببتطبيق احدى هذين الحلين فإنك بذلك تضمن حماية قوية جداً إن شاء الله تحياتي
    2 points
  3. اعتذر عن عدم الارفاق سهوا منى المرفق بعد التعديل ترقيم متقدم.accdb
    2 points
  4. تابع احدث طرق الحماية هنا وفي طريقة اخرى وهي اخفاء الجداول عن طريق الكود واستخدام الاستعلامات الغير مرئية او استعلامات sql وكذلك قفل الوحدات النمطية برقم سري وبعدها تحول قاعدة البيانات الى accde اضمن لك حماية قوية جداً
    2 points
  5. السلام عليكم 🙂 عملت تغيير في طريقة عمل البرنامج ، فاصبح الاستعلام هكذا مع المعايير ، للنموذج والاستعلام : . والنموذج : . وتم تصفية الكود الى : . وانصحك النظر في الرابطين التاليين ، حتى تعرف الطريقة لجلب المعلومات ، وبطرق مختلفة : . . جعفر 1152.AddressSearch.accdb.zip
    2 points
  6. تفضل اخي الكريم ملاحظة الترقيم سيعمل معك عند ادراج سجل جديد لأن الترقيم في حدث Form_AfterInsert ترقيم متقدم.rar تحياتي
    2 points
  7. انا كان عندي هذي المشكله وهي تداخل الفواتير للمحلات الي تكون فاتحه بعد الساعه 12 وبفضل الله ثم مساعدة الاساتذه تم حلها حيث يوضع حقل تاريخ ووقت في حدول الفواتير وحقل بداية العمل في جدول الاعدادات الخاصه بالنظام وعملتت لك مثال مصغر طبعا الفكره كالتالي 1- يكون ضمن شاشة اعدادات النظام وقت بداء العمل او فتح المحل يتم تثبيتها قبل الاستخدام 2- عند الاستعلام عن الدخل تعمل كماهو موضح في شاشة الصندوق اتمنى ان اكون افدتك التحكم بالايراد دون تداخل.rar
    2 points
  8. السلام عليكم اعتقد ما تبحث عنة موجود في مشاركة الاخ محمد سلامة وهذه المشاركة هنا ارجو اعلامي اذا كان هذا هو المطلوب. بالتوفيق
    2 points
  9. اخي الكريم نفس الكود تستطيع ان تستخدمة في النموذج الفرعي ايضا. Me. ضع هنا اسم مربع النص لديك = Me.CurrentRecord & " / " & Me.Recordset.RecordCount بالتوفيق
    2 points
  10. السلام عليكم ورحمة الله وبركاته الاستعلام يُعتبر العمود الفقري لقواعد البيانات ، وكلما زادت معرفتنا به ، كلما يصبح البرنامج افضل واسرع 🙂 البحث/التصفية في الاستعلام من الطرق المهمة ، ولكن وللأسف الشديد ، ارى الكثير من المبرمجين لا يعرفون الطريقة الصحيحة في عملها ، فالطريقة الغير صحيحة قد تعطيك النتائج ولكن على حساب وقت تنفيذ الاستعلام 😞 الامثله هنا تقوم على انه يوجد لدينا نموذج اسمه 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
  11. اعرض الملف برنامج الاتصالات الادارية (وارد - صادر - متابعة المعاملات - أرشفة الكترونية) السلام عليكم ورحمة الله تعالى وبركاته الاصدار الاول من برنامج الاتصالات الادارية وارد .. صادر .. متابعة المعاملات .. أرشفة الكترونية للتواصل علي الواتساب:- 00201018156170 او الايميال:- soft.sample2014@gmail.com لتحميل نسخة تجريبية من الرابط التالى https://drive.google.com/open?id=1ze...qbrqm2L3yHmk-i مستخدم كامل الصلاحيات اسم المستخدم : user كلمة المرور : 1234 مستخدم صلاحيات محدودة اسم المستخدم : user1 كلمة المرور : 1234 صاحب الملف محمد سلامة تمت الاضافه 07 أكت, 2018 الاقسام قسم الأكسيس
    1 point
  12. السلام عليكم طبعا البرنامج غير مكتمل ولكن بحاجة الى المساعدة اتمنى من معالجة الخطا في الكود او استبداله بكود يقوم بترحيل البيانات حيث عند اظهار اليوزرفورم وعند الاختيار من الكومبوبكس وتعبئة التيكست بوكس الخاصة بالسعر والكمية طبعا الاجمالي يعمل تلقائي اريد جميع هذه البيانات التي تحدثت عنها ان يتم نقلها ابتداءا من السطر 23 وعند ادراج اكثر من صنف يتم ادراج تلقائيا سطر تحت 23 ويتم ترحيل البيانات اتمنى ان تكون الصورة واضحة العمل على اليوزرفورم رقم 3 عندما تفتح الملف تجد زر مكتوب عليه show في الورقة 4 بمجرد الضغط تعرف اليوزرفورم vv1.xlsm
    1 point
  13. الاخ best smile ربما يفي المرفق بالمطلوب Test_1.xlsm
    1 point
  14. السلام عليكم بعد اذن الاستاذ أحمد الفلاحجى مشاركة بسيطة لعمل تنبيه قبل 30 يوم من الموعد المحدد بوميض متحرك ويمكن اضافة رسالة msgbox لها ان احببت ذلك test.rar
    1 point
  15. السلام عليكم ارجو من حضرات الاساتذة المساعدة في خصم من الرصيد بمعني لما نسوي فاتورة بيع المطلوب في الفاتورة من اصناف يخصم من الرصيد ويتبقي المتاح فشلت عمل مكان للرصيد ( مخزن ) ما ادري اضيفه في اي جدول من الموجودين وكيف اخصم الرجاء المساعدة في تعديل المرفق فقد تعبت في الاطلاع علي نماذج كثيرة وفشلت في التطبيق وكل التقدير للجميع 123.rar
    1 point
  16. من اين تأتي بيانات هذه الحقول الـ 21 ، على اي اساس تأتي ؟ لم اجد صله لهم !! جعفر
    1 point
  17. لماذا لا تفعلها بالاكسس بدون وورد ... عن طريق التقارير ؟؟؟؟؟؟؟ هل هناك داعي معين لأستخدام الوورد ؟؟؟ ما هو الهدف من ذلك !!!!
    1 point
  18. اعذرني اخوي ، انا احاول افهم لهجتك العراقية ، فياريتك تكتب بالفصحى علشان نفهمها بالكامل !! اللي فهمته منك: عند فتحك النموذج الرئيسي ، ما تظهر رسالة الخطأ ، ولكن لما تغلق النموذج الرئيسي ، بعض الاوقات تظهر الرسالة ، وكذلك لما تعمل تصغير ثم تكبير للنموذج الرئيسي تظهر الرسالة ؟ ممكن ترفق كود اغلاق النموذج ، وكود تصغير/تكبير النموذج . جعفر
    1 point
  19. اخي نبراس 🙂 لماذا تنقر على "ابلغ فريق الموقع عن مخالفة" ؟ رسالتك هناك تذهب الى الادارة ، ولا يراها صاحب الموضوع. اذا كان قصدك ان توضع رد للموضوع ، فالرد من يكون من اسفل الموضوع ، في المكان المكتوب عليه "اضف رد على هذا الموضوع ، وهذا شكله: جعفر
    1 point
  20. اخي نبراس 🙂 لماذا تنقر على "ابلغ فريق الموقع عن مخالفة" ؟ رسالتك هناك تذهب الى الادارة ، ولا يراها صاحب الموضوع. اذا كان قصدك ان توضع رد للموضوع ، فالرد من يكون من اسفل الموضوع ، في المكان المكتوب عليه "اضف رد على هذا الموضوع ، وهذا شكله: جعفر
    1 point
  21. اشكرك جزيل الشكر استاذ جعفر jjafferr لقد اعطيت المطلوب بارك الله فيكم أنت والاستاذ Ali Sadiq على جهدكم الرائع والمساعدة التي قدمتموها لي جعلها الله في ميزان حسناتكم
    1 point
  22. فورم اضافة البيانات وترقيم فورى وتفريغ التكسات الفيديو
    1 point
  23. استاذي الكريم Ali Sadiq المثال الذي أوردته للأستاذ محمد سلامة يشرح نفس الفكرة التي طلبتها أنا لكن هذا المثال يستخدم الماكرو وقاعدة البيانات التي أعمل عليها تستخدم من البداية حتى النهاية الكود البرمجي ،، سأحاول أن اطبق ماتم شرحه من الاستاذ جعفر وأتمنى أن يلبي الغرض وتقبل تحياتي
    1 point
  24. مسلسل تلقائى مع منع التلاعب بتبهيت البيانات بالتكست بوكس الفيديو
    1 point
  25. يوجد فيديو قبل ده جارى تحميله من يومين بإسم حذف السطر واعادة ترقيم المسلسل وصل التحميل ل 90 % يامسهل تابع الفيديوهات يوجد عدد 2 فيديو لنفس الملف اضافة وتعديل وحفظ
    1 point
  26. . هل جميع النماذج الفرعية تشتغل بطريقة صحيحة ، وبدون اخطاء ، لما تفتحتها بنفسها ، . اذا الجواب نعم مافي اشكال ، احذف جميع النماذج الفرعية من النموذج الرئيسي ، ثم : اضف نموذج فرعي الى النموذج الرئيسي ، وشغل النوذج الرئيسي ، واذا ما فيه خطأ ، ثم اضف نموذج فرعي ثاني الى النموذج الرئيسي ، وشغل النوذج الرئيسي ، واذا ما فيه خطأ ، ثم اضف نموذج فرعي ثالث الى النموذج الرئيسي ، وشغل النوذج الرئيسي ، واذا ما فيه خطأ ، ثم ..... الى ان ترى المشكلة ، فيكون عندك فكرة عن الموضوع بطريقة افضل
    1 point
  27. يمكنك استخدام معادلة المصفوفة هذه =INDEX($M$2:$U$8,MATCH($B2,$L$2:$L$8,0),) INDEX($M$2:$U$8,,MATCH($C2&E$1,$M$1:$U$1,0)) فلابد من الضغط على Ctrl+Shift+Enter وليس Enter فقط كباقى المعادلات المعادلة1.xlsx
    1 point
  28. وعليكم السلام 🙂 رجاء ارفق البرنامج . جعفر
    1 point
  29. اتفضل اخى مثالين من الملفات الموجوده عندى ان شاء الله تجد ما تريد بهم جزاهم الله خيرا اصحابهم تقبل تحياتى وتمنياتى لك وللجميع بالتوفيق طبتم واهتديتم تنبيه برسالة.rar تنبيه_برسالة_فى_التواريخ.rar
    1 point
  30. السلام عليكم وضعت هذه المعلومات أسفل جدول القائمة (في معادلة واحدة على أساس أن عدد الصفوف في اللجنة الواحدة لا يتجاوز 2)... أرجو أن يفي الغرض المطلوب... ملاحظة : تم التعديل على بعض تنسيقات الملف... بن علية حاجي لجان الإختبارات.xlsm
    1 point
  31. وعليكم السلام-اهلا بك فى المنتدى أستاذ Mostafa.A.A وذلك بالكود الموجود بالملف المرفوع فى المشاركة الأولى عندما تقوم بفتح الملف والضغط على Alt F11 ستجد الكود
    1 point
  32. غير الكود بهذا Sub COPIE_cop() Dim Nam Application.ScreenUpdating = False Application.EnableEvents = False Application.DisplayAlerts = False Nam = ThisWorkbook.Name & " " & Format(Now(), "dd mm yyyy hh mm ss") ' ThisWorkbook.SaveCopyAs Filename:="D:\copie\" & Nam & ".xlsx" ActiveWorkbook.SaveAs Filename:="D:\copie\" & Nam & ".xlsx", FileFormat:= _ xlOpenXMLWorkbook, CreateBackup:=False Application.DisplayAlerts = True Application.ScreenUpdating = True Application.EnableEvents = True MsgBox "Êã ÍÝÙ äÓÎÉ ÈÇÓã " & Nam & " ", vbInformation End Sub
    1 point
  33. وعليكم السلام-طلباتك كثيرة ويصعب عمل كل هذا فالمنتدى تعليمى من المقام الأول وليس لعمل وتصميم البرامج الجاهزة ,فملفك حتى فارغ وخالى تماما من اية بيانات عليك التعلم من مشاهدة الفيديوهات التعليمية على اليوتيوب , فلا تجد احد يقوم هنا بتصميم وعمل كل هذا -فأنت لا تعرف اوقاتهم ومدى انشغال جميع الأساتذة فالكل يعمل هنا بدون مقابل ,فقط لوجه الله الكريم
    1 point
  34. أ.الحسن هل هذا طلبك .. جرب وأفد بالنتيجة بالتوفيق AddressSearch.accdb
    1 point
  35. ترقيم تلقائي يتجدد مع بداية كل سنة على النحو التالي 1300001 1300002 1300003 1400001 1400002 وهكذا ................. باعتبار الرقم 13 ، 14 هو السنة والترقيم لاشك سيكون تبعا للسنة الحالية Private Sub Form_BeforeInsert(Cancel As Integer) On Error Resume Next Dim xLast, xNext As Integer Dim prtyr, prtTxt As Integer prtyr = Right(DatePart("yyyy", Date), 2) prtTxt = Left(DMax("ID", "tbl1"), 2) xLast = DMax("ID", "tbl1", prtTxt = prtyr) If IsNull(xLast) Then xNext = 1 Else xNext = Val(Mid(xLast, 3, 5)) + 1 End If Me!ID = prtyr & Format(xNext, "00000") End Sub ترقيم تلقائي جديد كل سنة.rar
    1 point
  36. جرب كود رمهان وهكذا الشهر (Month ) ID = "S" & Replace(Nz(DMax("id", "tbl1", "id like 's" & Right(Month(Date), 2) & "*'"), "s" & Right(Month(Date), 2) & "00000"), "s", "") + 1
    1 point
  37. السلام عليكم 🙂 . 1. نعم ، بعمل مجموعة استعلامات تحديث ، استعلام لكل جدول (وقد نحتاج الى اكثر من استعلام للجدول) ، ولكن يعملون بحدث رز واحد ، 2. نعم ، ولكن هذا يعتمد على المعيار والتصفية ، ويمكنك تجربة هذا على حقل معين في الجدول ، قم بتغيير بيانات بعض الحقول الفارغة الى - ، وشوف النتيجة. نعم كلامك صحيح. سبق وان ناقشنا هذا الموضوع ، وبعمق ، فرجاء لا تأتي بأسماء اعضاء وتحرجهم ، والنتيجة ببساطة انك لن تجد لهم جواب في اسئلتك القادمة (وقد تم حذف اسم العضو من موضوعك اعلاه). مشكلتك الاساسية هي عدم ظهور كافة البيانات في الاستعلام (الاستعلام وبدون اي معايير) ، وذلك لأن العلاقة التي عملتها بين الجدولين لا تطلب جميع السجلات وبغض النظر من وجودها في الجدول الآخر او لا ، وقد قام الاخ كاسر @kaser906 مشكورا بتوضيح وتعديل الاستعلام في 3 ابريل ، اي قبل 8 ايام تقريبا ، وذلك في الموضوع والطريقة التي قام بها: بما ان ربطك للجدولين ظاهرا هكذا (علاقة الربط غير حقيقة الربط) ، ولكن حقيقة ، الربط بحقل "اسم الشهرة" و"المؤلف" ، لأنك مستخدم Lookup لحقل "المؤلف" ، فالحقول (في المربع الاحمر) التي لا توجد اسماء لها في الجدول الآخر ، لن تظهر في الاستعلام . وبالنقر المزدوج على خط العلاقة بين الجدولين ، تظهر لنا هذه النافذه ، والتي نختار منها جميع السجلات في الجدول Marj3 ، بغض النظر اذا كانت موجودة في الجدول الآخر او لا . والنتيجة تكون هكذا (لاحظ السهم تحت الرقم 1) . وعلى اساسه نرى جميع البيانات في الاستعلام . الى هنا وينتهي الذي قام به الاخ كاسر ، ولما نرى النتيجة في النموذج ، وبعد إضافة معيار البحث في الاستعلام ، ثم نبحث عن: "د" . ففي واقع الامر ، لم تكن عندك مشكلة في NULL ، وانما في عرض البيانات بطريقة صحيحة 🙂 جعفر 1029.نموذج بحث.accdb.zip
    1 point
  38. لإضافة السجلات الفارغة ، يجب اضافة الجزء الاخير من المعادلة التاليه: Like IIf(Len([forms]![frm_Main]![fName] & '')=0,"*","*" & [forms]![frm_Main]![fName] & "*") or [DateX] is null هذا معناه انك تبحث عن معلومه معينه ، ويعطيك الاكسس هذه المعلومه ، وطبعا الحقل الفارغ البكر NULL لا يحتوي على هذه المعلومة ، لذلك تريد: 1. بيانات البحث ، 2. الحقول الفارغة في الحقل. ولكن دعني اعطيك نصيحة ، فالعمل على الحقول التي بها بيانات وبها فارغة ، ليس بالعمل السهل ، لذلك ، فالافضل ان تعبئ هذه الحقول الفارغة بعلامة مثل "-" (شرطة او ناقص) ، ولسهولة العمل ، اعمل استعلام تحديث لهذا الحقل ، بحيث تُدخل علامة - في جميع الحقول الفارغة ، فيصبح بحثك اسهل 🙂 جعفر
    1 point
  39. جزيت خيرا استاذنا .. فقد كفيتنا المؤونة وأجدت
    1 point
  40. استأذن من استاذنا ابو خليل على المداخلة اتفضل ما طلبت للعلم انا غيرت اسماء الحقول من number الى number1 ومن code الى code1 لان تلك الاسماء محجوزة لكي يتجنب من الاخطاء واتفضل استخدمت هذا الكود Private Sub f_date_AfterUpdate() On Error Resume Next If Me.number1 <> 0 Then Me.Undo Exit Sub End If If DCount("number1", "tp1") < 1 Or IsNull(DMax("number1", "tp1", "[f_date]=#" & Format(Me.f_date.Value, "dd/mm/yyyy") & "#")) = True Then Me.number1 = 1 Me.code1 = Left(Right(Me.f_date, 2), 4) & "\" & Format(Me.f_date, "mm") & "\" & Format(Me.f_date, "dd") & "-000" & Me.number1 Else Me.number1 = DMax("number1", "tp1", "[f_date] =#" & Format(Me.f_date.Value, "dd/mm/yyyy") & "#") + 1 Me.code1 = Left(Right(Me.f_date, 2), 4) & "\" & Format(Me.f_date, "mm") & "\" & Format(Me.f_date, "dd") & "-000" & Me.number1 End If End Sub واليك ملفك بعد تعديل واذا ما فهمت من الكود راح نشرح لك باذن الله تقبل تحياتي db9790.rar
    1 point
  41. غير في هذا السطر فقط : prtyr = Right(DatePart("yyyy", Date), 2) ليصبح بعد التعديل هكذا : prtyr = DatePart("d", Date)
    1 point
  42. وجدت لكم بالجعبة الفقيرة السطر التالي ولطلب الاخ محمد سلامة Private Sub Form_BeforeInsert(Cancel As Integer) ID = "S" & Replace(Nz(DMax("id", "tbl1", "id like 's" & Right(Year(Date), 2) & "*'"), "s" & Right(Year(Date), 2) & "00000"), "s", "") + 1 End Sub كما يمكن وضع السطر السابق كقيمة افتراضية للعنصر وبدون كود بالتوفيق
    1 point
  43. معذرة اخي محمد لم انتبه ان المسألة بحاجة الى تعديل آخر لاحظ السطر هذا الموجود في الكود xNext = Val(Mid(xLast, 3, 5)) + 1 فيه حاجة لازم تتغير في السطر اعلاه ، لأننا اضفنا حرفا الى الترقيم الذي هو حرف s فالرقم 3 يعني اننا سنبدأ العد من اليسار ابتداء من الحرف الثالث الى السابع ، ثم نضيف اليه واحد ولكن الحرف الثالث من اليسار في الكود الأصلي هو الرقم الذي يأتي بعد السنة ( التي هي رقمين ) ولكننا اضفنا حرف s قبل رقمي السنة لذا يجب ان نعدل الـرقم 3 الى 4 لكي نبدأ من الحرف ( او الرقم ) الرابع لذا يجب ان نعدل السطر المذكور ليصبح xNext = Val(Mid(xLast, 4, 5)) + 1 اعلم انه يكفيك الاشارة الى مكان الخلل ولكني تبسطت بالشرح لمن يأتي لاحقا
    1 point
  44. يمكن وعلى نحو ما تفضلت به ولكننا نحتاج الى بعض التعديلات التعديل الاول على نوع الحقل id داخل الجدول الى نص بدلا من رقم حتى يقبل الرموز التعديل الثاني : هو اجراء المقارنة على الارقام الثلاثة الاخيرة بدلا من مقارنة الرقم كاملا والسبب وجود الرمز الفاصل وتعديلات اخرى يمكنك ملاحظتها عند المقارنة مع الكود السابق Private Sub Form_BeforeInsert(Cancel As Integer) On Error Resume Next Dim xLast, xNext As Integer Dim prtyr, prtTxt As Integer prtyr = DatePart("yyyy", Date) prtTxt = CLng(Left(DMax("ID", "tbl1"), 4)) xLast = CLng(Right(DMax("ID", "tbl1", prtTxt = prtyr), 3)) If IsNull(xLast) Then xNext = 1 Else xNext = xLast + 1 End If Me!ID = prtyr & "/" & Format(xNext, "000") End Sub ترقيم مع السنة.rar
    1 point
  45. السلام عليكم ورحمة الله وبركاته يمكنك تحويل التقرير إلى pdf ومن ثم عند الطباعة تحدد الطابعة وتحدد حجم الورقة كود التحويل إلى pdf DoCmd.OutputTo acOutputReport, ReportName, acFormatPDF, , True حيث ReportName هو اسم التقرير
    1 point
  46. للربط والفائدة ! http://www.officena.net/ib/index.php?showtopic=60965&hl=
    1 point
  47. لكي تعم الفائدة احببت ان اوجه اخواني الى مكتبة الموقع فيها بعض الدروس التي تخص الموضوع وهي بعض الكتب الالكترونية كنت قد عملتها منذ سنتين خلاصة لبعض الاساتذة الكرام في هذا المنتدى كتاب الكتروني : دورة المبتدئين في ال VBA كتاب الكتروني : دورة للمتوسطين في الVBA للاستاذ هادي كتاب الكتروني : دورة في الVBA وتطبيقاته في الاكسل كتاب الكتروني: دروس في VBA والجداول المحورية للاستاذ محمد طاهر
    1 point
×
×
  • اضف...

Important Information