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

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

  1. jjafferr

    jjafferr

    أوفيسنا


    • نقاط

      8

    • Posts

      9,814


  2. أبوبسمله

    أبوبسمله

    الخبراء


    • نقاط

      5

    • Posts

      3,254


  3. lionheart

    lionheart

    الخبراء


    • نقاط

      5

    • Posts

      664


  4. Amr Ashraf

    Amr Ashraf

    الخبراء


    • نقاط

      5

    • Posts

      946


Popular Content

Showing content with the highest reputation on 22 ينا, 2022 in all areas

  1. السلام عليكم 🙂 الكثير يعتقد ان الامر Like في الاستعلام للبحث يكون بهذه الطريقة فقط: Like "*" & Forms!frm_Main!Srch_Item & "*" . بينما هناك العديد من الطرق للاستفادة من هذا الامر : عندنا هذا الجدول وفيه مجموعة اسماء: . ما تفرق ان نستخدم العلامة المزدوجة " او العلامة الاحادية ' اذا استعملنا الامر في اسم الحقل ، فنتائج السجلات الصحيحة التي تطابق معيار Like تكون -1 (بمعنى صح True)، هذه الطريقة ممكن نستفيد منها في جمع عدد الحقول . النجمة * معناها جميع الحروف ، جميع السجلات التي تبدأ بالحرف a او A ، وبقية الحروف التي خلفها (خلف a او A) ، والاكسس لا يفرق بين الحروف الصغيرة a والكبيرة A في الاستعلام . ولما نسبق الامر Like بالامر Not ، فهذا معناه عكس الاختيار السجلات التي لا تبدأ بالحرف a . السجلات التي تنتهي بحرف a . جميع السجلات التي تحتوي على الحرفين المتسلسلين ou . علامة الاستفهام ? معناها رقم الخانة التي يوجد بها الحرف (لاحظ انها علامة استفهام بالانجليزي وليست بالعربي) السجلات التي ثاني حرف فيها هو r . السجلات التي ثالث حرف فيها هو r . السجلات التي يكون فيها حرف r ثلاث خانات قبل الاخير . السجلات التي تبدأ بحرف a ، وطولها بعد حرف a لا يكون اقل من 15 خانه . السجلات التي تبدأ بالحرف a وتنتهي بالحرف n بغض النظر عن طول الحقل . الرمز # معناه رقم السجلات التي تبدأ بالحرف a وثاني حرف في الحقل يكون رقم . الحروف/الارقام/الرموز في الاقواس المستطيلة [] ، معناها البحث الحروف يكون فقط بين القوسين السجلات التي تبدأ بحرف B الى D فقط (يعني B و C و D) . السجلات التي تنتهي بالحروف B الى E . السجلات التي تبدأ بالحروف B و E و W فقط . العلامة ! معناها لا تُظهر السجلات التي لا تبدأ بالحرف B . السجلات التي لا تبدأ بالحروف من A الى B . السجلات التي تبدأ بحرف d وثاني حرف فيها بين الحروف N الى W . السجلات اللي فيها ارقام فقط بين الارقام 0 الى 9 . وهكذا نستعملها في الاستعلام مع الامر iif Like IIf([Forms]![frm_Main]![Srch_Item]=1,"*","*" & [Forms]![frm_Main]![Srch_Item] & "*") الشرح: اذا نتيجة [Forms]![frm_Main]![Srch_Item]=1 اعرض جميع السجلات Like "*" وإلا، اعرض فقط السجلات التي تحتوي على الحروف من الحقل في النموذج Like "*" & [Forms]![frm_Main]![Srch_Item] & "*") جعفر استفدت من هذا الرابط في بعض الاوامر اعلاه: https://www.w3schools.com/SQL/sql_like.asp Like Examples.zip
    5 points
  2. السلام عليكم ورحمة الله تم عمل اللازم ويرجى عدم العبث بالمعادلات عتى لا تختل النتائج اليك الملف كشف.xlsx
    3 points
  3. اخي العزيز .. بعد اذن استاذي عمر للسهولة استخدام الوظيفة switch Switch([name_fild1]=100;[table2]![fild2];[name_fild1]=50;[table2]![fild2];[name_fild1]=30;[table2]![fild2])
    2 points
  4. انت من ذكر العيوب ، ليس انا انا لست خبيرا ولكني هنا للتوجيه والتبيه الجميع هنا يقدمون المساعدة مجانا لوجه الله وحسب المتاح من وقتهم كان المفترض ان يغلق موضوعك في اول مشاركة لك ، يظهر انك كتبت الموضوع وانت في حالة غضب ومع ذلك خذ النصيحة الأخرى مهما كانت اساءتك : انت بحاجة الى محامي يتصفح البرنامج لان هذا هو اختصاصه وهو من يدلك على مواطن الخلل والاشياء التي بحاجة الى تعديل او اضافةا
    2 points
  5. طيب جميل يبقى مثال اخى واستاذى العزيز ابو جودى هيلبى طلبك نوضح ازاى الايبى اللى فى الجدول ده ايبى السيرفر نفسه اللى عليه قاعده البيانات الخلفيه فاذا تم انقطاع الاتصال بالايبى ده كل الواجهات المتصله بيه سيتم اغلاقها بعد 10 ثوانى لان البرنامج بيشيك على الايبى طول مالبرنامج شغال ولاحظ رد اخى العزيز ابوجودى النقطه رقم 2 يعنى ممكن تضيفه كنموذج فرعى للنموذج الرئيسى بتاعك لو مفتوح دايما فالبرنامج او اجعل هذا النموذج فردى كما هو واجعله مفتوح ومخفى دائما طول فتره عمل البرنامج بالتوفيق
    2 points
  6. السلام عليكم ورحمة الله وبركاته درسنا اليوم يتكلم عن كيفية تحزيم برنامج الأكسس بعد أن تنتهي من تصميم برنامجك وتكون مستعدا لتحويله إلى ملف EXE وذلك ليسهل عليك تنصيبه في أجهزة الحاسوب سواءا لعملائك أو أجهزة العمل أو غيرها .. كل ما ستحتاجه لتطبيق درس اليوم هو : ملف الأكسس / وأيكونة برنامجك الخاص ( اختياري) / وصورة لشاشة البدء بصيغة BMB ( اختياري) / وبرنامج الوينرار WinRAR . فعلى بركة الله ..
    1 point
  7.  خواطر إكسيلية أساتذتي الكرام إخوتي الأحبة السلام عليكم ورحمة الله وبركاته: بدا لي أن أكتب موضوعاً لا يقف حكراً على أحد – بل بإمكان كلٍّ منا أن يجود بما يخطر له من مواضيع الإكسيل التي يريد أن يفيد بها - وهنا أنطلق من كلمة إكسل التي تعني البراعة أو كما يحلو لنا أن نسميها في بلدي المكلوم "برنامج الجداول الإلكترونية" : ولذلك فإنني سأنطلق من خاطرة أولى تتحدث عن بعض اختصارات برنامج الإكسيل التي نصادفها بشكل يومي كما يلي: اختصارات لوحة المفاتيح في الإكسيل: إظهار(عرض) الصيغ في الخلايا بدلاً من نتائجها المحتسبة CTRL + ~ سابقة أثر(الخلايا التي أثرت في قيمة الخلية الحالية CTRL + [ تاريخ اليوم CTRL+ ; اختيار(تحديد كل) الجدول الحالي CTRL+ * الوقت الحالي CTRL+SHIFT+ ; نسخ من الخلية المجاورة بالأعلى CTRL+ ' هذا ما استطعت عرضه في عجالة من أمري وسيتبع إن شاء الله تعالى بمواضيع أخرى والسلام عليكم خواطر إكسيلية.rar
    1 point
  8. السلام عليكم مشاركه مع اخى واستاذى @Eng.Qassim جزاه الله خيرا هل هذ ما تريد Me.BEBY_Age = Me.yes & " سنه " & Me.mos & " شهر " & Me.das & " يوم " برنامج حضانة.accdb
    1 point
  9. احسنت اخى ومعلمى العزيز محمد @ابو جودي 💐 وجزاك الله خيرا على تواصلك مع الاخ السائل حسيت بكده لما سالته لذلك ارفقت اقتباس لردك وارفقته ووضحته لينتبه لها جزاك الله خيرا وان شاء الله فى ميزان حسناتك والشكر موصول للاستاذ موسى جزاه الله خيرا بالتوفيق اخوانى
    1 point
  10. يعنى ممكن تضيفه كنموذج فرعى للنموذج الرئيسى بتاعك لو مفتوح دايما فالبرنامج او اجعل هذا النموذج فردى كما هو واجعله مفتوح ومخفى دائما طول فتره عمل البرنامج طبعا جزاكم الله خيـرا استاذى القدير واخى الحبيب الاستاذ @الفلاحجى ولتمام القائدة للجميع تم التعامل مع المشكلة لايف ريموت اكسس لوحظ عدم وجود النموذج frmChkCon اصلا بالقاعدة والقليل من الاكواد التى على بعض النماذج فى الحدث Error والتى لا تثمن ولا تغنى من جوع بيدوا انه تم الدمج بين طريقتين لنفس السبيل بعد تدارك الموقف وظبط الاكواد كما ينبغى واضافة النماذج اللازمة من المثال الأصلى وبعد التجربة لوحظ مشكله بعدم اغلاق القاعدة لوجود احد النماذج مفتوحة وبالتالى تم تعليق القاعدة تم تلاشى هذه المشكلة باضافة الروتين الاتى ليقوم باغلاق كل شئ اولا Public Sub Logout() Dim F As Access.Form Dim i As Long ' Loop all open forms, from last to first, to avoid problems due to closing forms ' (removing them from the Forms collection) in the loop For i = Forms.Count - 1 To 0 Step -1 Set F = Forms(i) ' Close all forms except the login form If F.Name <> "frmLogin" Then DoCmd.Close acForm, F.Name End If Next i End Sub رجاء من الاستاذ @ahmus فضلا وكرما وليس امرا ارفاق قاعدة البيانات النهائية بعد التعديلات اللازمة لتعم القائدة على الجميع وشكرا
    1 point
  11. الشفافية ليست لون ،والشفافية في حقل النص ، معناه عدم وجود خلفية : . ومساعد اكسس يخبرنا طريقة استعمال هذه الاعدادات: . me.textbox.BackSyle = 0 وللاسف هذا الخيار لا يوجد في التنسيق الشرطي 😁 جعفر
    1 point
  12. اعتقد ان السبب هو المعيار [Forms]![FORM TABLE2-2]![MOhafazh] طبعا المعيار عاوز رقم المحافظه وليس الاسم لكي يعمل لذا يتوجب عليك عمل مفتاح مخفي لكي يعرف رقم المحافظه لكي يعمل جيدا جرب واخبرني
    1 point
  13. او اعمل لك وحدة نمطية ، ترسل لها البيانات المطلوبة من الاستعلام ، وفي الوحدة النمطية ، اعمل معادلاتك ، وارسل النتيجة الى الاستعلام. هذا مثال: جعفر
    1 point
  14. السلام عليكم ورحمة الله اليك الملف بعد عمل اللازم new.xlsm
    1 point
  15. بارك الله فيك استاذنا الفاضل ابو يوسف
    1 point
  16. ليس لدى القدرة على مشاهدة فيديوهات حالياً الافضل تحاول ترفق النموذج كامل اخى الكريم حتى نستطيع مساعدتك , غير ذلك انتظر من احد الاخوة مساعدتك بطريقة اخرى . الموديول يتم تحديثه مع فتح الاستعلام الجديد , وهو ما يتم عند فتح النموذج اذا كان مغلق او ضغط F5 لتحديث البيانات
    1 point
  17. اذا كان المطلوب تقييمه رقم تكتب هكذا If PW <> 100 اذا كان نص تكتب هكذا If PW <> "The Password" اذا كان تاريخ If PW <> #1/1/2022#
    1 point
  18. عليكم السلام ارفق القاعدة أخى الكريم , وهل المطلوب هو عند الضغط على الزر يقوم باخلاء الكومبوبوكس من الاختيارات السابقة ؟
    1 point
  19. انا بالفعل اديتك الحل اللى ينفع فى منشئ التعابير فى الاستعلام , لكن كل من IF,Select Case دوال خاصة بVBA لا يمكن استخدامها فى الاستعلامات .
    1 point
  20. او ضع هذا التعبير فى عمود فى استعلامك , مثال للجملة الصحيحة : Result: IIf([Field1]=50,"One",IIf([Field1]=100,"Two",IIf([Field1]=150,"Three",IIf([Field1]=200,"Four",IIf([Field1]=300,"Five"))))) النتيجة :
    1 point
  21. حياكم الله وبياكم أخي الحبيب @Ali Mohamed Ali ، ولكم بمثل مادعوتم تقبل تحياتي العطرة.😊
    1 point
  22. بارك الله فيك استاذ محمد وزادك الله من فضله
    1 point
  23. تفضل أخي هذي بعض نتائج البحث في المنتدى : والكثير غيرها .. ستجد مربع البحث أعلى يسار الصفحة في الشريط الأزرق لو شئت التعمق 🙂
    1 point
  24. 1 point
  25. ان كانت هذه هي المشكلة فحلها بسيط للغاية ان شاء الله ولكن ما اعتقد ان هذا ما يريده بالضبط فان اسماء الأعمدة بالجدول كما بالصورة التي ارفقها هي عبارة عن ارقام ولكن مجارة لما اقترحته استاذي هذا تعديل علي حسب ما تفضلتم به لحين رد استاذ احمد Public Function Subsalary(GradeNumber As Byte, RankNumber As Byte) As Double Subsalary = Nz(DLookup("A" & RankNumber, "Degree", "GradeNO=" & GradeNumber), 0) End Function وهذا التعديل يفترض ثبات البادئة النصية في اسماء كل الحقول Test (1).accdb
    1 point
  26. عن اذن استاذ احمد المشكلة .. ان استاذ احمد لا يريد ان تظهر في (المرحلة) = A1 وانما 1 وهكذا
    1 point
  27. شكرا لك استاذي العزيز @الفلاحجى معقولة الاكسس الحلو مابيكمل لابد من حيلة ما لاكمال الحل؟؟؟
    1 point
  28. السلام عليكم مشاركه مع اخوانى واساتذتى جزاهم الله كل خير من إرشادات لتسمية الحقول وعناصر التحكم والكائنات فى ميكروسوفت لا يمكنها أن تتضمّن أحرف تحكم (قيم ASCII من 0 إلى 31). واليك الرابط https://support.microsoft.com/ar-sa/office/إرشادات-لتسمية-الحقول-وعناصر-التحكم-والكائنات-120c27fa-7ae1-4182-9baa-dbd183179cc3 هذا والله اعلى واعلم بالتوفيق
    1 point
  29. You can clear the coulmns D and column E and use the code to get the desired results Sub Test() Const t As Double = 50 With Range("E5") .Formula = "=C5*D5" .Offset(1).Resize(6).Formula = "=C6*D6+E5" End With With Range("D5") .Formula = "=RANDBETWEEN(1,INT(($A$1-SUM(C6:$C$11))/C5))" .Offset(1).Resize(4).Formula = "=RANDBETWEEN(1,INT(($A$1-SUM(C7:$C$11)-E5)/C6))" .Offset(5).Formula = "=RANDBETWEEN(IF($A$1-E9>" & t & "+(C10+C11),INT(($A$1-SUM(C11:$C$11)-E9-(" & t & "-C10))/C10),1),INT(($A$1-SUM(C11:$C$11)-E9)/C10))" .Offset(6).Formula = "=(A1-E10)/C11" End With With Range("D5:E11") .Value = .Value End With End Sub
    1 point
  30. اعتقد ان المشكلة في نوع البيانات لكن طريقة استاذنا ابو خليل تنفعك كثيرا..فقط قم بتغيير التكست بوكس الى كومبوبوكس
    1 point
  31. Sub Test() Dim sName As String sName = Cells.Text & "D:\" & Cells(1, 2).Text & " Copy" & Format(Now, "-dddd-dd-mm-yyyy-") SaveWorkbookAs ThisWorkbook, sName, xlTextWindows End Sub Public Function SaveWorkbookAs(pWorkbook As Workbook, pFileName As String, pFileFormat As XlFileFormat) As Boolean Dim wFSO As Scripting.FileSystemObject, wWorkbook As Workbook, wScreenUpdating As Boolean, wEnableEvents As Boolean, wDisplayAlerts As Boolean, wTempName As String On Error Resume Next SaveWorkbookAs = False Set wFSO = New Scripting.FileSystemObject If pWorkbook Is Nothing Then GoTo EndFunction If (pFileName = vbNullString) Then GoTo EndFunction If (pWorkbook.FileFormat = pFileFormat) Then Err.Clear pWorkbook.SaveCopyAs pFileName SaveWorkbookAs = (Err.Number = 0) GoTo EndFunction End If With Application wScreenUpdating = .ScreenUpdating: .ScreenUpdating = False wEnableEvents = .EnableEvents: .EnableEvents = False wDisplayAlerts = .DisplayAlerts: .DisplayAlerts = False End With Err.Clear wTempName = wFSO.GetTempName pWorkbook.SaveCopyAs wTempName If (Err.Number > 0) Then GoTo EndFunction Err.Clear Set wWorkbook = Application.Workbooks.Open(wTempName, xlUpdateLinksNever) If (Err.Number > 0) Then GoTo EndFunction wWorkbook.SaveAs Filename:=pFileName, FileFormat:=pFileFormat SaveWorkbookAs = (Err.Number = 0) wWorkbook.Close SaveChanges:=False EndFunction: If (VBA.LenB(wTempName) > 0) Then If wFSO.FileExists(wTempName) Then wFSO.DeleteFile wTempName, True With Application .ScreenUpdating = wScreenUpdating .EnableEvents = wEnableEvents .DisplayAlerts = wDisplayAlerts End With Set wWorkbook = Nothing: Set wFSO = Nothing End Function From Tools > References: Microsoft Scriting Runtime
    1 point
  32. Sub Test() Dim r As Long Application.ScreenUpdating = False For r = 5 To Cells(Rows.Count, 3).End(xlUp).Row Cells(r, 37).Value = JoinIf("-", Range("F4:AJ4"), Range("F" & r & ":AJ" & r)) Next r Application.ScreenUpdating = True End Sub Function JoinIf(del As String, rngJoin As Range, rngCrit As Range) As String Dim c As Range, n As Long For Each c In rngCrit n = n + 1 If c <> Empty And rngJoin.Cells(n) <> "" Then JoinIf = JoinIf & del & Day(rngJoin.Cells(n)) Next c JoinIf = "'" & Mid(JoinIf, Len(del) + 1, Len(JoinIf)) End Function
    1 point
  33. بسم الله الرحمن الرحيم السلام عليكم ورحمة الله وبركاته هذا تعديل فيه رسم البر الأيمن والأيسر رسم قطاعات الترع 6.rar رسم قطاعات الترع 6.rar
    1 point
  34. هذا غير متاح و الله اعلم اثناء بحثي تعرفت على خاصية اخرى جميلة لتلوين الرسائل تتيح مجالات متعددة للتحكم لم استخدمها من قبل و لكنها ايضا للرسائل و ليس المجلدات و هي خاصية التنسيق الشرطي فى اوتلوك
    1 point
  35. وعليكم السلام ورحمة الله وبركاته ضع هذه المعادله في العامود j واسحب المعادله لاسفل =If(D2="نقدى";H2;G2+H2) وان شاء الله تفي بالمطلوب
    1 point
  36. Sub Test() Dim r As Range, c As Long Application.ScreenUpdating = False With ActiveSheet Set r = .Range("L4:L" & .Cells(Rows.Count, "L").End(xlUp).Row) c = .Cells(4, Columns.Count).End(xlToLeft).Column + 1 .Cells(4, c).Resize(r.Rows.Count).Value = r.Value End With Application.ScreenUpdating = True End Sub
    1 point
  37. حسب فهمي للمطلوب يمكنك استعمال هذه المعادلة في الخلية B3 =INDIRECT("'"&B1&"'!$B$2") مع نسخ المعادلة بالسحب يمينا حتى M3 بالتوفيق
    1 point
  38. تفضل بالنسبة لطلبك الثاني لم افهم ما تقصد بكتابة اللجنة في نفس سطر المجموع يمكنك رفع نمودج متوقع لما تريد CLASSEUR11.xlsm
    1 point
  39. الاكواد المستخدمة :- نحن استخدمنا هذه الوحدة النمطية بها اربع فانكشن Option Compare Database Public Function NumMoaalic() ' لاستخراج سريال المعالج ' Microsoft WMI Scripting v2.1 library ستحتاج مكتبة Dim varObjectToId As String Dim varSerial As String On Error Resume Next varObjectToId = "Win32_Processor,ProcessorId" Set SWbemSet = GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf(Split(varObjectToId, ",")(0)) varSerial = "" For Each SWbemObj In SWbemSet varSerial = SWbemObj.Properties_(Split(varObjectToId, ",")(1)) varSerial = Trim(varSerial) If Len(varSerial) < 1 Then varSerial = "Unknown value" Next NumMoaalic = varSerial End Function Public Function NumHard() ' لاستخراج سريال ھارد ' Microsoft WMI Scripting v2.1 library ستحتاج مكتبة Dim varObjectToId As String Dim varSerial As String On Error Resume Next varObjectToId = "Win32_OperatingSystem,SerialNumber" Set SWbemSet = GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf(Split(varObjectToId, ",")(0)) varSerial = "" For Each SWbemObj In SWbemSet varSerial = SWbemObj.Properties_(Split(varObjectToId, ",")(1)) varSerial = Trim(varSerial) If Len(varSerial) < 1 Then varSerial = "Unknown value" Next NumHard = varSerial End Function Function TxtToNumber(ByVal C As String) As String ' مساعد لتحويل الحروف والرموز الى الارقام ' حسب ما تريدون تقدرون ان تغير الارقام والحروف حسب رغبتكم Select Case C Case "A", "J", "R": TxtToNumber = 9 Case "B", "K", "S": TxtToNumber = 1 Case "C", "L", "T": TxtToNumber = 7 Case "D", "M", "U": TxtToNumber = 3 Case "E", "N", "V": TxtToNumber = 5 Case "F", "O", "W": TxtToNumber = 8 Case "G", "P", "X": TxtToNumber = 2 Case "H", "Y": TxtToNumber = 6 Case "I", "Q", "Z": TxtToNumber = 4 Case "-", "_", "\", " ", "/", ";", ":": TxtToNumber = "" Case Else TxtToNumber = C End Select End Function Function TxtInTextToNumber(SText) ' لتغيير الحروف والرموز الى الارقام Dim Numbers Dim I As Integer ' سيبحث عن الكل الحروف و الرموز وسيغير حسب فانكشن الاعلى For I = 1 To Len(SText) If IsNumeric(Mid(SText, I, 1)) Then Numbers = Numbers & Mid(SText, I, 1) Else Numbers = Numbers & TxtToNumber(Mid(SText, I, 1)) End If Next TxtInTextToNumber = Trim(Numbers) End Function وفي النموذج استخدمنا هذه الاكواد مع شرح Option Compare Database ' تم اعداد من قبل ' Shivan Rekany شفان ريکاني ' وليس لدينا مانع استخدامه في برامجكم فقط نريد منكم الدعاء Dim WqtTascil As Long ' متغير لتعرف عن الوقت التسجيل Private Sub Form_Load() ' كود عند تحميل النموذج 'On Error Resume Next Dim NumBeforeTascil, NumForTascil ' متغيران واحد لکي نعرف رقم الاول للتسجيل قبل استخدام الوقت والاخر رقم تسجيل الحقيقي Dim Spl() As String, LookAllMNT As String ' متغيران الثاني لكي نعرف كل معلومات في الجدول اذا تم تسجيل البرامج من قبل والاخر للتجزئة المعلومات Dim LookMyNm, LookMyNh, LookMyNTascil ' مساعد تجزئة المعومات Dim FrqDate As Integer ' متغير نستخدم لفرق بين تاريخ التسجيل و الدخول Dim FDate As Date, EDate As Date ' متغيران واحد للتاريخ التسجيل والثاني لاخر مرة لفتح البرامج ' رقم قبل تسجيل يساوي رقم واحد مع تحول سريال المعالج الى الارقام مع تحويل سريال الارد تقسيم واحد مع تحويل سريال الهارد NumBeforeTascil = Trim(Round(((1 & TxtInTextToNumber(NumMoaalic) & TxtInTextToNumber(NumHard)) / (1 & TxtInTextToNumber(NumHard))))) ' جميع المعلومات يساوي جلب بيانات الحقل سريال المعالج و الهارد ورقم التسجيل و مدة التسجيل و تاريخ التسجيل و تاريخ اخر مرة الدخول في جدول تبل التسجيل ' بشرط ان يكون سريال المعالج والهارد في جدول بيكون يساوي مع سريال المعالج والهارد اللي يخررجه الفانكشن LookAllMNT = Nz(DLookup("[NumForMoaalic] & ""|"" & [NumForHard] & ""|"" & [NumTascil] & ""|"" & [midda] & ""|"" &[firstdate] & ""|"" & [EndDate] ", "TblTascil", _ "[NumForHard]='" & NumHard & "'" & "and [NumForMoaalic]='" & NumMoaalic & "'"), "") If LookAllMNT <> "" Then ' اذا يجد المعلوماتولم يكون فارغة Spl = Split(LookAllMNT, "|") ' قم بتجزئة كل المعلوةمات حسب رمز هذا الرمز | ' الان عطينا لكل متغير جزئه حسب ما جلبنا في الجدول LookMyNm = Spl(0): LookMyNh = Spl(1): LookMyNTascil = Spl(2): Me.Midde = Spl(3): FDate = Spl(4): EDate = Spl(5) ' فرق بين تاريخين تاريخ الان مع اضافة مدة التفعيل مع اخر تاريخ الدخول FrqDate = DateDiff("d", Now, DateAdd("d", Me.Midde, FDate)) If Me.Midde.Column(0) = 1 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 1 WqtTascil = Format(FDate, "yyyymmdd") ' وقت التسجيل بيكون هذا النوع ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل * 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil)) * 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 7 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 1 WqtTascil = Format(FDate, "yyyymmdd") + 3 ' وقت التسجيل يساوي سنة و شهر و يوم زائد 3 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 3 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 3) / 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 30 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 30 WqtTascil = Format(FDate, "yyyymmdd") + 15 ' وقت التسجيل يساوي سنة و شهر و يوم زائد 15 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 15 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 15) / 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 90 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 90 WqtTascil = Format(FDate, "yyyymm") + 45 ' وقت التسجيل يساوي سنة و شهر زائد 45 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 45 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 45) / 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 180 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 180 WqtTascil = Format(FDate, "yyyymm") + 90 ' وقت التسجيل يساوي سنة و شهر زائد 90 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 90 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 90) / 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 365 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 365 WqtTascil = Format(FDate, "yyyymm") + 182 ' وقت التسجيل يساوي سنة و شهر زائد 182 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 182 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 182) / 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 18250 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 18250 WqtTascil = Format(FDate, "yyyymm") + 9125 ' وقت التسجيل يساوي سنة و شهر زائد 9125 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 9125 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 9125) / 212, ".", ""), 1, 15) End If End If ' اذا احد من رقم التسجيل في جدول او سريال الهارد او المعالج بيكون مخالف مع رقم التسجيل او سريال المعالج او الهارد الجهاز If LookMyNTascil <> NumForTascil Or LookMyNm <> NumMoaalic Or LookMyNh <> NumHard Then Me.LblTxt.Caption = "يجب عليك ان تعمل تسجيل البرامج اولا ... للتسجيل اتصل بالمبرمج " Me.NM = NumMoaalic ' مربع في النموذج اللي باسم نون ميم بيكون يساوي سريال المعالج Me.NH = NumHard ' مربع في النموذج اللي باسم نون ئيج بيكون يساوي سريال الهارد ElseIf FDate > Now Or EDate > Now Then ' اذا اول تاريخ بيكون اكبر من الوقت الحاضر او تاريخ اخر مرة للدخول اكبر من الوقت الحاضر MsgBox "تم تلاعب بتاريخ الجهاز ... وهذا غير مقبول , سيتم اغلاق البرامج" DoCmd.Quit ' اغلاق القاعدة ElseIf FrqDate <= 15 And FrqDate > 0 Then ' اذا فرق بين تاريخين يساوي او اقل من 15 يوم و فرق بين تاريخين اكبر من رقم صفر ' بيظهر الرسالة وبيظهر باقي عدد ايام المتبقية لتفعيل البرامج ويسأل هل يريد تسجيله من جديد اذا يختار نعم If MsgBox("باقي عندك " & "( " & FrqDate & " )" & " يوم لانتهاء فترة التسجيل , هل تريد ان تعمل تسجيل من جديد ؟ ", vbMsgBoxRtlReading + vbYesNo + vbQuestion + vbMsgBoxRight, "تسجيل البرامج") = vbYes Then Me.LblTxt.Caption = "يجب عليك ان تعمل تسجيل البرامج اولا ... للتسجيل اتصل بالمبرمج " Me.NM = NumMoaalic ' مربع في النموذج اللي باسم نون ميم بيكون يساوي سريال المعالج Me.NH = NumHard ' مربع في النموذج اللي باسم نون ئيج بيكون يساوي سريال الهارد Else ' والا DoCmd.OpenForm "frmsereki", acNormal ' فتح نموذج اخر DoCmd.Close acForm, Me.Name ' اغلاق هذا النموذج End If ElseIf FrqDate <= 0 Then ' اذا صفر بيكون اكبر او يساوي فرق بين تاريخين ' يظهر الرسالة ويخبره بان تم انتهاء مدة التفعيل والسؤال عن تسجيل من جديد واذا اختار نعم If MsgBox("انتهت مدة التفعيل البرامج , هل تريد ان تعمل تسجيل من جديد ؟", vbMsgBoxRtlReading + vbYesNo + vbQuestion + vbMsgBoxRight, "تسجيل البرامج") = vbYes Then Me.LblTxt.Caption = "يجب عليك ان تعمل تسجيل البرامج اولا ... للتسجيل اتصل بالمبرمج " Me.NM = NumMoaalic ' مربع في النموذج اللي باسم نون ميم بيكون يساوي سريال المعالج Me.NH = NumHard ' مربع في النموذج اللي باسم نون ئيج بيكون يساوي سريال الهارد Else ' والا اي اذا اختار لا يريد التسجيل من جديد DoCmd.Quit ' سيغلق القاعدة End If Else ' واذا لم يكون هناك اي شيء من الاول DoCmd.OpenForm "frmsereki", acNormal ' فتح نموذج الاخر DoCmd.Close acForm, Me.Name ' واغلاق نموذج الحالي End If DoCmd.SetWarnings False ' اسكات الرسائل التنبيهية ' تحديث اخر تاريخ الدخول في جدول بتاريخ الان DoCmd.RunSQL "UPDATE TblTascil SET TblTascil.EndDate = Now() WHERE (((TblTascil.NumForHard)=NumHard()) AND ((TblTascil.NumForMoaalic)=NumMoaalic()));" DoCmd.SetWarnings True ' تفعيل تنبيهات الافتراضية End Sub Private Sub Tascil_Click() ' كود عند الضغط على زر التسجيل On Error Resume Next ' "1";"7";"30";"90";"180";"365";"18250" Dim NumBeforeTascil, NumForTascil ' متغيران واحد لکي نعرف رقم الاول للتسجيل قبل استخدام الوقت والاخر رقم تسجيل الحقيقي Dim Spl() As String, LookAllMNT As String ' متغيران الثاني لكي نعرف كل معلومات في الجدول اذا تم تسجيل البرامج من قبل والاخر للتجزئة المعلومات Dim LookMyNm, LookMyNh, LookMyNTascil ' مساعد تجزئة المعومات Dim FrqDate As Integer ' متغير نستخدم لفرق بين تاريخ التسجيل و الدخول ' اذا كان كومبوبوكس مدة التفعيل في النموذج بيكون خالي من البيانات يظهر رسالة ويخبره و يركز على الكومبوبوكس وينتهي مشوار ضغط على الزر If Len(Me.Midde & "") = 0 Then MsgBox "اختر مدة التفعيل": Me.Midde.SetFocus: Exit Sub ' رقم قبل تسجيل يساوي رقم واحد مع تحول سريال المعالج الى الارقام مع تحويل سريال الارد تقسيم واحد مع تحويل سريال الهارد NumBeforeTascil = Trim(Round(((1 & TxtInTextToNumber(NumMoaalic) & TxtInTextToNumber(NumHard)) / (1 & TxtInTextToNumber(NumHard))))) ' جميع المعلومات يساوي جلب بيانات الحقل سريال المعالج و الهارد ورقم التسجيل و مدة التسجيل و تاريخ التسجيل و تاريخ اخر مرة الدخول في جدول تبل التسجيل ' بشرط ان يكون سريال المعالج والهارد في جدول بيكون يساوي مع سريال المعالج والهارد اللي يخررجه الفانكشن LookAllMNT = Nz(DLookup("[NumForMoaalic] & ""|"" & [NumForHard] & ""|"" & [NumTascil] ", "TblTascil", _ "[NumForHard]='" & NumHard & "'" & "and [NumForMoaalic]='" & NumMoaalic & "'"), "") Spl = Split(LookAllMNT, "|") ' قم بتجزئة كل المعلوةمات حسب رمز هذا الرمز | ' الان عطينا لكل متغير جزئه حسب ما جلبنا في الجدول LookMyNm = Spl(0): LookMyNh = Spl(1): LookMyNTascil = Spl(2) ' فرق بين تاريخين تاريخ الان مع اضافة مدة التفعيل مع اخر تاريخ الدخول FrqDate = DateDiff("d", Now, DateAdd("d", Me.Midde, FDate)) If Me.Midde.Column(0) = 1 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 1 WqtTascil = Format(Date, "yyyymmdd") ' وقت التسجيل بيكون هذا النوع ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل * 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil)) * 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 7 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 1 WqtTascil = Format(Date, "yyyymmdd") + 3 ' وقت التسجيل يساوي سنة و شهر و يوم زائد 3 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 3 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 3) / 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 30 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 30 WqtTascil = Format(Date, "yyyymmdd") + 15 ' وقت التسجيل يساوي سنة و شهر و يوم زائد 15 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 15 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 15) / 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 90 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 90 WqtTascil = Format(Date, "yyyymm") + 45 ' وقت التسجيل يساوي سنة و شهر زائد 45 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 45 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 45) / 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 180 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 180 WqtTascil = Format(Date, "yyyymm") + 90 ' وقت التسجيل يساوي سنة و شهر زائد 90 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 90 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 90) / 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 365 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 365 WqtTascil = Format(Date, "yyyymm") + 182 ' وقت التسجيل يساوي سنة و شهر زائد 182 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 182 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 182) / 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 18250 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 18250 WqtTascil = Format(Date, "yyyymm") + 9125 ' وقت التسجيل يساوي سنة و شهر زائد 9125 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 9125 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 9125) / 212, ".", ""), 1, 15) End If If Me.NTascil = NumForTascil Then ' اذا كان رقم التسجيل المدخلة بيكون يساوي مع رقم التسجيل الحقيقي للبرامج If LookAllMNT <> "" Then ' اذا هذه ليس اول مرة يسجل على هذه الجهاز DoCmd.SetWarnings False ' اطفاء تنبيهات الافتراضية للنظام ' تحديث المعلومات في الجدول حسب معلومات التفعيل الجديدة DoCmd.RunSQL "UPDATE TblTascil SET TblTascil.NumForMoaalic = [Forms]![FrmTescil]![NM], TblTascil.NumForHard = [Forms]![FrmTescil]![NH]," & _ "TblTascil.NumTascil = [Forms]![FrmTescil]![NTascil], TblTascil.Midda = [Forms]![FrmTescil]![Midde], TblTascil.firstdate = Now(), " & _ " TblTascil.EndDate = Now() WHERE (((TblTascil.NumForMoaalic)=NumMoaalic()) AND ((TblTascil.NumForHard)=NumHard()));" DoCmd.SetWarnings True ' تشغيل تنبيهات الافتراضية للنظام Else ' واذا هذه المرة هي اول مرة للتسجيل ' اضافة معلومات التفعيل الى جدول DoCmd.SetWarnings False ' اطفاء تنبيهات الافتراضية للنظام DoCmd.RunSQL "INSERT INTO TblTascil ( NumForMoaalic, NumForHard, NumTascil, Midda, firstdate, EndDate ) " & _ "SELECT [Forms]![FrmTescil]![NM] AS Expr1, [Forms]![FrmTescil]![NH] AS Expr2, [Forms]![FrmTescil]![NTascil] AS Expr3," & _ "[Forms]![FrmTescil]![Midde] aS Expr4, Now() AS Expr5, Now() AS Expr6;" DoCmd.SetWarnings True ' تشغيل تنبيهات الافتراضية للنظام End If MsgBox "تم تسجيل البرامج لمدة " & Me.Midde.Column(1) ' اظهار رسالة ويظهر للمستخدم ان تم تفعيل لمدة المحددة DoCmd.OpenForm "frmsereki", acNormal ' فتح نموذج الاخر DoCmd.Close acForm, Me.Name, acSaveYes ' اغلاق النموذج الحالية وهو نموذج التسجيل ElseIf Len(Me.NTascil & "") = 0 Then ' اذا كان مربع نصي لرقم التسجيل بيكون فارغا MsgBox "اکتب رقم التسجيل ... وحاول مجددأ" ' اظهار رسالة ويخبره بان رقم التسجيل المدخلة خطأ Me.NTascil.SetFocus 'تركيز على مربع نصي لرقم التسجيل في النموذج Else ' والا MsgBox "خطأ في رقم التسجيل ... حاول مجددأ" ' اظهار رسالة ويخبره بان رقم التسجيل المدخلة خطأ Me.NTascil = "" 'قم بافراغ مربع نصي رقم التسجيل في نموذج Me.NTascil.SetFocus 'تركيز على مربع رقم التسجيل في نموذج End If End Sub Private Sub BtnQuit_Click() ' كود عند ضغط على زر اغلاق ' اغلاق القاعدة DoCmd.Quit End Sub وراح نستخدم هذين فانكشنين في وحدة نمطية في قاعدة كراك هو نفس وحدة الفانكشن الاعلى اللس استخدمناه في القاعدة اللي نعطيه للعميل Option Compare Database Function TxtToNumber(ByVal C As String) As String Select Case C Case "A", "J", "R": TxtToNumber = 9 Case "B", "K", "S": TxtToNumber = 1 Case "C", "L", "T": TxtToNumber = 7 Case "D", "M", "U": TxtToNumber = 3 Case "E", "N", "V": TxtToNumber = 5 Case "F", "O", "W": TxtToNumber = 8 Case "G", "P", "X": TxtToNumber = 2 Case "H", "Y": TxtToNumber = 6 Case "I", "Q", "Z": TxtToNumber = 4 Case "-", "_", "\", " ", "/", ";", ":": TxtToNumber = "" Case Else TxtToNumber = C End Select End Function Function TxtInTextToNumber(SText) Dim Numbers Dim I As Integer For I = 1 To Len(SText) If IsNumeric(Mid(SText, I, 1)) Then Numbers = Numbers & Mid(SText, I, 1) Else Numbers = Numbers & TxtToNumber(Mid(SText, I, 1)) End If Next TxtInTextToNumber = Trim(Numbers) End Function مع هذا الكود في النموذج التسجيل في قاعدة كراك Option Compare Database ' تم اعداد من قبل ' Shivan Rekany شفان ريکاني ' وليس لدينا مانع استخدامه في برامجكم فقط نريد منكم الدعاء Private Sub Tascil_Click() ' كود عند الضغط على زر التسجيل On Error Resume Next Dim NumBeforeTascil, NumForTascil ' متغيران واحد لکي نعرف رقم الاول للتسجيل قبل استخدام الوقت والاخر رقم تسجيل الحقيقي Dim WqtTascil ' ھو رقم من التاريخ لکي يقسم عليھ رقم قبل التسجيل ' اذا كان كومبوبوكس مدة التفعيل في النموذج بيكون خالي من البيانات يظهر رسالة ويخبره و يركز على الكومبوبوكس وينتهي مشوار ضغط على الزر If Len(Me.Midde & "") = 0 Then MsgBox "اختر مدة التفعيل": Me.Midde.SetFocus: Exit Sub ' اذا كان كومبوبوكس مدة التفعيل في النموذج بيكون خالي من البيانات يظهر رسالة ويخبره و يركز على الكومبوبوكس وينتهي مشوار ضغط على الزر If Len(Me.NM & "") = 0 Then MsgBox "اكتب رقم المعالج": Me.NM.SetFocus: Exit Sub ' اذا كان كومبوبوكس مدة التفعيل في النموذج بيكون خالي من البيانات يظهر رسالة ويخبره و يركز على الكومبوبوكس وينتهي مشوار ضغط على الزر If Len(Me.NH & "") = 0 Then MsgBox "اكتب رقم الهارد": Me.NH.SetFocus: Exit Sub ' رقم قبل تسجيل يساوي رقم واحد مع تحول سريال المعالج الى الارقام مع تحويل سريال الارد تقسيم واحد مع تحويل سريال الهارد NumBeforeTascil = Trim(Round(((1 & TxtInTextToNumber(Me.NM) & TxtInTextToNumber(Me.NH)) / (1 & TxtInTextToNumber(Me.NH))))) If Me.Midde.Column(0) = 1 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 1 WqtTascil = Format(Date, "yyyymmdd") ' وقت التسجيل بيكون هذا النوع ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل * 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil)) * 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 7 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 1 WqtTascil = Format(Date, "yyyymmdd") + 3 ' وقت التسجيل يساوي سنة و شهر و يوم زائد 3 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 3 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 3) / 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 30 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 30 WqtTascil = Format(Date, "yyyymmdd") + 15 ' وقت التسجيل يساوي سنة و شهر و يوم زائد 15 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 15 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 15) / 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 90 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 90 WqtTascil = Format(Date, "yyyymm") + 45 ' وقت التسجيل يساوي سنة و شهر زائد 45 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 45 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 45) / 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 180 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 180 WqtTascil = Format(Date, "yyyymm") + 90 ' وقت التسجيل يساوي سنة و شهر زائد 90 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 90 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 90) / 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 365 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 365 WqtTascil = Format(Date, "yyyymm") + 182 ' وقت التسجيل يساوي سنة و شهر زائد 182 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 182 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 182) / 212, ".", ""), 1, 15) ElseIf Me.Midde.Column(0) = 18250 Then ' اذا كان عمود المرقم بصفر في كومبوبوكس مدة بيكون يساوي رقم 18250 WqtTascil = Format(Date, "yyyymm") + 9125 ' وقت التسجيل يساوي سنة و شهر زائد 9125 ' ورقم التسجيل بيكون 15 ارقام من تقسيم رقم قبل التسجيل تقسيم وقت التسجيل ضرب 9125 تقسيم 212 و استبدال نقطة (.) ب لا شيء NumForTascil = Mid(Replace(((NumBeforeTascil / WqtTascil) * 9125) / 212, ".", ""), 1, 15) End If Me.NTascil = NumForTascil ' مربع رقم التسجيل يساوي رقم التسجيل End Sub Private Sub BtnQuit_Click() ' كود عند ضغط على زر اغلاق ' اغلاق القاعدة DoCmd.Quit End Sub * قاعدة الكراك راح يكون عند المبرمج والاخر سيكون في قاعدة بيانات البرامج اللي يعمله المبرمج ويعطيه للعميل * من الممكن ان يتغير ارقام اي نوع عطاء رقم التفعيل حسب الرغة اتمنى ان يستفيد منه اكبر عدد ممكن من الاعضاء تقبلوا تحياتي ShivanHimaye.rar
    1 point
  40. فرز أفقي من اليمين لليسار.rar
    1 point
  41. السلام عليكم - خاطرة: كيف نستخدم دالة الجمع باستخدام اختصارات لوحة المفاتيح بطريقة سلسة وسريعة:
    1 point
  42. بعض الإختصارات المفتاح. الوظيفة. أو الأمر.Tab تنشيط شريط القوائم بالتعلم على قائمة FileAlt+F لفتح قائمة FileAlt+E لفتح قائمة EditAlt+V لفتح قائمة ViewAlt+I لفتح قائمة InsertAlt+O لفتح قائمة FormatAlt+T لفتح قائمة ToolsAlt+D لفتح قائمة DataAlt+H لفتح قائمة Window- +Alt لفتح قائمة التحكم في النافذة الخاصة بالمصنف Alt+spacebar لفتح قائمة التحكم في نافذة البرنامجAlt+F4 لإغلاق البرنامجAlt+F11 لإظهار النافذة الخاصة بأوامر لغة الفيجوال بيسكAlt+page Down للانتقال صفحة إلى اليمينAlt+Page Up للانتقال صفحة إلى اليسارالسهم لا سفل+Alt لعرض قائمة ببيانات خلايا العمود الموجودة فيه الخلية المحددة لاختيار أيامنها للنسخPage Down للانتقال صفحة إلى أسفلPage Up للانتقال صفحة الى أعلىمفاتيح الأسهم للانتقال خلية واحدة حسب اتجاه السهمCtrl+0 لإخفاء العمود الخالي أو الأعمدة المظللةCtrl+1 لفتح مستطيل الحوار Format CellsCtrl+6 لإخفاء وإظهار الكائناتCtrl+7 لإخفاء وإظهار شريط الأدوات القياسيةCtrl+9 لإخفاء الصف الحالي أو الصفوف المظللةCtrl+F3 لعرض مستطيل الحوار Define NameCtrl+F4 لإغلاق النافذة النشطCtrl+F5 لإستعادة حجم النافذة للحجم الطبيعىCtrl+F6 لاستدعاء النافذة التاليةCtrl+F7 لتحريك النافذة (أمر Move الموجود بقائمة التحكم في النافذة)Ctrl+F8 لتغيير حجم النافذة (أمر Size الموجود بقائمة التحكم في النافذة)Ctrl+F9 لتصغير النافذة للحد الأدنىCtrl+F10 لتكبير النافذة إلى الحد الأقصىCtrl+F11 لإضافة ورقة الماكروCtrl+A لتظليل ورقة العمل بأكملهاCtrl+B لجعل خط الكتابة ثقيل (Bold)أو إعادته للوضع العاديCtrl+D للنسخ في الخلية نسخة مماثلة للخلية التي فوقهاCtrl+F لفتح مستطيل خيارات FindCtrl+H لفتح مستطيل خيارات ReplaceCtrl+I لجعل خط الكتابة مائلا أو إزالة الإمالةCtrl+N لفتح كتاب عمل جديدCtrl+O لاستدعاء كتاب عمل تم تخزينه من قبلCtrl+P لفتح نافذة أمر الطباعةCtrl+R لنسخ الخلية نسخة مماثلة للخلية التي على يسارهاCtrl+S للحفظCtrl+U لجعل خط الكتابة مسطراCtrl+V للصقCtrl+X للقصCtrl+Z للتراجع عن أخر أمر أو عمليةCtrl+Home للانتقال إلى الخلية الأولى فى ورقة العملCtrl+End للإنتقال إلى أخر خلية في الورقةالأسهم+Ctrl للانتقال إلى أخر الورقة في اتجاه السهمCtrl+Esc لفتح قائمة البداية Start; +Ctrl لإدخال التاريخ الحالي في الخلية;+Ctrl+Shift لإدخال الوقت الحالي في الخليةCtrl+Page Down للانتقال إلى الورقة التالية في كتاب العملCtrl+Page Up للانتقال إلى الورقة السابقة في كتاب العمل&+Ctrl+Shift لتسطير الخلايا المظللة- +Ctrl+Shift لإزالة تسطير الخلايا المظللة#+Ctrl+Shift لتحويل التاريخ إلى الطريقة التالية(يوم/شهر/سنة)$+Ctrl+Shift لتنسيق الأرقام بوضع علامة العملة%+Ctrl+Shift لتنسيق الأرقام بوضع علامة النسبة المئوية)+Ctrl+Shift لإظهار الصفوف المختفية(+Ctrl+Shift لإظهار الأعمدة المختفيةCtrl+Shift+End لزيادة التظليل إلى حواف ورقة العملأو Ctrl+Shift+Homeمفاتيح الأسهم+Ctrl+Shift لزيادة التظليل حتى حافة ورقة العمل حسب اتجاه السهم= +Ctrl+Shift لعرض مستطيل حوار InsertCtrl+Shift+F3 عرض مستطيل حوار Create NamesCtrl+Spacebar لتظليل العمود الحالي بالكاملDelete لمسح النطاق المظللEsc لإلغاء عملية F1 لاستدعاء مجموعة الخيارات الخاصة بالتعليمات المساعدةF2 لتعديل بيانات الخلية الحاليةF3 لاستدعاء أسماء الخلايا أثناء كتابة المعادلاتF4 لتكرار أخر عمليةF5 لتنفيذ أمر Go toF6 للانتقال إلى القسم الأخر من ورقة العمل في حالة تقسيمهاF7 للتدقيق الإملائيF9 لإتمام العمليات الحسابية في كافة أوراق العملF10 تنشيط شريط القوائمF11 لإنشاء رسم بياني خاص بالبيانات المظللةF12 للحفظHome للانتقال إلى بداية الصفShift Backspace لتقليل التظليل وقصره على الخلية الحالية فقطShift Enter للانتقال خلية إلى أعلىShift Tab للانتقال خلية جهة اليسارTab للانتقال خلية جهة اليمين
    1 point
  43. وهذا ملف بمعظم الاختصارات معظم اختصارات الاكسيل.rar
    1 point
  44. المفاتيح الوظيفية المفتاح الوصف F1 عرض جزء المهام تعليمات Microsoft Office Excel . يستخدم CTRL+F1 لعرض الشريط أو إخفائه، وهو مكوّن في واجهة مستخدم Microsoft Office Fluent. ينشىء ALT+F1 مخطط للبيانات الموجودة في النطاق الحالي. يدرج ALT+SHIFT+F1 ورقة عمل جديدة. F2 تحرير الخلية النشطة ووضع نقطة الإدراج في نهاية محتويات الخلية. ونقل نقطة الإدراج إلى "شريط الصيغة" في حالة إيقاف تشغيل التحرير في إحدى الخلايا. يضيف SHIFT+F2 تعليق إلى خلية أو يحرره. يعرض CTRL+F2 إطار المعاينة قبل الطباعة. F3 عرض مربع الحوار اسم اللصق. يعرض SHIFT+F3 مربع الحوار إدراج دالة. F4 تكرار الأمر أو الإجراء الأخير إذا كان ممكناً. عند تحديد مرجع خلية أو نطاق في صيغة، يؤدي الضغط على F4 إلى التنقل عبر المجموعات المختلفة من المراجع المطلقة والنسبية. يغلق CTRL+F4 إطار المصنف المحدد. F5 عرض مربع الحوار الانتقال إلى. يستعيد CTRL+F5 حجم إطار المصنف المحدد. F6 يستخدم للتبديل بين ورقة العمل والشريط وجزء المهام وعناصر تحكم التكبير والتصغير. ففي ورقة العمل التي تم تقسيمها (القائمة عرض، الأمر إدارة هذا الإطار وتجميد الأجزاء وتقسيم الإطار)، يتضمن F6 الأجزاء المقسمة عند التبديل بين الأجزاء وناحية الشريط. يستخدم SHIFT+F6 للتبديل بين ورقة العمل وعناصر تحكم التكبير والتصغير وجزء المهام والشريط. يستخدم CTRL+F6 للتبديل إلى إطار المصنف التالي عند فتح أكثر من إطار مصنف. F7 عرض مربع الحوار تدقيق إملائي لإجراء تدقيق إملائي في ورقة العمل النشطة أو النطاق المحدد. ينفذ CTRL+F7 الأمر نقل ضمن إطار المصنف عندما يكون غير مكبر. يمكن استخدام مفاتيح الأسهم لنقل الإطار وعند الانتهاء، اضغط ENTER أو ESC لإلغاء الأمر. F8 تشغيل وضع التوسيع أو إيقاف تشغيله. في وضع التوسيع، يظهر تحديد موسع في سطر المعلومات وتوسع مفاتيح الأسهم التحديد. تمكنك SHIFT+F8 من إضافة خلية أو نطاق غير متجاور إلى تحديد من الخلايا باستخدام مفاتيح الأسهم. ينفذ CTRL+F8 الأمر حجم (الموجود في القائمة تحكم الخاصة بإطار المصنف) عندما يكون أي مصنف غير مكبر. تعرض ALT+F8 مربع الحوار ماكرو لإنشاء ماكرو أو تشغيله أو تحريره أو حذفه. F9 حساب كافة أوراق العمل الموجودة في كافة المصنفات المفتوحة. تحسب SHIFT+F9 ورقة العمل النشطة. تحسب CTRL+ALT+F9 كافة أوراق العمل الموجودة في كافة المصنفات المفتوحة، بغض النظر عما إذا كان تم تغييرها منذ آخر عملية حساب. يعيد CTRL+ALT+SHIFT+F9 فحص الصيغ المعتمدة ثم يحسب كافة الخلايا الموجودة في كافة المصنفات المفتوحة، بما في ذلك الخلايا التي لم يتم تحديدها لحاجتها للحساب. يستخدم CTRL+F9 لتصغير إطار المصنف إلى رمز. F10 تشغيل تلميحات المفاتيح أو إيقاف تشغيلها. يعرض SHIFT+F10 القائمة المختصرة للعنصر المحدد. يعرض ALT+SHIFT+F10 القائمة أو الرسالة للعلامة الذكية. إذا كان هناك أكثر من علامة ذكية، يستخدم للتبديل إلى العلامة الذكية التالية ويعرض القائمة أو الرسالة. يكبر CTRL+F10 إطار المصنف المحدد أو يقوم باستعادته. F11 إنشاء مخطط للبيانات الموجودة في النطاق الحالي. يدرج SHIFT+F11 ورقة عمل جديدة. يفتح ALT+F11 محرر Microsoft Visual Basic الذي يمكن إنشاء ماكرو به باستخدام Visual Basic for Applications (VBA) . F12 عرض مربع الحوار حفظ باسم.
    1 point
  45. موضوع جميل وفكرة اجمل تفضل بعض الاختصارات مفاتيح الاختصار التي تستخدم المفتاح CTRL المفتاح الوصف CTRL+PGUP للتبديل بين علامات تبويب ورقة العمل، من اليمين إلى اليسار. CTRL+PGDN للتبديل بين علامات تبويب ورقة العمل، من اليسار إلى اليمين. CTRL+SHIFT+( إظهار أية صفوف مخفية داخل التحديد. CTRL+SHIFT+) إظهار أية أعمدة مخفية داخل التحديد. CTRL+SHIFT+& تطبيق حدود خارجية للخلايا المحددة. CTRL+SHIFT_ إزالة الحدود الخارجية من الخلايا المحددة. CTRL+SHIFT+~ تطبيق تنسيق الأرقام "عام". CTRL+SHIFT+$ تطبيق التنسيق "عملة" بمنزلين عشريتين (تظهر الأرقام السالبة في أقواس). CTRL+SHIFT+% تطبيق التنسيق "نسبة مئوية" دون منازل عشرية. CTRL+SHIFT+^ تطبيق تنسيق رقم "أسي" بمنزلين عشريين. CTRL+SHIFT+# تطبيق التنسيق "تاريخ" باليوم والشهر والسنة. CTRL+SHIFT+@ تطبيق التنسيق "وقت" بالساعة والدقيقة و"ص" أو"م". CTRL+SHIFT+! تطبيق التنسيق "رقم" بمنزلين عشريين وفواصل آلاف وعلامة الناقص (-) للقيم السالبة. CTRL+SHIFT+* تحديد المنطقة الحالية الموجودة حول الخلية النشطة (تحاط منطقة البيانات بصفوف وأعمدة فارغة). في PivotTable، يحدد تقرير PivotTable بأكمله. CTRL+SHIFT+: إدخال الوقت الحالي. CTRL+SHIFT+" نسخ القيمة من الخلية الموجودة أعلى الخلية النشطة إلى الخلية أو إلى "شريط الصيغة". CTRL+SHIFT+Plus (+) عرض مربع الحوار إدراج لإدراج خلايا فارغة. CTRL+Minus (-) عرض مربع الحوار حذف لحذف الخلايا المحددة. CTRL+; إدخال التاريخ الحالي. CTRL+` التبديل بين عرض قيم الخلايا وعرض الصيغ في ورقة العمل. CTRL+' نسخ صيغة من الخلية الموجودة أعلى الخلية النشطة إلى الخلية أو إلى "شريط الصيغة". CTRL+1 عرض مربع الحوار تنسيق خلايا. CTRL+2 تطبيق تنسيق غامق أو إزالته. CTRL+3 تطبيق تنسيق مائل أو إزالته. CTRL+4 تطبيق تسطير أو إزالته. CTRL+5 تطبيق تنسيق يتوسطه خط أو إزالته. CTRL+6 التبديل بين إخفاء الكائنات وعرض الكائنات وعرض العناصر النائبة للكائنات. CTRL+8 عرض رموز التخطيط التفصيلي أو إخفاؤها. CTRL+9 إخفاء الصفوف المحددة. CTRL+0 إخفاء الأعمدة المحددة. CTRL+A تحديد ورقة العمل بأكملها. إذا احتوت ورقة العمل على بيانات، تحدد CTRL+A المنطقة الحالية. ويؤدي ضغط CTRL+A للمرة الثانية إلى تحديد المنطقة الحالية وصفوف التلخيص. أما ضغط CTRL+A للمرة الثالثة يؤدي إلى تحديد ورقة العمل بأكملها. يتم عرض مربع الحوار وسيطات الدالة، عندما تكون نقطة الإدراج إلى يمين اسم الدالة في صيغة. يؤدي ضغط CTRL+SHIFT+A إلى إدراج أسماء الوسيطات والأقواس، عندما تكون نقطة الأدراج إلى يمين اسم الدالة في صيغة. CTRL+B تطبيق تنسيق غامق أو إزالته. CTRL+C نسخ الخلايا المحددة. يؤدي الضغط على CTRL+C متبوعاً بـ CTRL+C إلى إظهار الحافظة. CTRL+D استخدام الأمر تعبئة لأسفل لنسخ محتويات وتنسيق أعلى خلية في نطاق محدد إلى الخلايا الموجودة بأسفل. CTRL+F عرض مربع الحوار بحث واستبدال، مع تحديد علامة التبويب بحث. تعرض SHIFT+F5 أيضاً علامة التبويب هذه، بينما تكرر SHIFT+F4 إجراء بحث الأخير. يفتح CTRL+SHIFT+F مربع الحوار تنسيق الخلايا مع تحديد علامة التبويب خط. CTRL+G عرض مربع الحوار الانتقال إلى. تعرض F5 أيضاً مربع الحوار هذا. CTRL+H عرض مربع الحوار بحث واستبدال مع تحديد علامة التبويب استبدال. CTRL+I تطبيق تنسيق مائل أو إزالته. CTRL+K عرض مربع الحوار إدراج ارتباط تشعبي للارتباطات التشعبية الجديدة أو مربع حوار تحرير ارتباط تشعبيللارتباطات التشعبية المحددة الموجودة. CTRL+N إنشاء مصنف فارغ جديد. CTRL+O عرض مربع الحوار فتح لفتح ملف أو العثور عليه. يحدد CTRL+SHIFT+O كافة الخلايا التي تحتوي على تعليق. CTRL+P عرض مربع الحوار طباعة. يفتح CTRL+SHIFT+P مربع الحوار تنسيق الخلايا مع تحديد علامة التبويب خط. CTRL+R استخدام الأمر تعبئة لليمين لنسخ محتويات وتنسيق الخلية الموجودة أقصى اليسار في النطاق المحدد في الخلايا ناحية اليمين. CTRL+S حفظ الملف النشط باسم الملف الحالي وموقعه وتنسيقه. CTRL+T عرض مربع الحوار إنشاء جدول. CTRL+U تطبيق تسطير أو إزالته. يستخدم CTRL+SHIFT+U للتبديل بين توسيع شريط الصيغة أو طيه. CTRL+V إدراج محتويات "الحافظة" في نقطة الإدراج واستبدال أي تحديد. يتوفر فقط بعد قص كائن أو نص أو محتويات خلايا أو نسخها. تقوم CTRL+ALT+V بعرض مربع الحوار لصق خاص. ويكون متاحًا بعد قص أو نسخ كائن أو نص أو محتويات خلية على ورقة العمل أو في برنامج آخر. CTRL+W إغلاق إطار المصنف المحدد. CTRL+X قص الخلايا المحددة. CTRL+Y تكرار الأمر أو الإجراء الأخير إذا كان ممكناً. CTRL+Z استخدام الأمر تراجع لعكس الأمر الأخير أو لحذف الإدخال الأخير الذي كتبته. يستخدم CTRL+SHIFT+Z الأمر تراجع أو إعادة لعكس التصحيح التلقائي الأخير أو استعادته عند عرض "العلامات الذكية للتصحيح التلقائي".
    1 point
×
×
  • اضف...

Important Information