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

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

  1. Ali Mohamed Ali

    Ali Mohamed Ali

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


    • نقاط

      33

    • Posts

      11,621


  2. سليم حاصبيا

    سليم حاصبيا

    أوفيسنا


    • نقاط

      6

    • Posts

      8,723


  3. خيماوي كووول

    خيماوي كووول

    الخبراء


    • نقاط

      5

    • Posts

      196


  4. ابوخليل

    ابوخليل

    أوفيسنا


    • نقاط

      4

    • Posts

      11,720


Popular Content

Showing content with the highest reputation on 17 ينا, 2021 in all areas

  1. وعليكم السلام-تفضل تاريخ التقاعد1.xlsx
    3 points
  2. وعليكم السلام-فقط يمكنك استخدام هذه المعادلة =IF([@[تاريخ الإنتهاء الفعلي]]="",[@[التاريخ المخطط للإنتهاء]]-[@[تاريخ إرسال المهمة]],[@[تاريخ الإنتهاء الفعلي]]-[@[تاريخ إرسال المهمة]]) المهام -2.xlsx
    3 points
  3. 3 points
  4. السلام عليكم ورحمة الله وبركاته تفضل اخوي العزيز .. =COUNTIF(C$3:C3,C3)
    2 points
  5. الطريقة الثانية : بدون تغيير في عناصر النموذج و لكن ستواجه مشكلة الحفظ في حدث ما قبل التحديث للنموذج وهذا يستلزم معالجته بطريقة اخرى لأن الطريقة الثانية هذه تستلزم تحديث النموذج وأنت جعلت حقل الفرع مطلوب Private Sub idate_AfterUpdate() On Error GoTo i_err Me.Refresh i_err: If Err.Number = 3022 Then 'Or Err.Number = 2115 Response = acDataErrContinue Beep MsgBox "التاريخ مكرر" Undo End If End Sub مساعدة2.rar
    2 points
  6. صحيح اخي احمد .... اوقات الواحد يحاول يعدلها في راسه وما تتعدلش دعنا ننزل على رغبة الأخ مصطفى اولا حقل التاريخ مرتبط بحقل هو بالاصل مفتاح يعني ماراح يسمح بالتكرار فيمكننا معالجته بأكثر من طريقة الطريقة الاولى : ادخال التاريخ في حقل غير منضم فإن قبله اكسس يتم نقله الى الفورم وتسجيله في الجدول وإلا يتم الغاء العملية Dim x As Boolean On Error Resume Next x = DLookup("[تاريخ الدفعة]", "[تسجيل دفعات الصرف]", "[تاريخ الدفعة]=#" & Me.idate & "#") If x = True Then DoCmd.CancelEvent MsgBox "التاريخ مكرر" Exit Sub Else End If مساعدة.rar
    2 points
  7. وعليكم السلام-عليك بإستخدام هذه المعادلة =IFERROR(IF($A2="خاص",VLOOKUP($O2,المسافة!$B$2:$G$110,6,0)/2,VLOOKUP($O2,المسافة!$B$2:$G$110,6,0)),"") معادلة - 1خاص.xlsm
    2 points
  8. وعليكم السلام-تفضل يمكنك استخدام هذه المعادلة =IFERROR(DATEDIF(TODAY(),E12,"y") & "سنة " &DATEDIF(TODAY(),E12,"ym")&" شهور "&DATEDIF(TODAY(),E12,"md")&" يوم ","") 1رقم قومي - نسخة.xlsx
    2 points
  9. 2 points
  10. وعليكم السلام-تفضل لك ما طلبت بمعادلات المصفوفة ... لابد من الضغط على (Ctrl+Shift+Enter) بعد نسخ المعادلة وليس Enter فقط كباقى المعادلات MM1.xlsx
    2 points
  11. وعليكم السلام-يمكنك ذلك بهذه المعادلة =IF(DATEDIF(A4,B4,"md")>22,1+DATEDIF(A4,B4,"M"),DATEDIF(A4,B4,"M")) أما اذا كنت تريد ان تتأكد من امكانية تطبيق هذه المعادلة بالأكسيس فعليك برفع مشاركة اخرى بقسم الأكسيس فرق بالشهور1.xlsx
    2 points
  12. وعليكم السلام-يمكنك استخدام هذه المعادلة لطلبك =IFERROR(VLOOKUP($A2,$K$2:$L$60,2,0),"") numbers1.xlsx
    2 points
  13. 2 points
  14. ملف اكسل فيه اوراق لتسهيل قضاء الصلوات الفائته اعرض الملف السلام عليكم 🙂 احتجت لطريقة لمتابعة قضاء بعض الصلوات الفائته ، فعملت هذا الملف وفيه 3 اوراق مختلفه ، حسب ذوق كل شخص ، ورقة لكل سنة ، اطبعها و أشّر على كل صلاة قضيتها ، وافضّل الورقة الثانية او الثالثة ، لانك تتحدى نفسك بملازمة تاريخك اليومي 🙂 مع مراعة اني لم التفت للسنة الهجرية ، وانما عملت على الاشهر الميلادية لتسهيل قضاء الصلوات اليومية مقارنة مع تاريخ اليوم الميلادي ، وللعلم ، فإن التاريخ الهجري اقل من التاريخ الميلادي بحوالي 11 يوم لكل سنة : 1. . 2. . 3. . جعفر صاحب الملف jjafferr تمت الاضافه 14 ينا, 2021 الاقسام أدوات عامة  
    1 point
  15. سلسلة تعليم بور كويري ........الجزء السابع لماذا نستخدم الاتصال فقط بالبيانات في بور كويري WHY LOAD DATA AS CONNECTION ONLY???? في الفيديو دة تقدر تجيب بيانات كتير وتعمل اتصال فقط بيها علشان متعملش حمل على الشيت وتقلل مساحته وكمان هانضف البيانات ونشيل البيانات اللي موش عايزنها ونفصل الاسم الاول عن الاسم الأخير وندمج الجدولين مع بعض ونعمل التعديلات والاضافات اللي عايزينها https://www.youtube.com/watch?v=HXEFMfPYyH0&t=25s
    1 point
  16. ما المقصود محسوبة يدوياً اود ان ابنهك الى شىء هام دالة DateDiff في الاساس تقوم بعرض الفاصل بين تاريخين سواء يوم او شهر او سنة فمثلاً الفاصل الزمني بين 01/01/2021 الى 31/12/2021 لن يكون 1 سنة بل سيكون 11 شهر + 30 يوم الفاصل الزمني بين 01/01/2021 الى 31/01/2021 لن يكون شهر بل سيكون 30 يوم الفاصل الزمني بين 01/01/2021 الى 31/03/2021 لن يكون ثلاثة اشهر بل سيكون 2 شهر + 30 يوم وبناءأ عليه فالكود المستخدم صحيح 100% باذن الله والشكر موصول لصاحب الكود الاساسي جعله الله في ميزان حسناته تحياتي
    1 point
  17. إن شاء الله هبقى ارفع البرنامج فى موضوع منفصل واشرح البرنامج ليستفيد منه أعضاء الموقع الكرام
    1 point
  18. ارجو أن يفيدك هذا الرابط فيما تريد بآخر الموضوع ستجد مرفقات لا تستعجل القراءة - هو باللغة الانجليزية. تمنياتي بالتوفيق How add and edit and delete attachment field
    1 point
  19. وعليكم السلام ورحمة الله وبركاته والله اتأخر ردك حبتين ان كان ما تعني مرفق من نوع OLE فاطلع علي هذا الربط للأستاذ جعفر حفظه الله تمنياتي بالبتوفيق ومن باب النصح اضافة المرفقات داخل قاعدة البيانات يزيد من حجمها بشكل مبالغ فيه وان كان ولا بد بامكانك أن ترفق المرفقات بفولدر بجوار البرنامج وتضع لنك لها داخل قاعدة البيانات
    1 point
  20. بالاضافة الي ما تفضل به أخي أبو عبدالله من خصائص الزر اضبط الخاصية كما بالصورة
    1 point
  21. اهلا ومرحبا بك اخى ومعلمى وشيخنا العزيز ابوخليل لم ارغب بالنزول ولكن رغبت بالنهضه به وتنبيهه للوضع الحالى بانه لن يتم تسجيل اى فروع اخرى فى نفس التاريخ وحلها بالترقيم التلقائى مفتاح اساسى او كما اشار اخى واستاذى العزيز خالد بعمل مفتاح اساسى مكون من حقلين اما حقل التاريخ ولاخر ترقيم او حقل التاريخ والفرع وانت قمت بالتعديل المناسب وبما اننى طالب علم فى مدرستكم وع قد حالى واتعلم منكم ومن اخوانى واساتذتى جزاكم الله عنا خيرا فارفق تعديل اخر بما اننا قد قمنا بالنزول وفى حدث قبل التحديث لحقل التاريخ اختر التاريخ وعند الخروج اذا كان موجود ستخرج لك الرساله وان لم يكن سينتقل للكمبو Private Sub date_BeforeUpdate(Cancel As Integer) Dim dbs As DAO.Database Dim rst As DAO.Recordset Set dbs = CurrentDb Set rst = dbs.OpenRecordset("SELECT [تسجيل دفعات الصرف].* FROM [تسجيل دفعات الصرف];") rst.FindFirst "[تاريخ الدفعة]=#" & Format([تاريخ الدفعة], "mm/dd/yyyy") & "# " If rst.NoMatch Then Exit Sub Me.nam.SetFocus Else Do While Not rst.NoMatch MsgBox "هذا التاريخ مسجل من قبل" rst.FindNext "[تاريخ الدفعة]=#" & Format([تاريخ الدفعة], "mm/dd/yyyy") & "# " Loop rst.FindNext "[تاريخ الدفعة]=#" & Format([تاريخ الدفعة], "mm/dd/yyyy") & "# " End If Me.Undo End Sub بالتوفيق مساعدة_3 - Copy.accdb
    1 point
  22. السلام عليكم تفضل اخي الكريم Option Compare Database Option Explicit Private Const IDC_HAND = 32649& Private Declare Function LoadCursor Lib "user32" Alias "LoadCursorA" (ByVal hInstance As Long, ByVal lpCursorName As Long) As Long Private Declare Function SetCursor Lib "user32" (ByVal hCursor As Long) As Long Private Sub Cmd01_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) SetCursor LoadCursor(0, IDC_HAND) End Sub تحياتي
    1 point
  23. هذه المعادلة =LOOKUP(MAX(ورقة2!$B$1:$B$100)+1,ورقة2!$B$1:$B$100,ورقة2!$B$1:$B$100) salman.xlsx
    1 point
  24. السلام عليكم لديا مشاركة بسيطة في الاحتساب لقيمة معينة بناء على ثلاث شرائح او نسب بطريقة بسيطة ومختصرة بدلا من المعادلة المطولة وصولا للمعلومة بسرعة ويدويا بمجرد النظر للمبلغ ولاي شريحة يندرج فيتم تخفيض (تنقيص)مبلغ ثابت من المبلغ الاساسي وضرب الباقي في قيمة النسبة المئوية او العكس من صافي المبلغ كيف اضيف له قيمة الشرائح للحصول على المبلغ الاساسي والشرح موضح في ملف الاكسل المرفق طبعا المثال الذي عملت عليه تم اقتباسة من احدى مشاركات المنتدى وكذلك الحل وعملت حل بطريقة مختصرة قد يستفيد البعض من ذلك. وتقبلوا خالص تحياتي معادلة مختصرة لايجاد القيمة بناءعلى عدة شرائح.xlsx
    1 point
  25. نعم يمكن استخدام دالة nz اذا كان حقلي التاريخ فارغاً Frook3: CalcAgem(Nz([AGAM1];0);Nz([AGAM2];0))+IIf(CalcAgeD(Nz([AGAM1];0);Nz([AGAM2];0))>22;1;0) UP-New Microsoft Access 11111.rar تحياتي
    1 point
  26. بعد ادنكم ربما تقصد هذا الشيء Classeur1.xlsx
    1 point
  27. السلام عليكم ورحمة الله اخى الكريم يمكنك تعديل هذا الجزء من المعادلة بحيث لا تتخطى الصف الذى تطهر فيه النتائج =INDEX($A$2:$D$6;COUNTA($A$2:$A$6) مثلا ان الرقم 6 فى المعادلة يمكنك تغييره الى 10 او 50 او 100 او 1000 وهكذا الى آخر نطاق قد تظهر فيه البيانات و بذلك سوف تطهر لديك كل النتائج
    1 point
  28. وعليكم السلام 🙂 وههلا وسهلا بك في المنتدى 🙂 للإستفادة القصوى من المنتدى ، رجاء قراءة قوانين المنتدى : https://www.officena.net/Tips/Questions.htm الطرق الاسهل: 1. استخدم الامر OpenArgs لإرسال اسم النموذج ، عند فتح النموذج Z02_Load_File ، هكذا : DoCmd.OpenForm "Z02_Load_File",,,,,,me.name او لإرسال الرقم 123456 DoCmd.OpenForm "Z02_Load_File",,,,,,"123456" وفي اي من احدات النموذج Z02_Load_File ، يمكنك قراءة هذه القيمة بإستعمال me.OpenArgs ، وطبعا تقدر ترسل اي عدد من القيم بهذه الطريقة ، الشرط ان القيم تكون بين "" ، مثل : DoCmd.OpenForm "Z02_Load_File",,,,,,"123456|Finance_Department" ثم في النموذج Z02_Load_File ، تستعمل الامر Split لتفرق بين هذه القيم. 2. ان تعمل متغير في وحدة نمطية مستقلة ، هكذا : Option Compare Database option explicit Global myValue as string او public myValue2 as integer ثم لم تعطي القيمة قبل ان تفتح النموذج Z02_Load_File ، هكذا: myValue = "This is a test" DoCmd.OpenForm "Z02_Load_File" او myValue = 998877 DoCmd.OpenForm "Z02_Load_File" وفي اي من احدات النموذج Z02_Load_File ، يمكنك قراءة هذه القيمة بإستعمال اسم المتغير myValue او myValue2 ، 3. او نفس طريقة #2 ، ولكن باستعمال TempVar جعفر
    1 point
  29. هذه الحالة تظهر حين تقوم بعملية فلترة للبيانات... يكفي إلغاء الفلترة وستعود الأمور إلى مجاريها -اختفاء اللون الأزرق لأرقام الصفوف مع ظهور هذه الصفوف- (مع مراعاة إظهار الصفوف المخفية إن تم إخفاءها يدويا)... تحياتي الخالصة
    1 point
  30. السلام عليكم ورحمة الله النتائج.xlsx
    1 point
  31. وعليكم السلام ... يمكنك استخدام هذه المعادلة بالتنسيقات الشرطية =OR(AND(I5=$F5,I5<>""),AND(I5=$G5,I5<>"")) حساب.xlsx
    1 point
  32. عمل رائع بارك الله فيك استاذ ماجد وزادك الله من فضله
    1 point
  33. حيث انك لم ترفع ملف للمعاينة و من باب التكهن بما تريد اقترح لك هذا الملف degree.xlsm
    1 point
  34. السلام عليكم ورحمة الله وبركاته تفضل اخوي العزيز Aziz.xlsm
    1 point
  35. This Macro Sub transfer_data() Application.ScreenUpdating = False Dim D As Worksheet Dim array_sheet, Itm Dim Flter_rg As Range, Ro% array_sheet = Array("رصيد", "ديون", "حالص") Set D = Sheets("Data") D.Select Set Flter_rg = D.Range("A2").CurrentRegion For Each Itm In array_sheet With Sheets(Itm) .Range("A2").CurrentRegion.Clear Flter_rg.AutoFilter 9, .Name Flter_rg.SpecialCells(12).Copy .Range("A2").PasteSpecial Ro = Cells(Rows.Count, 1).End(3).Row If Ro > 2 Then .Range("A3").Resize(Ro - 2).Value = _ Evaluate("Row(1:" & Ro - 2 & ")") End If End With Next Itm D.Select D.AutoFilterMode = False Application.ScreenUpdating = True Application.CutCopyMode = False End Sub file included Aziz_filter.xlsm
    1 point
  36. بالخدم استاذي العزيز ويارب مشافى ان شاء الله انت وجميع الناس بحق محمد وال محمد
    1 point
  37. السلام عليكم ورحمة الله وبركاته ممكن تجرب الملف .. الالماني .. الاختصار de .. المعادلة =Translate(A4,"ar","en") translate.xlsm
    1 point
  38. جمع تلقائي اكتب في أول صف فارغ من الخلية B الى الخلية E و عندما تكتمل البيانات في هذا الصف (4 عتاصر يقوم الماكرو بعمله) الصورة توضح ذلك (الملف مرفق) Summation_1.xlsm
    1 point
  39. مجدداً حلايا لا علاقة لها بالجدول تضاف اليه هذا الملف يحتوي على صفحتين (اختر ما تريد ) كل واحد الماكرو الخاص بها My_test.xlsm
    1 point
  40. وعليكم السلام 🙂 الحمدلله انك حصلت على الجواب الشافي 🙂 هذا اللي دائما اذكره : جعفر
    1 point
  41. استاذى الفاضل / @أبو عبدالله الحلوانى هذا الحل هو نفس الحل الذى ذكرته لحضرتك اعلاه ـ ارجو النظر الى الفقرة التالية من الرابط الذى وضعته حضرتك لانى قدر مررت عليه سابقا واخذت الحل منه كما فعلت حضرتك وقد ترجمته بترجمه جوجل وهو كالتالى: - Subroutine حيث أسمي تحديث الجدول المباشر. قبل استدعاء التحديث ، قمت بتعيين متغير السلسلة هذا على قيمة مصدر السجلات خلف النموذج المرتبط ، وبالتالي التقاط عبارة SQL الدقيقة المستخدمة في ذلك الوقت. بعد ذلك ، قمت بتعيين Recordsource للنموذج على سلسلة فارغة ("") لفصله عن البيانات. بعد ذلك ، أقوم بتحديث البيانات. بعد ذلك ، قمت بتعيين مصدر السجلات للنموذج مرة أخرى على القيمة المحفوظة في متغير السلسلة ، مع إعادة إنشاء الربط والسماح له بالتقاط القيمة (القيم) الجديدة في الجدول. إذا كان هناك نموذج فرعي واحد أو أكثر متضمن في هذا النموذج ، فيجب عندئذٍ معالجة حقول "الارتباط" بطريقة مماثلة لمصدر السجلات. عند تعيين Recordsource إلى سلسلة فارغة ، قد ترى #Name في الحقول غير المنضمة الآن. ما أفعله هو ببساطة تعيين الخاصية المرئية إلى خطأ على أعلى مستوى ممكن (قسم التفاصيل ، النموذج الفرعي ، إلخ) أثناء الوقت الذي يكون فيه مصدر التسجيل فارغًا ، اخى الفاضل ليس مهم ان يكون النموذج فرعى ام لا طالما تعارضت الكتابة قم بتغير مصدر السجل الى فارغ ثم ارجع مباشرا وضع مصدره الاستعلام الاساسى اما عملية : الطابع الزمنى ليس الا التعارض وقت تسجيل المستخدمين فى وقت واحد على كلا الحمد لله لما توصلت اليه واشكرك جزيلا لانك وضعت هذا الرابط لانى بحثت عليه ولم اجده مرة ثانية كل الاحترام والتقدير
    1 point
  42. السلام عليكم ورحمة الله وبركاته اقدم الى المكان الذى لا انسى فضله علي هذا العمل المتواضع تقبل الله منا ومنكم صالح الاعمال . بسم الله ◀مؤشرات قياس الاداء (KPIS) Key Performance Indicators وهو مقياس كمى لقياس هدف الاعمال والتى ترتبط بالاستراتيجية الخاصة بالشركة وهى مقياييس تسمح للاداره بتقييم الاداء بصوره سريعة وهى تستخدم مؤشرات مالية وغير مالية لمقارنة الاهداف الموضوعه . ◀وقد تناولنا فى هذا النموذج الخاص KPI كيفية قياس مدى تحقيق الهدف لمديرى ومشرفين وفريق المبيعات وتكون هذا النموذج من ◀ورقة عمل الهدف الاستراتيجى : وهنا يتم ادخال فترة التطبيق وشكل مؤشرات الهدف ورد الفعل المناسب فى حالة تحققه ◀ورقة عمل من 1 : 20 : وهى بمثابة اجنده شهرية لكل فرد يسجل فيها التارجيت او الهدف واجمالى المتحقق اليومى وهنا سيعرض لك KPI يومى وشهرى وايضا يوجد ملخص عام فى الاعلى ◀ورقة عمل التقرير العام : وهى تشمل قياس الاهداف لكل فرد بشكل يومى وشهرى وهنا يتم طباعة هذه الصفحة وارسالها لمتخذى القرار باى شكل . هذا وماكان من توفيق فمن الله وحده وماكان من خطأ او سهوا او نسيان فمنى ومن الشيطان والله والرسول منه براء ------------------- النموذج متاح للجميع تحميله وكلمة المرور هى 123 نصيحة : يمكنك التعديل على النموذج كما تريد خذ الافكار وطبق على مجال عملك --------------- تحميل الملف http://www.mediafire.com/file/501t47bzv7oh3zh/KPI-2018.xlsm/file ------------------- #خبير_اكسيل #KPI_EXCEL #EXCEL_BI #زكاة_العلم_نشره لاتنسونا بصالح دعاؤك يرجى مشاركة الجميع KPI-2018.xlsm
    1 point
  43. السلام عليكم ورحمة الله وبركاته إخواني الكرام .. أحاول دائماً أن آتي إليكم بما هو مفيد وجديد ، في عالم الإكسيل ، اللامتناهي ، والممتد أقدم لكم اليوم دالة معرفة .. تقوم الدالة باستخراج البريد الإلكتروني أو الايميل Email من داخل النصوص ... قد تفيد أحد ما في وقت ما .. أترككم مع الدالة ومع الملف المرفق .. تقبلوا تحياتي Extract Email Address.rar
    1 point
  44. الكود يتم كتابته في شاشة الكود والتي يمكن إظهارها عن طريق الضغط على alt + F11 .. على سبيل المثال قم بتصميم نموذج جديد يحتوي على أداتي زري Command Button وأداة مربع نص TextBox .. قم بالنقر بزر الماوس الأيمن على الأداة Command Button وقم باختيار إنشاء حدث ثم منشئ البرامج .. هنا ستظهر نافذة الكود .. ستجد بأعلى نافذة الكود قائمتين منسدلتين بجوار بعضهما البعض .. اختر في اليسرى General وهنا سينقلك لقسم التصريحات العامة حيث يمكنك تعريف المتغيرات العامة هنا أو استخدام دوال ال API كما هو الحال بالنسبة لهذا الخلاص .. الخلاصة: قم بنسخ السطر التالي هناك Private Declare Function LoadKeyboardLayout Lib "user32" Alias "LoadKeyboardLayoutA" (ByVal pwszKLID As String, ByVal flags As Long) As Long ثم بعد ذلك اختر من القائمة المنسدلة إحدى أدوات ال Command Button وقم بوضع هذا السطر: LoadKeyboardLayout "00000401", 1 وفي الأداة الثانية قم بوضع السطر الآخر LoadKeyboardLayout "00000409", 1 بعد ذلك قم بتجربة البرنامج وانظر كيف نقوم بالتحويل بين اللغتين عن طريق الضغط على الأزرة .. تحياتي :(
    1 point
  45. هذ السطر في قسم التصريحات العامة General_Declarartion: Private Declare Function LoadKeyboardLayout Lib "user32" Alias "LoadKeyboardLayoutA" (ByVal pwszKLID As String, ByVal flags As Long) As Long وهذا للتحويل إلى اللغة العربية: LoadKeyboardLayout "00000401", 1 وهذا للتحويل إلى اللغة الإنجليزية: LoadKeyboardLayout "00000409", 1 :)
    1 point
  46. اذا أردت نسخ سجل بالكامل فلا أفضل استخدام استدعاء أوامر القوائم و لكن يتم ذلك بال dao أو ال ado هذا مثال لنسخ السجل الموجود فى النموذج الي سجل جديد مع تغيير الترقيم باضافة 1 و هو يحتاج الي اضافة مرجع dao و يتم فيه نسخ السجل فى النموذج الحالي و اضافة سجل و فتح النموذج علي السجل الجديد Private Sub copyRec_Click() Dim MYDB As Database, MYSET1 As Recordset Set MYDB = CurrentDb() Set MYSET1 = MYDB.OpenRecordset("Query-or-Tablename") MYSET1.AddNew Dim n As Long n = DMax("inID", "Query-or-Tablename") + 1 MYSET1![ID] = n MYSET1![Field1] = Me![TextBox1] MYSET1![Field2] = Me![TextBox2] MYSET1![Field3] = Me![TextBox3] MYSET1![Field4] = Me![TextBox4] MYSET1.Update MYSET1.Close Set MYDB = Nothing DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70 MsgBox " Copy Record Data Completed into record no. :" & Str(n), 64, "Alert" Dim stLinkCriteria As String stLinkCriteria = "[ID]=" & n DoCmd.OpenForm "Formname", , , stLinkCriteria End Sub
    1 point
  47. السلام عليكم ورحمة الله وبركاته لمنع المستخدم من اغلاق النموذج حتى لو استخدم مفتاحي ALT+F4 إلا بالضغط على زر السماح بالخروج ملاحظة : اذا لم يتم وضع زر للسماح بالخروج فلن يتم إغلاق النموذج . 1- افتح النموذج المراد عدم إغلاقه في وضع التصميم . 2- غير خاصية زر الاغلاق للنموذج إلى ( لا ) . 3- من قائمة عرض اختر تعليمات برمجيه. 4- انسخ الكود التالي في قسم الاعلانات ( Declarations ) . Option Explicit Public blnClose As Boolean 5- ضع في حدث عند التحميل للنموذج الكود التالي blnClose = False 6- ضع زر امر على النموذج واعطه الاسم التالي : السماح بالخروج 7- في حدث عند النقر لزر السماح بالخروج ضع الكود التالي : blnClose = True DoCmd.Close acForm, "FormName", acSaveNo 8- ضع الكود التالي في حدث عند إلغاء التحميل : Dim strMessage As String Dim intStyle As Integer Dim strTitle As String strMessage = "انت تحاول إغلاق النموذج بطريقة غير صحيحة" & _ vbCrLf & "فضلا ... أغلق النموذج بالطريقة الصحيحة وذلك بالضغط على زر السماح بالخروج " intStyle = vbOKOnly + vbCritical strTitle = "إغلاق غير صحيح" If blnClose = False Then MsgBox prompt:=strMessage, buttons:=intStyle, Title:=strTitle Cancel = True End If 9- شغل النموذج وحاول اغلاقه بالضغط على مفتاحي ALT+F4 ... سوف تخرج الرسالة السابقة . 10- إضغط على زر السماح بالخروج ثم حاول إغلاق النموذج . 11- دعواتكم لنا بالتوفيق .
    1 point
×
×
  • اضف...

Important Information