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

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

  1. SEMO.Pa3x

    SEMO.Pa3x

    الخبراء


    • نقاط

      15

    • Posts

      540


  2. jjafferr

    jjafferr

    أوفيسنا


    • نقاط

      8

    • Posts

      9,814


  3. ابو جودي

    ابو جودي

    أوفيسنا


    • نقاط

      3

    • Posts

      6,818


  4. Ali Mohamed Ali

    Ali Mohamed Ali

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


    • نقاط

      2

    • Posts

      11,630


Popular Content

Showing content with the highest reputation on 09 أبر, 2019 in all areas

  1. السلام عليكم, في سنة 2017 قمت بكتابة كلاس بسيط لحماية برنامجي ولضمان برنامجي لا يعمل في غير كومبيوترات في حاله بيعه. مميزات الكلاس: 1- قفل قاعدة البيانات على ( رقم الهارد , البروسيسور , المذربورد , الماك أدريس ) 2- (استحاله) فك النماذج والتقارير في حال عدم تجاوزك لنموذج ( تسجيل الدخول ) ببساطة ستقول يمكنني العثور على باسورد القاعدة داخل الجدول ( الطريقة المعتادة لدينا جميعا في انشاء نموذج تسجيل دخول ). قبل كل شي ليكن لدينا مثلا جدول اسمة ( tbl_Login ) و نموذج اسمه ( frm_Login ) الجدول لتخزين اسم المستخدم وكلمة المرور والنموذج لعمل تسجيل الدخول عند ذهابنا للجدول ( tbl_Login ) ، سوف نحصل على باسورد مشفر من الجدول لو كان الباسورد مثلا ( 313 ) فإنك ستحصل على ( 701D6068 ) 2- عندما نقوم بتسجيل الدخول في النموذج سيقوم البرنامج بأخذ كلمة السر المدخلة ويقوم بتشفيرها ثم يقوم بمطابقتها مع الباسورد الموجود في الجدول اذا كان الباسورد المُدخل يطابق الجدول سيكتب قيمة معينة runtime ويقوم بازالة جميع القيود من النماذج والتقارير. اولا: كلاس الحماية Option Compare Database '----------------------------------------------------- ' Protection Module Coded By Hassanein Hirz Aldeen (SEMO.Pa3x) ' Date 26/11/2017 ' All rights reserved. copyright © 2017 '----------------------------------------------------- Public SEMO As String Function SEMO_GET() SEMO = SEMO SEMO_GET = SEMO End Function Function PR() As Boolean PR = False 'False=Disabled , True=Enabled End Function Function HWND_ID() HWND_ID = "3C3F4825" 'Your HWID End Function Function HWND_MSG() HWND_MSG = "...ليست لديك صلاحيات كافية لإستخدام هذا الاجراء" End Function Function KEY_ENDE() KEY_ENDE = "PA$X" End Function Function HWND_GET() Set root = GetObject("winmgmts:{impersonationlevel=impersonate}!\\.\root\cimv2") Set disks = root.execquery("select * from win32_logicaldisk") For Each disk In disks If disk.volumeserialnumber <> "" Then HWND_GET = disk.volumeserialnumber Exit For End If Next End Function Function HWND_PROTECTION() Set root = GetObject("winmgmts:{impersonationlevel=impersonate}!\\.\root\cimv2") Set disks = root.execquery("select * from win32_logicaldisk") For Each disk In disks If disk.volumeserialnumber <> "" Then HWND_PROTECTION = disk.volumeserialnumber Exit For End If Next If HWND_ID = HWND_PROTECTION Then HWND_PROTECTION = "True" Else HWND_PROTECTION = "False" End If End Function 'Code contained within module named mdlforencryptionanddecryption Public Function XORDecryption(CodeKey As String, DataIn As String) As String Dim arkdata1 As Long Dim strDataOut As String Dim intXOrValue1 As Integer Dim intXOrValue2 As Integer For arkdata1 = 1 To (Len(DataIn) / 2) 'The first value to be XOr-ed comes from the data to be encrypted intXOrValue1 = Val("&H" & (Mid(DataIn, (2 * arkdata1) - 1, 2))) 'The second value comes from the code key intXOrValue2 = Asc(Mid(CodeKey, ((arkdata1 Mod Len(CodeKey)) + 1), 1)) strDataOut = strDataOut + Chr(intXOrValue1 Xor intXOrValue2) Next arkdata1 XORDecryption = strDataOut End Function Public Function XOREncryption(CodeKey As String, DataIn As String) As String Dim arkdata1 As Long Dim strDataOut As String Dim temp As Integer Dim tempstring As String Dim intXOrValue1 As Integer Dim intXOrValue2 As Integer For arkdata1 = 1 To Len(DataIn) 'The first value to be XOr-ed comes from the data to be encrypted intXOrValue1 = Asc(Mid$(DataIn, arkdata1, 1)) 'The second value comes from the code key intXOrValue2 = Asc(Mid$(CodeKey, ((arkdata1 Mod Len(CodeKey)) + 1), 1)) temp = (intXOrValue1 Xor intXOrValue2) tempstring = Hex(temp) If Len(tempstring) = 1 Then tempstring = "0" & tempstring strDataOut = strDataOut + tempstring Next arkdata1 XOREncryption = strDataOut End Function الاستخدام لكل النماذج والتقارير اكتب في حدث Form_Load Option Compare Database Private Sub Form_Load() On Error Resume Next If HWND_PROTECTION = "False" Then MsgBox HWND_MSG, vbCritical, "عملية خاطئة" For i = 0 To Controls.Count - 1 Dim X As Control Set X = Me.Controls.Item(i) X.Visible = False Next DoCmd.Close DoCmd.CloseDatabase DoCmd.Quit End If If Protection.SEMO_GET = "SEMO" = False Then MsgBox HWND_MSG, vbCritical, "عملية خاطئة" For i = 0 To Controls.Count - 1 Dim XS As Control Set XS = Me.Controls.Item(i) XS.Visible = False Next DoCmd.Close DoCmd.CloseDatabase DoCmd.Quit End If End Sub الان عندما تريد اعطاء القاعدة لشخص ما قم باعطاءه اولا ملف الـ VBS هذا '----------------------------------------------------- ' ReCoded By Hassanein Hirz Aldeen (SEMO.Pa3x) ' Date 26/11/2017 ' All rights reserved. copyright © 2017 '----------------------------------------------------- ' Get clipboard text Set objHTML = CreateObject("htmlfile") Set Ws = CreateObject("WScript.Shell") Clipboardtext = objHTML.ParentWindow.ClipboardData.GetData("text") sText = HWND_GET 'Set Clipboard Ws.Run "mshta.exe ""javascript:clipboardData.setData('text','" & Replace(Replace(sText, "\", "\\"), "'", "\'") & "');close();""", 0, True MsgBox "Copied!" Function HWND_GET() Set root = GetObject("winmgmts:{impersonationlevel=impersonate}!\\.\root\cimv2") Set disks = root.execquery("select * from win32_logicaldisk") For Each disk In disks If disk.volumeserialnumber <> "" Then HWND_GET = disk.volumeserialnumber Exit For End If Next End Function وظيفة هذا الملف يقوم باستخراج ( رقم الهارد , البروسيسور , المذربورد , الماك أدريس ) ثم ينسخه بعدما يشغله سيقوم العميل باعطاءك هذا الرقم لكي تقوم انت بدورك بوضعه داخل الكلاس في المنطقة Function HWND_ID() HWND_ID = "Your HWID" End Function استبدل كلمة ( Your HWID ) بالرقم الذي سيعطيه لك العميل. ثم بعد ذلك قم بحفظ القاعدة بصيغة ( ACCDE ) واتحدا اي شخص يفتحها مرة اخرى: لكي تفتح النماذج والتقارير عليك بتخطي نموذج تسجيل الدخول ارفقت لكم قاعدة محمية وقاعدة بدون حماية مع ملف الـ VBS الذي يستخرج ارقام قطع الجهاز ويقوم بنسخها،، اتمنى لكم الفائدة جميعاً اهداء الموضوع الى مُعلمي الرائع @jjafferr حسنين Login_SEMO_Pa3x.rar
    7 points
  2. بارك الله فيك استاذ سليم وكما نصحك اخى الكريم استاذنا الكبير سليم فلابد دائما ان تقوم برفع ملف وتوضيح عليه المطلوب وهذه معادلة اخرى بجانب المعادلة الرائعة للأستاذ سليم -وذلك لإثراء الموضوع =LOOKUP(2,1/((A1:A1000<0)),A1:A1000)
    2 points
  3. السلام عليكم 🙂 نفس فكرة اخي حسنين ، ولكن على برنامجك: . . . . . . جعفر 1028.exa 4.accdb.zip
    2 points
  4. ضع الصور في الجدول على شكل مرفقات. حسنين Materials_With_Images.rar
    2 points
  5. كان يجب ان ترفع ملف للمعالجة لكن للمرة الاولى ارفق لك مثالاً عما تريد laste_neg.xlsx
    2 points
  6. وعليكم السلام 🙂 اخبرك طريقة الصيد ، بدل ان اعطيك سمكه 🙂 الجزء الاول هنا . والجزء الثاني . ولسرعة جلب البيانات ، استعمل التالي وبدون ذكر الحقل ، لأنك في نهاية الامر تحسب عدد السجلات: DCount("*", . وللتأكد انك صرت صياد ، وبعد ان تحصل على النتيجة الصحيحة ، اريدك تعرض لنا الكود بالكامل و النتيجة 🙂 جعفر
    2 points
  7. فورم استدعاء pdf واظهار البيانات فى الليست اكثر من 10 عواميد وطباعة البيانات الفيديو الصور فورم استدعاء pdf واظهار البيانات فى الليست اكثر من 10 عواميد وطباعة البيانات.rar
    1 point
  8. السلام عليكم ورحمة الله تعالى وبركاته اولا ليعلم كل اخوانى واساتذتى الكرام أننى لا ولم ولن أبخل قط عليكم بأى جهد قد بذلته فى تصميم أو فكرة ما فقط الهدف من وضع المرفق مغلق هو أولا : للتجربة للتأكد من خلو القاعدة المرفقة من أى خلل ثانيا : معرفة آراء أساتذتى الكرام وإخوانى لا أعلم إن سبقنى إليها أحد أو لا من قبل ثالثا : تجول برأسى الكثيير من الأفكار أحاول تطبيقها تضفى الكثير من المرونة فى التعامل مع الحقول المختلفة داخل جميع نماذج قاعدة البيانات إن كانت تستحق ولم يسبقنى إليها أحد أنتظر منكم الأمر حتى أرفعها فورا مفتوحة وبالأفكار الجديدة إن شاء الله OfficenaKeyboardUtility.rar OfficenaKeyboardUtility.zip OfficenaKeyboardUtility.mdb
    1 point
  9. كيف ما اصير صياد اذا كنت انت معلمي تعلمت منك الكثير ومازلت اتعلم وسأضل اتعلم Tx = DCount("*", "Table1", "[txt]='" & Me.txt & "' AND[nb]=" & Me.nb & " and [Tdate]=" & DateFormat(Me.Tdate)) النتيجة ممتازة شكرا لك ومبروك على الترقية مع الاسف اخي ابو ياسين النتيجة ليست كما يجب لاجديد طبعا يقال بحقك دائماً مبدع تعددت الحلول من اساتذة كبار وهذي ينطبق على مقولة استاذي @jjafferr في اعتقادي ، مشاركة أكثر من شخص في الرد على السؤال ، يفتق الاذهان ويدمج التجارب ويبلور الافكار وفائدة للجميع ، فمنه نتعلم الطرق الاخرى للإجابة على السؤال شكرا لكم جميعا ‏‏dcountData - 2.accdb
    1 point
  10. تفضل اخي الكاسر وخذ ماشئت Tx = DCount("id", "Table1", "[Tdate]=form!Tdate AND [txt]='" & Me.txt & "' AND [nb]=" & Me.nb) Tx = DCount("id", "Table1", "format([Tdate],'ddmmyyyy')=" & Format(Tdate, "ddmmyyyy") & " AND [txt]='" & Me.txt & "' AND [nb]=" & Me.nb) تحياتي
    1 point
  11. اهلا استاذ @رمهان شكرا لكلامك الجميل. لا يقبل ذلك وستظهر لك رسالة الخطأ، جرب بنفسك لكي ترى النتيجة. لحد الان لم ندخل في الحماية الثانية وهي ( الحماية على قطع الجهاز ) (رقم الهارد, رقم المذربورد , رقم البروسيسور , رقم الماك أدريس ) تحياتي لك حسنين
    1 point
  12. @وائل أبو عبد الرحمن تفضل طلبك عزيزي. بالتوفيق. حسنين بحث.accdb
    1 point
  13. تفضل كتبت لك مثال سريع وخالي من التعقيدات. حسنين SEMO_Pa3x.rar
    1 point
  14. اهلا عزيزي, قاعدة البيانات المرفقة كانت للتوضيح لا اكثر. يمكنك عمل زر او اي شي تريده. بكل بساطة يمكن عمل يوزر في الجدول اسمه مثلا الدعم الفني وسادع برنامجي كل ما قمت بتشغيله يتحقق من هذا اليوزر فان لم يجده ينشأه مرة اخرى او قمت بتعديل كلمة المرور الخاصة به سوف يقوم بارجاع الاصلية. يمكنك الحصول عليها بتمرير كلمة السر الموجودة في الجدول على الفنكشن الذي يسمى XorDecrypt وسيقوم هو بدوره بأرجاع الباسورد مفكوك التشفير يمكنك عرضه بأي طريقة تحب مثلا MessageBox او في TextBox. حسنين لا شيء يخلوا من الحماية وان لم تستخدمها اليوم ستستخدمها غدا. ليس من مصلحة مايكروسوفت او اي شركة اخرى ان تصمم حماية لا يمكن التغلب عليها والا ستخسر الشركة ولن تبيع شيئاً اعطيك مثال بسيط: بأستطاعة شركات الحماية مثلا Avast وغيرها التي تقوم بأنتاج الاف النسخ من مضادات الفايروسات ( انتي فايروس ) بأستطاعتها ان تنهي من الوجود شيئا يسمى فيروس او تروجان او دودة... الخ لكن ما الثمن لذلك؟؟ لن تبيع ولا منتجاً واحداً وستخسر الشركة لذلك من مصلحتها ان تسمح للفايروسات والهاكرز بالاختراقات وغيرها لكي تبقى هذه الشركة في الساحة لتبيع منتجاتها حسنين
    1 point
  15. وعليكم السلام ورحمة الله وبركاته.. اكتب في مربع النص =DCount("[ID]";"Table1";"txt = '" & [txt] & "' And Tdate = [Tdate] And nb = " & [nb]) حسنين
    1 point
  16. @رمهان الله يحيي اصلك استاذ رمهان.
    1 point
  17. السلام عليكم شباب 🙂 في مشاركتي لسؤال من نفس النوع ، وبعد البحث في الانترنت ، وضعت هذه المشاركة ، ولم يتم تجربة الكود ، والفكرة هي عمل التحويل الى accde على جهاز العميل برمجيا : . وفي هذا الموضوع ، تم تجربة الكود وبنجاح 🙂 . جعفر
    1 point
  18. وعليكم السلام ورحمة الله وبركاته 🙂 شكرا لك على هذه الكلمات الجميلة ، وانا شخصيا ، ونحن كمنتدى وإدارة المنتدى ، نعتز ونفتخر برؤية مشاركات فيها فائدة للجميع ، وبالذات بافكار جديدة 🙂 نحن محظوظين بوجودنا في قريتنا الصغيرة "منتدى افسينا" ، وبوجود الاعضاء جيران لنا ، وبالاخص جيران امثالكم 🙂 جعفر
    1 point
  19. هههههههههههههه بس كده انت تأمر يا استاذ @عبد الله قدور وبعدين افهم من هذا ان المرفق الان اشتغل عندك تمام ؟ اذا هيك انا بانتظار الرد بعد التجربه وهل هناك اخطاء وهل هناك افكار تريدون طرحها لاضافتها
    1 point
  20. السلام عليكم 🙂 نعم ممكن 🙂 هذا الجدول الجديد، مثلا: تم تعديل الاستعلام والوحدة النمطية لتتضمن جميع الدرجات: والنتيجة: وهذه الوحدة النمطية المعدلة: Public Function Per(Deg As String, Final_Grade As Integer) As String 'Expr1: IIf([Deg1]="غـ","متخلف",IIf(((Val([Deg1])/20)*100)<50,"Less50",IIf(((Val([Deg1])/20)*100) Between 50 And 55,"50-55%",IIf(((Val([Deg1])/20)*100) Between 55.1 And 60,"55-60%",IIf(((Val([Deg1])/20)*100) Between 60.1 And 65,"60-65%",IIf(((Val([Deg1])/20)*100) Between 65.1 And 70,"65-70%",IIf(((Val([Deg1])/20)*100) Between 70.1 And 75,"70-75%",IIf(((Val([Deg1])/20)*100) Between 75.1 And 80,"75-80%",IIf(((Val([Deg1])/20)*100) Between 80.1 And 85,"80-85%",IIf(((Val([Deg1])/20)*100) Between 85.1 And 90,"85-90%",IIf(((Val([Deg1])/20)*100) Between 90.1 And 95,"90-95%",IIf(((Val([Deg1])/20)*100) Between 95.1 And 99.99,"95-99%","100%")))))))))))) Dim Grade As Double Grade = ((Val(Deg) / Final_Grade) * 100) If Deg = "غـ" Then Per = "متخلف" ElseIf Grade < 50 Then Per = "Less50" ElseIf Grade >= 50 And Grade <= 55 Then Per = "50-55%" ElseIf Grade >= 55.1 And Grade <= 60 Then Per = "55-60%" ElseIf Grade >= 60.1 And Grade <= 65 Then Per = "60-65%" ElseIf Grade >= 65.1 And Grade <= 70 Then Per = "65-70%" ElseIf Grade >= 70.1 And Grade <= 75 Then Per = "70-75%" ElseIf Grade >= 75.1 And Grade <= 80 Then Per = "75-80%" ElseIf Grade >= 80.1 And Grade <= 85 Then Per = "80-85%" ElseIf Grade >= 85.1 And Grade <= 90 Then Per = "85-90%" ElseIf Grade >= 90.1 And Grade <= 95 Then Per = "90-95%" ElseIf Grade >= 95.1 And Grade <= 99.99 Then Per = "95-99%" Else Per = "100%" End If 'Debug.Print "Grade of: " & Deg & "/" & Final_Grade & " = " & Per End Function وهذه نتيجة كل درجة على حدة: Grade of: 13/20 = 60-65% Grade of: 11/20 = 50-55% Grade of: 11/20 = 50-55% Grade of: 10/20 = 50-55% Grade of: 0/20 = Less50 Grade of: 0/20 = Less50 Grade of: 9/20 = Less50 Grade of: 8/20 = Less50 Grade of: 7/20 = Less50 Grade of: 6/20 = Less50 Grade of: 5/20 = Less50 Grade of: 12/20 = 55-60% Grade of: 12/20 = 55-60% Grade of: 3/20 = Less50 Grade of: 2/20 = Less50 Grade of: 1/20 = Less50 Grade of: 4/20 = Less50 Grade of: 6/30 = Less50 Grade of: 1/30 = Less50 Grade of: 2/30 = Less50 Grade of: 3/30 = Less50 Grade of: 20/30 = 65-70% Grade of: 20/30 = 65-70% Grade of: 9/30 = Less50 Grade of: 0/30 = Less50 Grade of: 7/30 = Less50 Grade of: 15/30 = 50-55% Grade of: 8/30 = Less50 Grade of: 20/30 = 65-70% Grade of: 19/30 = 60-65% Grade of: 18/30 = 55-60% Grade of: 16/30 = 50-55% Grade of: 14/30 = Less50 Grade of: ÛÜ/30 = ãÊÎáÝ Grade of: ÛÜ/30 = ãÊÎáÝ Grade of: ÛÜ/30 = ãÊÎáÝ Grade of: 5/30 = Less50 Grade of: 17/30 = 55-60% Grade of: 14/50 = Less50 Grade of: 10/50 = Less50 Grade of: 11/50 = Less50 Grade of: 13/50 = Less50 Grade of: 20/50 = Less50 Grade of: 15/50 = Less50 Grade of: 16/50 = Less50 Grade of: 17/50 = Less50 Grade of: 18/50 = Less50 Grade of: 19/50 = Less50 Grade of: ÛÜ/50 = ãÊÎáÝ Grade of: 19/50 = Less50 Grade of: 12/50 = Less50 Grade of: 75/100 = 70-75% Grade of: 75/100 = 70-75% Grade of: ÛÜ/100 = ãÊÎáÝ Grade of: 50/100 = 50-55% Grade of: 60/100 = 55-60% Grade of: 70/100 = 65-70% Grade of: 65/100 = 60-65% Grade of: 40/100 = Less50 Grade of: 85/100 = 80-85% Grade of: 85/100 = 80-85% Grade of: 90/100 = 85-90% Grade of: 90/100 = 85-90% Grade of: 95/100 = 90-95% Grade of: 95/100 = 90-95% Grade of: 100/100 = 100% Grade of: 100/100 = 100% Grade of: 60/100 = 55-60% Grade of: 50/100 = 50-55% Grade of: 40/100 = Less50 Grade of: 0/100 = Less50 Grade of: 15/100 = Less50 Grade of: ÛÜ/100 = ãÊÎáÝ Grade of: 55/100 = 50-55% Grade of: 65/100 = 60-65% Grade of: 18/100 = Less50 Grade of: ÛÜ/100 = ãÊÎáÝ Grade of: ÛÜ/100 = ãÊÎáÝ Grade of: 80/100 = 75-80% Grade of: 80/100 = 75-80% Grade of: 30/100 = Less50 Grade of: 13/20 = 60-65% Grade of: 11/20 = 50-55% Grade of: 11/20 = 50-55% Grade of: 10/20 = 50-55% Grade of: 0/20 = Less50 Grade of: 0/20 = Less50 Grade of: 9/20 = Less50 Grade of: 8/20 = Less50 Grade of: 7/20 = Less50 Grade of: 6/20 = Less50 Grade of: 5/20 = Less50 Grade of: 12/20 = 55-60% Grade of: 12/20 = 55-60% Grade of: 3/20 = Less50 Grade of: 2/20 = Less50 Grade of: 1/20 = Less50 Grade of: 4/20 = Less50 Grade of: 6/30 = Less50 Grade of: 1/30 = Less50 Grade of: 2/30 = Less50 Grade of: 3/30 = Less50 Grade of: 20/30 = 65-70% Grade of: 20/30 = 65-70% Grade of: 9/30 = Less50 Grade of: 0/30 = Less50 Grade of: 7/30 = Less50 Grade of: 15/30 = 50-55% Grade of: 8/30 = Less50 Grade of: 20/30 = 65-70% Grade of: 19/30 = 60-65% Grade of: 18/30 = 55-60% Grade of: 16/30 = 50-55% Grade of: 14/30 = Less50 Grade of: ÛÜ/30 = ãÊÎáÝ Grade of: ÛÜ/30 = ãÊÎáÝ Grade of: ÛÜ/30 = ãÊÎáÝ Grade of: 5/30 = Less50 Grade of: 17/30 = 55-60% Grade of: 14/50 = Less50 Grade of: 10/50 = Less50 Grade of: 11/50 = Less50 Grade of: 13/50 = Less50 Grade of: 20/50 = Less50 Grade of: 15/50 = Less50 Grade of: 16/50 = Less50 Grade of: 17/50 = Less50 Grade of: 18/50 = Less50 Grade of: 19/50 = Less50 Grade of: ÛÜ/50 = ãÊÎáÝ Grade of: 19/50 = Less50 Grade of: 12/50 = Less50 Grade of: 75/100 = 70-75% Grade of: 75/100 = 70-75% Grade of: ÛÜ/100 = ãÊÎáÝ Grade of: 50/100 = 50-55% Grade of: 60/100 = 55-60% Grade of: 70/100 = 65-70% Grade of: 65/100 = 60-65% Grade of: 40/100 = Less50 Grade of: 85/100 = 80-85% Grade of: 85/100 = 80-85% Grade of: 90/100 = 85-90% Grade of: 90/100 = 85-90% Grade of: 95/100 = 90-95% Grade of: 95/100 = 90-95% Grade of: 100/100 = 100% Grade of: 100/100 = 100% Grade of: 60/100 = 55-60% Grade of: 50/100 = 50-55% Grade of: 40/100 = Less50 Grade of: 0/100 = Less50 Grade of: 15/100 = Less50 Grade of: ÛÜ/100 = ãÊÎáÝ Grade of: 55/100 = 50-55% Grade of: 65/100 = 60-65% Grade of: 18/100 = Less50 Grade of: ÛÜ/100 = ãÊÎáÝ Grade of: ÛÜ/100 = ãÊÎáÝ Grade of: 80/100 = 75-80% Grade of: 80/100 = 75-80% Grade of: 30/100 = Less50 جعفر 1022.Problem 55-2003.mdb.zip
    1 point
  21. السلام عليكم تفضل أخي هذه طريقة أخرى للحل و بسطر وحيد تحديد عدد سجلات فى التقرير-تم الحل.rar
    1 point
  22. الاخ الكريم / المصري وعليكم السلام ورحمة الله وبركاته والله انك انسان محترم جدا وفي غاية طيبة القلب الموضوع المعروض من وجهة نظري المتواضعة جدا في غاية الاهمية بل ضروري جدا في بعض البرامج فأنت قمت بعرض الموضوع ولم تجد اجابة وعندما وجدت الاجابة فلن تبخل بها ووضعتها لكي يستفيد الكل ولاني كنت متابع الموضوع وجدت الحل الشافي وفي كود صغير جدا انا ترددت اكثر من مرة ان اعمل مداخلة ولكن وجدت من الافضل الي ان اشير ان بعض الاحيان يسأل سائل وعندما يجد الحل من الخارج يعرض ويقول وجدت الحل ولا يعطينا ما هو الحل ولذلك انا استفدت كثيرا كثيرا كثيرا من موضوع اخونا / المصري لك كل احترام وتقدير اخي
    1 point
  23. وعليكم السلام 🙂 اذا كان في حقل الاستعلام شروط كثيرة ، فأنا الجأ الى الوحدة النمطية لتسهيل الامر ، وهذا ما فعلته هنا 🙂 . والنتيجة . والوحدة النمطية: Option Compare Database Option Explicit Public Function Per(Deg As String) As String 'Expr1: IIf([Deg1]="غـ","متخلف",IIf(((Val([Deg1])/20)*100)<50,"Less50",IIf(((Val([Deg1])/20)*100) Between 50 And 55,"50-55%",IIf(((Val([Deg1])/20)*100) Between 55.1 And 60,"55-60%",IIf(((Val([Deg1])/20)*100) Between 60.1 And 65,"60-65%",IIf(((Val([Deg1])/20)*100) Between 65.1 And 70,"65-70%",IIf(((Val([Deg1])/20)*100) Between 70.1 And 75,"70-75%",IIf(((Val([Deg1])/20)*100) Between 75.1 And 80,"75-80%",IIf(((Val([Deg1])/20)*100) Between 80.1 And 85,"80-85%",IIf(((Val([Deg1])/20)*100) Between 85.1 And 90,"85-90%",IIf(((Val([Deg1])/20)*100) Between 90.1 And 95,"90-95%",IIf(((Val([Deg1])/20)*100) Between 95.1 And 99.99,"95-99%","100%")))))))))))) Dim Grade As Double Grade = ((Val(Deg) / 20) * 100) If Deg = "غـ" Then Per = "متخلف" ElseIf Grade < 50 Then Per = "Less50" ElseIf Grade >= 50 And Grade <= 55 Then Per = "50-55%" ElseIf Grade >= 55.1 And Grade <= 60 Then Per = "55-60%" ElseIf Grade >= 60.1 And Grade <= 65 Then Per = "60-65%" ElseIf Grade >= 65.1 And Grade <= 70 Then Per = "65-70%" ElseIf Grade >= 70.1 And Grade <= 75 Then Per = "70-75%" ElseIf Grade >= 75.1 And Grade <= 80 Then Per = "75-80%" ElseIf Grade >= 80.1 And Grade <= 85 Then Per = "80-85%" ElseIf Grade >= 85.1 And Grade <= 90 Then Per = "85-90%" ElseIf Grade >= 90.1 And Grade <= 95 Then Per = "90-95%" ElseIf Grade >= 95.1 And Grade <= 99.99 Then Per = "95-99%" Else Per = "100%" End If End Function جعفر 1022.Problem 55-2003.mdb.zip
    1 point
  24. السلام عليكم ورحمة الله وبركاته أخي في الله بالنسبة لطلبك على حد علمي توجد طريقتين الأولى عن طريق كتابة ما تريده داخل جدول من عمودين وتكتب كيفما تشاء داخل كل عمود كما تريد والثانية عن طريق الأعمدة ولكن ستكتب ما تريد كتابته باللغة العربية مثلاً وعندما تنتهى من الكتابة تبدأ في تقسيم الكتابة إلى عمودين ثم تضغط في نهاية الكلام على Ctrl + Shift + Enter وهكذا سيتحول كل الكلام لعمود واحد وتنتقل للعمود الآخر وتكتب ما تريده بالانجليزي أرجو أن يكون شرحي بسيط وسهل
    1 point
  25. السلام عليكم جزاك الله كل خير اخي الكريم فكرة جيدة وكنت افكر بشي مماثل لفكرتك لكن لم يسعفني الحظ في تجربته لاني استخدم نسخة 64 والمرفق لم يعمل عليه فان امكن نسخة ل 64
    0 points
×
×
  • اضف...

Important Information