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

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

  1. jjafferr

    jjafferr

    أوفيسنا


    • نقاط

      13

    • Posts

      9,814


  2. ابوخليل

    ابوخليل

    أوفيسنا


    • نقاط

      7

    • Posts

      12,196


  3. sandanet

    sandanet

    الخبراء


    • نقاط

      4

    • Posts

      1,366


  4. Ali Sadiq

    Ali Sadiq

    02 الأعضاء


    • نقاط

      4

    • Posts

      53


Popular Content

Showing content with the highest reputation on 16 ديس, 2019 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. جزاك الله خيرا اخى خالد تقبل تحياتى وتمنياتى لك وللجميع بالتوفيق طبتم واهتديتم
    1 point
  15. السلام عليكم بعد اذن الاستاذ أحمد الفلاحجى مشاركة بسيطة لعمل تنبيه قبل 30 يوم من الموعد المحدد بوميض متحرك ويمكن اضافة رسالة msgbox لها ان احببت ذلك test.rar
    1 point
  16. السلام عليكم ارجو من حضرات الاساتذة المساعدة في خصم من الرصيد بمعني لما نسوي فاتورة بيع المطلوب في الفاتورة من اصناف يخصم من الرصيد ويتبقي المتاح فشلت عمل مكان للرصيد ( مخزن ) ما ادري اضيفه في اي جدول من الموجودين وكيف اخصم الرجاء المساعدة في تعديل المرفق فقد تعبت في الاطلاع علي نماذج كثيرة وفشلت في التطبيق وكل التقدير للجميع 123.rar
    1 point
  17. من اين تأتي بيانات هذه الحقول الـ 21 ، على اي اساس تأتي ؟ لم اجد صله لهم !! جعفر
    1 point
  18. لماذا لا تفعلها بالاكسس بدون وورد ... عن طريق التقارير ؟؟؟؟؟؟؟ هل هناك داعي معين لأستخدام الوورد ؟؟؟ ما هو الهدف من ذلك !!!!
    1 point
  19. اعذرني اخوي ، انا احاول افهم لهجتك العراقية ، فياريتك تكتب بالفصحى علشان نفهمها بالكامل !! اللي فهمته منك: عند فتحك النموذج الرئيسي ، ما تظهر رسالة الخطأ ، ولكن لما تغلق النموذج الرئيسي ، بعض الاوقات تظهر الرسالة ، وكذلك لما تعمل تصغير ثم تكبير للنموذج الرئيسي تظهر الرسالة ؟ ممكن ترفق كود اغلاق النموذج ، وكود تصغير/تكبير النموذج . جعفر
    1 point
  20. اخي نبراس 🙂 لماذا تنقر على "ابلغ فريق الموقع عن مخالفة" ؟ رسالتك هناك تذهب الى الادارة ، ولا يراها صاحب الموضوع. اذا كان قصدك ان توضع رد للموضوع ، فالرد من يكون من اسفل الموضوع ، في المكان المكتوب عليه "اضف رد على هذا الموضوع ، وهذا شكله: جعفر
    1 point
  21. اخي نبراس 🙂 لماذا تنقر على "ابلغ فريق الموقع عن مخالفة" ؟ رسالتك هناك تذهب الى الادارة ، ولا يراها صاحب الموضوع. اذا كان قصدك ان توضع رد للموضوع ، فالرد من يكون من اسفل الموضوع ، في المكان المكتوب عليه "اضف رد على هذا الموضوع ، وهذا شكله: جعفر
    1 point
  22. اشكرك جزيل الشكر استاذ جعفر jjafferr لقد اعطيت المطلوب بارك الله فيكم أنت والاستاذ Ali Sadiq على جهدكم الرائع والمساعدة التي قدمتموها لي جعلها الله في ميزان حسناتكم
    1 point
  23. فورم اضافة البيانات وترقيم فورى وتفريغ التكسات الفيديو
    1 point
  24. استاذي الكريم Ali Sadiq المثال الذي أوردته للأستاذ محمد سلامة يشرح نفس الفكرة التي طلبتها أنا لكن هذا المثال يستخدم الماكرو وقاعدة البيانات التي أعمل عليها تستخدم من البداية حتى النهاية الكود البرمجي ،، سأحاول أن اطبق ماتم شرحه من الاستاذ جعفر وأتمنى أن يلبي الغرض وتقبل تحياتي
    1 point
  25. يوجد فيديو قبل ده جارى تحميله من يومين بإسم حذف السطر واعادة ترقيم المسلسل وصل التحميل ل 90 % يامسهل تابع الفيديوهات يوجد عدد 2 فيديو لنفس الملف اضافة وتعديل وحفظ
    1 point
  26. يمكنك استخدام معادلة المصفوفة هذه =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
  27. اتفضل اخى مثالين من الملفات الموجوده عندى ان شاء الله تجد ما تريد بهم جزاهم الله خيرا اصحابهم تقبل تحياتى وتمنياتى لك وللجميع بالتوفيق طبتم واهتديتم تنبيه برسالة.rar تنبيه_برسالة_فى_التواريخ.rar
    1 point
  28. تم التعديل على الكود (التاريخ والترقيم يدخل اوتوماتيكياً في الجدول الاول) لذلك لا داعي لادراجهما Private Sub insertbutton_Click() Fil_data End Sub '========================= Sub Fil_data() Dim nextRow As Long With Sheets("sheet1") nextRow = .Range("C10000").End(xlUp).Row + 1 .Range("B" & nextRow).Resize(, 8).Value = .Range("B7").Resize(, 8).Value .Range("D" & nextRow) = Date + Time .Range("B7") = Application.Max(Range("B14:b10000")) + 1 .Range("C7").Resize(, 7) = vbNullString .Range("D7") = Date + Time End With End Sub الملف مرفق samples_NEW.xlsm
    1 point
  29. وعليكم السلام ورجمة الله وبركاته يوجد مثال رائع لاستاذنا ابوخليل ترقيم متقدم.rar يمكنك التحكم بعدد الاصفار بجوار الرقم من خلال السطر التالي Me!Receiptno = "R-" & Format(xNext, "0000") & "-" & prtyr تحياتي
    1 point
  30. السلام عليكم وضعت هذه المعلومات أسفل جدول القائمة (في معادلة واحدة على أساس أن عدد الصفوف في اللجنة الواحدة لا يتجاوز 2)... أرجو أن يفي الغرض المطلوب... ملاحظة : تم التعديل على بعض تنسيقات الملف... بن علية حاجي لجان الإختبارات.xlsm
    1 point
  31. غير الكود بهذا 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
  32. وعليكم السلام-طلباتك كثيرة ويصعب عمل كل هذا فالمنتدى تعليمى من المقام الأول وليس لعمل وتصميم البرامج الجاهزة ,فملفك حتى فارغ وخالى تماما من اية بيانات عليك التعلم من مشاهدة الفيديوهات التعليمية على اليوتيوب , فلا تجد احد يقوم هنا بتصميم وعمل كل هذا -فأنت لا تعرف اوقاتهم ومدى انشغال جميع الأساتذة فالكل يعمل هنا بدون مقابل ,فقط لوجه الله الكريم
    1 point
  33. أ.الحسن هل هذا طلبك .. جرب وأفد بالنتيجة بالتوفيق AddressSearch.accdb
    1 point
  34. ترقيم تلقائي يتجدد مع بداية كل سنة على النحو التالي 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
  35. السلام عليكم 🙂 . 1. نعم ، بعمل مجموعة استعلامات تحديث ، استعلام لكل جدول (وقد نحتاج الى اكثر من استعلام للجدول) ، ولكن يعملون بحدث رز واحد ، 2. نعم ، ولكن هذا يعتمد على المعيار والتصفية ، ويمكنك تجربة هذا على حقل معين في الجدول ، قم بتغيير بيانات بعض الحقول الفارغة الى - ، وشوف النتيجة. نعم كلامك صحيح. سبق وان ناقشنا هذا الموضوع ، وبعمق ، فرجاء لا تأتي بأسماء اعضاء وتحرجهم ، والنتيجة ببساطة انك لن تجد لهم جواب في اسئلتك القادمة (وقد تم حذف اسم العضو من موضوعك اعلاه). مشكلتك الاساسية هي عدم ظهور كافة البيانات في الاستعلام (الاستعلام وبدون اي معايير) ، وذلك لأن العلاقة التي عملتها بين الجدولين لا تطلب جميع السجلات وبغض النظر من وجودها في الجدول الآخر او لا ، وقد قام الاخ كاسر @kaser906 مشكورا بتوضيح وتعديل الاستعلام في 3 ابريل ، اي قبل 8 ايام تقريبا ، وذلك في الموضوع والطريقة التي قام بها: بما ان ربطك للجدولين ظاهرا هكذا (علاقة الربط غير حقيقة الربط) ، ولكن حقيقة ، الربط بحقل "اسم الشهرة" و"المؤلف" ، لأنك مستخدم Lookup لحقل "المؤلف" ، فالحقول (في المربع الاحمر) التي لا توجد اسماء لها في الجدول الآخر ، لن تظهر في الاستعلام . وبالنقر المزدوج على خط العلاقة بين الجدولين ، تظهر لنا هذه النافذه ، والتي نختار منها جميع السجلات في الجدول Marj3 ، بغض النظر اذا كانت موجودة في الجدول الآخر او لا . والنتيجة تكون هكذا (لاحظ السهم تحت الرقم 1) . وعلى اساسه نرى جميع البيانات في الاستعلام . الى هنا وينتهي الذي قام به الاخ كاسر ، ولما نرى النتيجة في النموذج ، وبعد إضافة معيار البحث في الاستعلام ، ثم نبحث عن: "د" . ففي واقع الامر ، لم تكن عندك مشكلة في NULL ، وانما في عرض البيانات بطريقة صحيحة 🙂 جعفر 1029.نموذج بحث.accdb.zip
    1 point
  36. لإضافة السجلات الفارغة ، يجب اضافة الجزء الاخير من المعادلة التاليه: Like IIf(Len([forms]![frm_Main]![fName] & '')=0,"*","*" & [forms]![frm_Main]![fName] & "*") or [DateX] is null هذا معناه انك تبحث عن معلومه معينه ، ويعطيك الاكسس هذه المعلومه ، وطبعا الحقل الفارغ البكر NULL لا يحتوي على هذه المعلومة ، لذلك تريد: 1. بيانات البحث ، 2. الحقول الفارغة في الحقل. ولكن دعني اعطيك نصيحة ، فالعمل على الحقول التي بها بيانات وبها فارغة ، ليس بالعمل السهل ، لذلك ، فالافضل ان تعبئ هذه الحقول الفارغة بعلامة مثل "-" (شرطة او ناقص) ، ولسهولة العمل ، اعمل استعلام تحديث لهذا الحقل ، بحيث تُدخل علامة - في جميع الحقول الفارغة ، فيصبح بحثك اسهل 🙂 جعفر
    1 point
  37. الرابط السابق لا يعطي النتائج اذا الحقل يساوي NULL ، لذلك عملت التغيير على استعلام برنامجك ، حتى تحتوي النتائج على جميع الحقول ، التي بها قيم او التي لا تحتوي على قيم او التي هي عبارة عن Null : هذا المثال للحقل School بدل School: Like "*" & [Forms]![Datamasterform]![School] استعمل School1: Nz([School],"") IIf(Len([Forms]![Datamasterform]![School] & "")=0,Nz([School],""),[Forms]![Datamasterform]![School]) جعفر 660.Test2000.mdb.zip
    1 point
  38. استأذن من استاذنا ابو خليل على المداخلة اتفضل ما طلبت للعلم انا غيرت اسماء الحقول من 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
  39. غير في هذا السطر فقط : prtyr = Right(DatePart("yyyy", Date), 2) ليصبح بعد التعديل هكذا : prtyr = DatePart("d", Date)
    1 point
  40. وجدت لكم بالجعبة الفقيرة السطر التالي ولطلب الاخ محمد سلامة 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
  41. صحيح كان الاولى التجربة حتى نختصر الوقت والجهد تفضل اخي الحبيب 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 = CLng(Mid(DMax("ID", "tbl1"), 2, 2)) xLast = CLng(Right(DMax("ID", "tbl1", prtTxt = prtyr), 5)) If IsNull(xLast) Then xNext = 1 Else xNext = xLast + 1 End If Me!ID = "S" & prtyr & Format(xNext, "00000") End Sub ترقيم مع السنة وزيادة حرف.rar
    1 point
  42. معذرة اخي محمد لم انتبه ان المسألة بحاجة الى تعديل آخر لاحظ السطر هذا الموجود في الكود xNext = Val(Mid(xLast, 3, 5)) + 1 فيه حاجة لازم تتغير في السطر اعلاه ، لأننا اضفنا حرفا الى الترقيم الذي هو حرف s فالرقم 3 يعني اننا سنبدأ العد من اليسار ابتداء من الحرف الثالث الى السابع ، ثم نضيف اليه واحد ولكن الحرف الثالث من اليسار في الكود الأصلي هو الرقم الذي يأتي بعد السنة ( التي هي رقمين ) ولكننا اضفنا حرف s قبل رقمي السنة لذا يجب ان نعدل الـرقم 3 الى 4 لكي نبدأ من الحرف ( او الرقم ) الرابع لذا يجب ان نعدل السطر المذكور ليصبح xNext = Val(Mid(xLast, 4, 5)) + 1 اعلم انه يكفيك الاشارة الى مكان الخلل ولكني تبسطت بالشرح لمن يأتي لاحقا
    1 point
  43. يمكن وعلى نحو ما تفضلت به ولكننا نحتاج الى بعض التعديلات التعديل الاول على نوع الحقل 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
  44. السلام عليكم ورحمة الله وبركاته يمكنك تحويل التقرير إلى pdf ومن ثم عند الطباعة تحدد الطابعة وتحدد حجم الورقة كود التحويل إلى pdf DoCmd.OutputTo acOutputReport, ReportName, acFormatPDF, , True حيث ReportName هو اسم التقرير
    1 point
  45. للربط والفائدة ! http://www.officena.net/ib/index.php?showtopic=60965&hl=
    1 point
  46. لكي تعم الفائدة احببت ان اوجه اخواني الى مكتبة الموقع فيها بعض الدروس التي تخص الموضوع وهي بعض الكتب الالكترونية كنت قد عملتها منذ سنتين خلاصة لبعض الاساتذة الكرام في هذا المنتدى كتاب الكتروني : دورة المبتدئين في ال VBA كتاب الكتروني : دورة للمتوسطين في الVBA للاستاذ هادي كتاب الكتروني : دورة في الVBA وتطبيقاته في الاكسل كتاب الكتروني: دروس في VBA والجداول المحورية للاستاذ محمد طاهر
    1 point
×
×
  • اضف...

Important Information