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

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

  1. jjafferr

    jjafferr

    أوفيسنا


    • نقاط

      17

    • Posts

      9,814


  2. الـعيدروس

    الـعيدروس

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


    • نقاط

      7

    • Posts

      3,277


  3. ابو ياسين المشولي

    • نقاط

      7

    • Posts

      1,752


  4. AlwaZeeR

    AlwaZeeR

    الخبراء


    • نقاط

      6

    • Posts

      775


Popular Content

Showing content with the highest reputation on 10 نوف, 2019 in all areas

  1. هذه الطريقة اللي كنت اتكلم عنها 🙂 الافضل والاسهل 🙂 جعفر 1137.2.مثال.accdb.zip
    5 points
  2. عزيزي القاضي قم بتشغيل الاكسس كاملا كمسؤول ثم قم بالضغط على ملف فتح واختر الاداة هكذا تعمل وليس هي نفسها التشغيل كمسؤول
    3 points
  3. جاك المتدد يا ابو زاهر الاستاذ جعفر جاب طلبك بالضبط شكرا للاستاذ jjafferr شكرا للمنتقذ
    3 points
  4. تفضل 🙂 التعديل الآن شمل النموذج بالكامل تقريبا ، فرجاء ان تنظر في كل جزئية من الكود 🙂 ولكن يا ابو زاهر ، ايش لك في البحر واهواله ، و رزق الله على السيف 🙂 هذه الطريقة انت تعرفها حق المعرفة ، ومافي اسهل منها ، بينما الـ Recordset بحر بحد ذاته ، جدا سهل للي يعرفه 🙂 جعفر 1137.1.مثال.accdb.zip
    3 points
  5. وعليكم السلام 🙂 عليك تنصيبها كمسؤول 🙂 انا اعطيك افضل ما يمكنني التفكير فيه ، اذا انا كنت مكانك ، فما ممكن اعطي لنفسي الا الافضل 🙂 خذ من وقتك شوي ، وصدقني ما بتندم 🙂 شكرا لأخوي ابو الكرم على توفير رابط فيه شرح لإستعمال الاداة ، واستسمحك عذرا ، فالبحث اللي عملته البارحة (وتأكيدا قبل شوي) داخل المنتدى لم يعطني رابطك 🙂 ولكني انصح بتنزيل آخر تحديث من الموقع ، ثم اتبع خطوات ابو الكرم 🙂 صحيح اليد الواحدة ما تصفق ، شكرا اخوي الوزير على المشاركة ❤️ جعفر جعفر
    3 points
  6. السلام عليكم ورحمة الله وبركاته تفضل اخي الكريم Private Sub أمر10_Click() Dim xxx As Double xxx = Val(Me.text1) / Val(Me.colm1.Column(0)) Dim rst As DAO.Recordset mySQL = "Select * From pay" Set rst = CurrentDb.OpenRecordset(mySQL) For i = 1 To Me.colm1 rst.AddNew rst!codec = Me.codec rst!elmblg = xxx rst!codeelcst = i rst.Update Next i rst.Close: Set rst = Nothing If Me.CurrentRecord = Me.RecordsetClone.RecordCount Then Exit Sub DoCmd.GoToRecord acDataForm, Me.Name, acNext End Sub انشاء.rar تحياتي
    3 points
  7. نجح الامر .. أشكرك أستاذي @AlwaZeeR وكذلك أستاذي الكبير @jjafferr >> بارك الله فيكما .. وجزيتم خيرا ورزقتم الخير والفلاح في الدنياء و الأخرة
    2 points
  8. وهذه طريقة اخرى 🙂 مثل سابقتها ، ولكن بطريقة تختلف قليلا ، وبدون Recordset للانتقال للسجل التالي 🙂 جعفر 1137.3.مثال.accdb.zip قصدك الاستاذ خالد 🙂
    2 points
  9. 2 points
  10. فورم بحث فى جميع بيانات الجدول بطريقة بسيطة الفيديو
    2 points
  11. بدايه الغيث قطرة بعد العصر ان شاء الله بنشوف له حل
    2 points
  12. ربما يكون الحل my_text.xlsx
    2 points
  13. رائع اخي صالح دائما مبدع جعله الله في ميزان حسناتك تحياتي لشخصك الكريم الطيب ملف التكست يجب ان يحفظ بترميز UTF-8 وليس ANSI اضف الى ذلك ان الرابط على الجوجل درايف ولا اعلم ان كان يدعم التحميل المباشر مثل الدروب بوكس ام لا
    2 points
  14. تحياتي الخالصة تم عمل المطلوب بالتعديل على معادلات "الترتيب - 2" (وهي معادلات صفيف لكن لا تحتاج إلى تأكيدها بواسطة ctrl+shift+enter). أرجو أن يفي الغرض المطلوب... بن علية حاجي ترتيب اوائل الفصول.rar
    2 points
  15. إخوتي الفضلاء كانت لي مساهمة مع الاخ حسين العربي بخصوص مسار التطبيق وحماية التطبيق بقراءة هذا المسار بالكود ... http://www.officena.net/ib/index.php?showtopic=54485 وتطور النقاش لنصل لمحور حماية جديد يتمثل بالطريقة المعروفة بزراعة ملف في الجهاز وفي مكان محدد ، للبحث عنه وتفقده قبل تشغيل النظام وفي حال العثور عليه يتم تشغيل النظام ، وخلاف ذلك يتم اشعار المستخدم بوجود خطأ رئيسي يتمثل بخلل يتعلق بفقدان هذا الملف وبالتالي الخروج من التطبيق واشعرنا الاخ حسين بانه قد هدي لتطبيق الفكرة بفضل من الله وحيث انني كنت قد بدأت بالتطبيق لأجيب على تساؤله ، رأيت ان اعدل به قليلاً بفكرة راودتني تتمثل باخفاء ملف text في مكان ما من الجهاز وتحريك مسألة الحماية حول هذا الملف ( المخفي ) ، وفكرة الاخفاء تهمني لغايات ابعاد هذا الملف عن الايدي العابثة ، او الخطأ المتمثل بحذف الملف ، وتنحصر الامور هنا غالبا بما بقي من الاحتمالات القائمة لضرورة الحماية ، ومنها إجراء اعادة تنصيب لنظام التشغيل ( الويندوز - فورمات ) ، ومنها أيضا نقل التطبيق بدون علم المبرمج او مدير النظام لجهاز آخر ، وحيث ان المستخدم لا يعلم بشأن هذا الملف المخفى ، ولا يراه بالعادة ، فلن يقوم بنقله و التعامل معه وبالتالي يتوقف النظام عن العمل ، ويضطر المستخدم للرجوع لمدير النظام او المبرمج سيحمل المرفق ملف التطبيق و مجلد باسم AccTxt يحتوي على ملف مخفي باسم 123 يتم نسخ هذا المجلد او قصه ولصقه على القرص c في المجلد Program Files وبذلك يصبح مسار ملفنا المخفي هو C:\Program Files\AccTxt\123.txt وللحديث بقية ... ...........
    1 point
  16. السلام عليكم ورحمة الله وبركاته على الرغبة السيد @محمد عبد الشفيع من هنا https://www.officena.net/ib/topic/86775-دمج-برنامج-الحماية-مع-برنامج-الفترة-التجريبية تم فتح هذا الموضوع و ان شاء الله ساشرح خطوة خطوة حسب وقتي حتى اخلص من الموضوع وفي النهاية راح اسمع اراء و مقترحاتكم والان نحن نحتاج جدول واحد لكي نحفظ فيه تسلسل و رقم هارد و المعالج و رقم التفعيل البرامج و مدة التفعيل و تاريخ التفعيل و تاريخ اخر مرة فتح البرامج وسنسمي هكذا بالتسلسل كما مبينة في الصورة ID من نوع ترقیم تلقائی NumForMoaalic من نوع نصي NumForHard من نوع نصي NumTascil من نوع نصي Midda من نوع رقم و مصدره يكون عمودين واحد لكتابة رقم ايا عدد ايام التفعيل والاخر لكتابة مثلا يوم واحد او اسبوع واحد هكذا وهذا هو مصدره "1";"يوم واحد";"7";"اسبوع واحد";"30";"شهر واحد";"90";"ثلاث اشهر";"180";"ستة اشهر";"365";"سنة واحدة";"18250";"مدى الحياة" شوف الصورة لكي نعرف خصائص هذا الحقل جيداً و ايضا عندنا حقل باسم firstdate من نوع وقت والتاريخ واخر حقل هو EndDate من نوع وقت والتاريخ وتم تسمية الجدول باسم TblTascil ولان ليس لدي وقت اليوم ان اكون على جهاز لابتوب غدا او يوم السبت ان شاء الله راح اكمل الشرح ونبدأ بعمل النماذج والسلام عليكم ورحمة الله وبركاته
    1 point
  17. الحمدلله ، واخبرنا عن فعالية الاداة 🙂 جعفر
    1 point
  18. استاذي جعفر تسلم يديك بارك الله فيك نعم هو المطلوب المرفق الاول جربته فعلا رائع المرفق الثاني اروع واسهل كما قلت استاذي ابو ياسين بارك الله فيك مشكور على المشاركه فكرتك كانت قريبه من المطلوب و اجاء الينا الاستاذ جعفر كالفراري الله يحفظه يمكن يتذكر موضعها قبل سنه او سنتين ههههه اعجبتني جاك المدد من طيبك ما تقصرون ربي يحفظكم احبتي يعلم الله اني احبكم فيه فكلنا هون اخوان يد واحده نكمل بعضنا البعض ونفيد ونستفيد ولا ننسي ان نقدم الشكر لاخونا الاستاذ اعتقد انه ليس بغريب عليا اليت يعدل االلقب كي نقدر نناديه باسمه بالمشاركه الاخيره مشكورين احبتي راح استخدم الاسهل كما قال لي الاستاذا جعفر المرفق الاخير له تحياتي ما بدي ادخل في بحر واهواله تسلمي يديك ابو الجعافر
    1 point
  19. نعم أخي قاضي لقد قرأت المشاركة و تاريخها شكرا مرة أخرى لكن لا يجب أن ننسى أن الطريقتين مختلفتين
    1 point
  20. ليس في كل مرة. عند الاستخدام الأول فقط و تستطيع تفعلها كما تشاء
    1 point
  21. السلام عليكم بالامكان التحقق من القيم اذا رحلت سابقاً لايرحلها كالتالي Sub trheel() Dim Cl As Range, i As Integer For i = 2 To 41 For Each Cl In Range("G3:G" & [G10000].End(xlUp).Row) If Not Ch(Cl, i) Then If Cl.Value = Sheets(i).Name Then Cl.Offset(0, -6).Resize(1, 7).Copy Sheets(i).Range("A" & Sheets(i).[A10000].End(xlUp).Row + 1) End If End If Next Next End Sub Private Function Ch(Cl As Range, i) As Boolean If Application.CountIfs(Sheets(i).Range("A3:A" & 1500), _ Range("A" & Cl.Row), Sheets(i).Range("B3:B" & 1500), _ Range("B" & Cl.Row), Sheets(i).Range("C3:C" & 1500), Range("C" & Cl.Row), _ Sheets(i).Range("F3:F" & 1500), Range("F" & Cl.Row)) = 1 Then Ch = True End Function
    1 point
  22. السلام عليكم تفضل المرفق تحكيم1.xlsm
    1 point
  23. أستاذ زاكي بوشلاغم أين الضغط على الإعجاب ؟!!!!!
    1 point
  24. عليك السلام ورحمة الله وبركاته تفضل المطلوب ورقة الإستهلاك اليومي عامة 2013.xls
    1 point
  25. أستاذ murad trabelsi أين الضغط على الإعجاب ؟!!!!!!!!!
    1 point
  26. عليك السلام ورحمة الله وبركاته جرب الخطوات الموجودة في الصورة المرفق ربما تفي الغرض
    1 point
  27. يا ابا ياسين عند حفظ ينتقل للسجل التالي ولكن لا يحفظ التعديل ويتوقف عند اخر سجل في الرقم المدخل مثلا الرقم المدخل 1111 واخر رقم 1115 ولا ينقل للسجلات 2000 وهكذا
    1 point
  28. اذن صار لابد من استدعاء الاستاذ جعفر لإسعافنا @jjafferr
    1 point
  29. لا تعدني أخي نحن في خدمتك دائماً . تفضل مطلوبك . من نموذج : spare parts movements إذهب إلى حقل item code تم تغييره إلى مربع تحرير وسرد وربطناه بمصدر الصف بجدول الاصناف Items Code من خلال الاستعلام . تابع الخطوات في الصورة : عفوا اجعل عرض القائمة 6 حاصل جمع عرض العمودين New Microsoft Access Database2.accdb
    1 point
  30. أخي @صالح حمادي انظر للملف المرفق وادخل رقم 1000 بالرغم من عدم صحة الربط الا انه يفتح Active1.mdb وياريت لو تشرح لنا طريقة رفع الملف والحصول على الرابط مشابه لهذا https://dl.dropboxusercontent.com/s/j8q9eu0engzgqbs/active1.txt
    1 point
  31. رائع اشكرك على المرور هذه معلومة جديدة رائع اشكرك على المرور نحن لا نزال نتعلم ومنكم نستفيد
    1 point
  32. شاهد المرفق انقر دبل كليك على الخليه الصفراء واكتب رقمين في اول مربع وهكذا الذي يليه طبعا هذا مثال بالامكان تطويعه لاكثر من حاله حسب طلبك Ali_Cll.xlsm
    1 point
  33. وعليكم السلام 🙂 هذه البرامج اللي اعرفها: وهذه واحدة منهم ، مجانيه: http://www.skrol29.com/us/vtools.php وهنا شرحه بالعربي: جعفر والجميل في البرنامج ، للشباب اللي يريد يتعلم كيفية عمل هذه البرامج ، انها مفتوحة المصدر ، يعني تقدر تشوف الكود ، وتتعلمه 🙂
    1 point
  34. وضعته أنا لكي أحدد به نهاية التاريخ و بداية العبارة شغال أو متوقف أين ظهرت لك هذه العبارة
    1 point
  35. بس اسهل واسرع لك اذا عملت استعلام تحديث 🙂 جعفر هذه الطريقة تأخرك كثيرا : If RsW!id = RsM!ItId Then تصور اذا عندك 10,000 او 20,000 سجل او اكثر ، فانت تطلب من الكود ان يبحث فيهم سجل بسجل ، ولكل سجلات الجدول المصدر !! جعفر
    1 point
  36. اساتذتي الكرام لي شرف المساهمة في تطوير هذا الابداع وهي فكرة تجمع مابين مايريده الاستاذ السيد جمال وبين مايريد عمله الاستاذ صالح حمادي الفكرة هي جعل البرنامج يعمل على جهاز عميل واحد فقط اما لو تم نسخه الى جهاز اخر فسيعمل لمدة تجريبية معينة وهذه الفكرة تم النقاش حولها وهي تعتمد على قراءة سيريلات جهاز العميل وتكوين سيريال نمبر فريد من نوعه خاص بجهاز العميل فقط يرسله العميل للمبرمج .. بناءاً على البرنامج المقدم من الاستاذ صالح والذي يعتمد على قراءة رقم النسخة فاني اقترح ان يكون رقم النسخة هو سيريال مكونات قطع جهاز العميل حيث يرسلها البرنامج بطريقة اوتوماتيكية (تحتاج الى نقاش) او بالطريقة التقليدية اليدوية (عن طريق الفيس او الايميل) الى المبرمج لكي يتم وضعها في الملف النصي ووضع كلمة مفعل من تاريخ تاريخ كذا الى تاريخ كذا أو مفعل مدى الحياة على حسب مانريد. سؤال بسيط للأخ @صالح حمادي لمذا يظهر الرمز é في مستند النص على الـ dropbox 1000/01-11-2019+10-11-2019éشغال 1001/02-11-2019+12-11-2019éمتوقف
    1 point
  37. السلام عليكم كليك يمين على الخلايا المعنية ثم تنسيق الخلايا
    1 point
  38. هناك عدة برامج تأتي مع جهاز البصمة ، وكل منها يحفظ البيانات في قاعدة بيانات ، منها SQL Server و dbf و اكسس و mySQL و Oracle وووو ، تستطيع التحكم في الجهاز عن طريق SDK الجهاز ، والذي يعطيك اوامر وطرق السيطرة على الجهاز وتغيير اعداداته وتصدير بياناته ، منها من تستطيع استعمال الاكسس للتعامل مع SDK ، ومنها لابد التعامل مع مكتبات Net. ، ولكن ، وإن لم تتحكم في الجهاز ، والذي لم نحاول التعامل معه مباشرة ، فيمكنك التعامل مع البيانات مباشرة ، وهذا هو المهم 🙂 الجهاز الذي تعاملت معه قبل حوالي 5 سنوات ، كان يصدر بياناته الى dbf ، ولم يكن بالامكان استيراد بياناته مباشرة من الاكسس ، فاشترينا برنامج dbf viewer والذي يمكن التحكم فيه عن طريق commandline : https://www.dbf2002.com/help/command_line_options.htm استخدمنا الاكسس حتى نأخذ البيانات للحفظ Backup ، وبيانات يومية للاكسس ، وتم هذا مباشرة من الاكسس عن طريق البرنامج اعلاه ، وبعدها عملنا برنامج الحضور والانصراف والغياب في الاكسس ، بأكثر من قاعدة بيانات 🙂 وكان عندنا فترة اسبوع واحد فقط للعمل كله ، من يوم شفنا الجهاز الى يوم تطبيق البرنامج ، والعمل كان بمعدل 15 ساعة في اليوم ، والحمدلله كمل العمل جعفر
    1 point
  39. جرب هذا الماكرو Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) With Me.UsedRange .Columns.AutoFit .Rows.AutoFit End With End Sub
    1 point
  40. بارك الله فيك استاذ بن علية حاجي بعد اذن حضرتك ولإثراء الموضوع هذا حل اخر Sallary.xlsx
    1 point
  41. 1 point
  42. Sub test() Dim a As Variant, lr, i lr = Cells(Rows.Count, 2).End(xlUp).Row a = Range("b3:b" & Cells(Rows.Count, 2).End(xlUp).Row).Resize(, 5) With CreateObject("scripting.dictionary") For i = 1 To UBound(a) If a(i, 1) <> 0 Then If Not .exists(a(i, 1)) Then .Add a(i, 1), a(i, 5) Else .Item(a(i, 1)) = .Item(a(i, 1)) & "-" & a(i, 5) End If End If Next For i = 1 To lr - 2 Cells(2 + i, 2).Offset(, 6) = .Item(Cells(2 + i, 2).Value) Next End With End Sub
    1 point
  43. وكيف تشعر الاكسل انك اتتمت الكتابة في الخلية النشطة لكي ينقلك الى التالي
    1 point
  44. الاكواد المستخدمة :- نحن استخدمنا هذه الوحدة النمطية بها اربع فانكشن 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
  45. يسألونك دائماً عن ملف الصادر والوارد فكان هذا الملف الذي ارجو ان يستفيد منه اكبر عدد من المستخدمين فقط املأ الجدول بالبيانات اللازمة و حدد صفحة الترحيل واضغط على الزر من مميزاته: لا يسمح لك بتكرار رقم الصادر او الوارد لا يسمح لك بترحيل بيانات غير مكتملة Sader_Wared.xlsm
    1 point
  46. لا فضل لنا ، الفضل كله لله وما نسعى الا لأجر من الله ومثوبة من عنده
    1 point
  47. عندما نقوم بحماية ورقة العمل ، كيف يمكننا إستثناء بعض الخلايا من الحماية ؟؟ الإجابة : عن طريق استثناؤها من الحماية في الاكس بي Tools protection allow users to edit ranges ثم عرف المجال الذي تريد أو اختار الخلية و من القائمة المختصرة للماوس Format Cell و أزل خيار Locked ثم طبق الحماية علي ورقة العمل ستجد أن الخلية مستثناة من الحماية أي تقوم بعمل إستثناء للخلايا من الحماية عن طريق إختيارها ثم إختيار خصائص ، و حماية ، و الغاء تأمينها ثم عندما تطبق الحماية علي ورقة العمل ، تكون هذه الخلايا قد أستثنيت منها بالفعل
    1 point
×
×
  • اضف...

Important Information