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

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

  1. jjafferr

    jjafferr

    أوفيسنا


    • نقاط

      10

    • Posts

      9,814


  2. Eng.Qassim

    Eng.Qassim

    الخبراء


    • نقاط

      4

    • Posts

      2,302


  3. ابو جودي

    ابو جودي

    أوفيسنا


    • نقاط

      3

    • Posts

      6,818


  4. أبو عبدالله الحلوانى

Popular Content

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

  1. جرب هاي المعادلة في مصدر بيانات حقل مبلغ التقريب: =Round([المبلغ]/1000,0)*1000 المبلغ = 284667 نقسمه على 1000 (عدد الخانات التي تريد تقريبها) = 284.667 نقرب الرقم باستخدان الامر Round ، وعدد الخانات العشرية = 0 ، فتكون النتيجة 285 نضرب الرقم في 1000 لكي يرجع لى نفس حجم الخانات السابقة = 285 * 1000 = 285000 وبما اننا استعملنا امر التقريب ، فاليك مثال للنتيجة اللرقم التالي: 284499 = 284000 284500 = 284000 284501 = 285000 فأي رقم اكبر من 500 سيتم تقريبه الى الرقم الاعلى. جعفر
    3 points
  2. السلام عليكم ورحمة الله وبركاته بناء على طلب احد الاحباب هذا العمل للتجربة اولا برجاء فتح القاعدة وموافتى بالاتى هل تم فتح القاعدة بشكل طبيعى أم أنه طلب منكم وضع رقم ترخيص لتشغيل القاعدة طيب فى حالة طلب رقم الترخيص من فضلك انسخ رقم الـ Activation Number من النموذج من خلال زر الامر Copy وقم بلصقه هنا فى مشاركة للتأكد من فاعلية الفكرة سوف أرسل لكم رقم ترخيص License Number لفتح القاعدة وبعد ذلك سوف تعمل بنجاح الى ان يتم نقلها لجهاز اخر وستتوقف عن العمل ولن يتم فتحها بنفس الرقم السابق والذى أرسلته اليكم ملاحظة رقم الترخيص يتغير من جهاز لاخر يعنى الشخص الذى سوف ارسل لع رقم الترخيص يخص جهازه الحالى فقط ولن ينفع مع شخص غيره ممكن نجرب سويا Anti Copy 3.zip
    2 points
  3. هذا المطلب قد تطرق له من قبل اخي الاستاذ جعفر اطلب من اخواني واحبتي الاعزاء تكرما وتفضلا ان لا تكون الاجابة ضمن المرفق فقط مثلا بأن يقوم بالتعديل على المرفق ثم يرفعه فضرر هذه الطريقة فادح ويتضح في قادم الايام فيما لو تم حذف المرفق لاي سبب من الاسباب ومن المعلوم ان النصوص اكثر ثباتا وبقاء ايضا يصعب على من يعمل من هاتفه ويطلب المعلومة السريعة واعجبه السؤال ويحب الاطلاع على الحل فالمطلوب هو وجوب عرض الحل كنص سواء كان كود او شرح مبسط لما تم عمله الايضاح والشرح قد لا يتعدى سطرا واحدا .. ولكنه يجب ان يعطي تصورا صحيحا لطريقة الحل . بارك الله في اعمالكم وجهودكم وكتبها في موازين اعمالكم .
    2 points
  4. يبدو ان النقاش قد احتدم اثناء غيابي ولا اعلم شكرا علي التنبيه علي هذه الثغرة ان شاء الله نبحث عن حيلة لتجاوزها نعم هذا هو وانما هو محض اجتهاد علي قدر المستطاع لحفظ الحقوق الفكرية والمادية أحيانا أعتقد ان هذا ما قامت به الأخت بالضبط انها فتحت الفولدر وأخذت نسخة من محتوياته اثناء عملية التسطيب فهذا الرقم السري الذي أظهرته هو موجود داخل الاسكربت - ولا اعتقد علي حد علمي ان هنالك برامج يمكنها معرفة الرقم السري للاكسس بهذه الدقة خاصة اذا كان رقما معقدا بهذا الشكل شاكر لك هذه المعلومة لم اعلم عن وجود هذا البرنامج الا منكم جزاك الله خيرا والآن يمكنني ان أقول انقلب السحر علي الساحر لم يعد المضوع خاص بالحماية بل بفك تلك الحماية بعد كل ماقيل ما بت اثق بهذا
    2 points
  5. السلام عليكم ورحمة الله اليك المطلوب مطلوب لكشف المناداة.xlsx
    2 points
  6. وعليكم السلام الطريقة ليست احترافية لكن تفي بالغرض TT.accdb
    2 points
  7. تفضل 🙂 المرفق فيه ملفين ، والاثنين يعملون نفس العمل ، ولكن الملف رقم 2 عملته خصيصا لـ @Moosak لأنه يعمل كوحدة نمطية 🙂 الفكرة مثل اول مشاركة ، نعمل حقل مؤقت : . ثم عملت تنسيق شرطي لجميع الحقول ، اذا كانت قيمة الحقل "رقم_التذكرة" موجودة في قيمة الحقل المؤقت ، اجعل لون السطر أخضر (والسبب في اختيار حقل رقم_التذكرة ، لأن بياناته غير متكرر) : 1. نختار جميع الحقول ، 2. ننقر على زر التنسيق الشرطي . . هذه هي المعادلة بالطريقة الصحيحة: InStr([tmp_ticket_No],"|" & [رقم_التذكرة] & "|")>0 . وهذا هو الكود Private Sub Form_Current() Me.tmp_ticket_No = "|" & Me.[رقم_التذكرة] & "|" End Sub Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) 'Me.SelHeight = to specify or determine the number of selected rows 'Me.SelTop = to specify or determine which row (record) is topmost in the current selection ' if no selection If Me.SelHeight = 0 Then Exit Sub Dim i As Integer Dim rst As dao.Recordset Set rst = Me.RecordsetClone rst.MoveFirst ' if the user pressed the Shift or Control key on the keyboard, 'then don't clear the previous selection If Shift <> acShiftMask And Shift <> acCtrlMask Then 'clear the previous selection Me.tmp_ticket_No = "" End If ' Move to the first selected record. rst.Move Me.SelTop - 1 ' Loop through the selected records For i = 1 To Me.SelHeight ' add the selected Records to the tmp field Me.tmp_ticket_No = Me.tmp_ticket_No & "|" & rst![رقم_التذكرة] & "|" rst.MoveNext Next i rst.Close: Set rst = Nothing 'Debug.Print Me.tmp_ticket_No End Sub . والنتيجة جعفر 1457.تلوين سجل محدد.accdb (2).zip
    2 points
  8. الشكل للكلمات والحروف العربية
    1 point
  9. السلام عليكم ورحمة الله وبركاته في المجلد المرفق قاعدة بيانات وملفين وورد في النموذج (faaa ) يوجد زرين امر الاول : لفتح ملف وورد الاول / - يعمل بشكل طبيعي أي يفتح ملف الوورد المقصود الثاني : لفتح ملف وورد الثاني/ - لايعمل بشكل طبيعي أي انه لايفتح ملف الوورد الثاني ياترى هل السبب لان ملف الوورد الثاني يوجد فيه ماكرو استبدال انا بحاجه ماسه له ام ان كود فتح الملف فيه خطا ارجو مساعدتي ان امكن بفتح ملف الوورد الثاني وجزاكم الله خير DAAOE.rar
    1 point
  10. سيدي الكريم .. سمها ما شئت فهي بالاخير فاتورة مشتريات وارجو منك ان تأخذ ماذكرة الاستاذ جعفر في بناء قاعدتك ... انا اجبتك عن الجزئية التي طلبتها لكن ماتريده ليس له علاقة بالقاعدة المرفقة ارجوا منك ان تفتح موضوعا جديدا وتذكر به ماتريد... وان شاء الله تجدنا عونا لك
    1 point
  11. تفضل سيدي الكريم انظر للاستعلام sys.accdb
    1 point
  12. ماهي البيانات التي تريدها ان تظهر في كل صفحة : يعني هل البيانات موجودة في قاعدة البيانات ، وماهي الحقول ، وكيف تقرر انك تريد تطبع لفلان او فلان ، وهل تطبع الورقة التي بها البيانات ، او تريد ارسال ملف وورد/pdf لمكان ما ؟؟ يمكنك ارفاق صورة من التقرير/ التقارير ، حتى نعرف التنسيق المطلوب. جعفر
    1 point
  13. خطأ في صيغة ملف الوورد استبدل الكود بالتالي في ازرار فتح الملف الثاني و سيعمل بدون مشكلات Dim X As Object On Error Resume Next Set X = CreateObject("Word.Application") X.Documents.Open CurrentProject.Path & "\althane.doc" X.Visible = True X.Activate X.ActiveDocument.Bookmarks("Idd1").Select X.Selection.InsertAfter Me.Idd.Value
    1 point
  14. وعليكم السلام ورحمة الله وبركاته 🙂 اخي يونس ، اطلعت على ملفي الوورد ، ورأيت بأنك ترسل بيانات له من الاكسس. سؤال: لماذا تعمل هذا في الوورد ، لماذا لا تستعمل تقرير الاكسس ليقوم بالعمل كاملا ، واذا اردت النتيجة في ملف وورد ، فيمكنك التصدير لملف rtf. والذي يقرأه وورد !! اما الجواب على سؤالك: لماذا لا ينفتح الملف الثاني ، فكما كتبت انت ، لأن به ماكرو 🙂 جعفر
    1 point
  15. وعليكم السلام 🙂 سيدي الفاضل ، 1. الطريقة الصحيح في الاكسس ، هو عدم حفظ الحقل المحسوب في الجدول ، لأنه متغير وقد يتغير بعد حفظك له في الجدول ، بينما طريقة عرضة سهلة ، وهي ضرب حقل الكمية x السعر ، لذلك فالافضل هو ان تجعل الاستعلام مصدر لبيانات النموذج ، وفي الاستعلام تعمل حقل الاجمالي بضرب الحقلين الكمية x السعر ، 2. صحيح انك طلبت المجموع الكلي للشهر ، ولكن هل هناك معايير اخرى ، مثل: المجموع الاجمالي لنوع المصروفات (القهوة مثلا كما في الصورة اعلاه) ، او المجموع الاجمالي لاسم المورد (كما في الصورة اعلاه) ؟ جعفر
    1 point
  16. عندك محموعة اشياء يحتاج لها تعديل ، والقائمة ليست بترتيب الاولوية : 1. علشان اللون يظهر ، يجب ان تكون خلفية الحقول عادية وليست شفافة . 2. جميع الحقول عندك غير مُمكّنه ، فلا تستطيع ان تضع عليها التركيز ، فيجب ان تعملها مُمكّنه (هذا اذا اردت الاستفادة من تظليل السطر عند النقر على اي حقل ، وإلا فلا داعي لتغييره) . 3. في جميع الاكواد ، يجب استعمال حقل بياناته لا تتكرر ، بينما انت استعملت الحقل toDelete والذي بياناته متكررة ، وبعد النظر في الاستعلام مصدر بيانات النموذج ، اتضح بأنه لدية الحقل Auto_ID ، فوضعته في النموذج وجعلته مخفي ، واستعملته في الاكواد ، 4. عملت تغيير في اسم الحقل tmp_Ticket_No الى tmp_tmp 5. آخذا في الاعتبار جميع النقاط اعلاه ، تم تغيير الكود في التنسيق الشرطي والاكود باسماء الحقول الجديدة 🙂 جعفر DATA1041.zip
    1 point
  17. من عيونى يا باش مهندس شرح الاكواد بالوحدة النمطية تفصيلا اولا اسم الجدول ولانه سوف يتم استخدامه كثيرا ولاننى احببت تصعيب الامر قليلا استخدمت الـ Unicode Public Function tblUUID() tblUUID = Chrw("85") & Chrw("115") & Chrw("121") & Chrw("115") & Chrw("83") & Chrw("101") & Chrw("99") & Chrw("117") & Chrw("114") & Chrw("101") & Chrw("100") End Function فلو قمنا بقرائته فى نافذة immediate من خلال ?tblUUID() لتنتج لنا اسم الجدول UsysSecured كما فى الصورة الاتية 2- التأكد من وجود الجدول فى قاعدة البيانات من عدمه Public Function ifTableExists(tblName As String) As Boolean If DCount("[Name]", "MSysObjects", "[Name] = '" & tblName & "'") = 1 Then ifTableExists = True End Function 3- السطر الاول انشاء الجدول من خلال استعلام السطر الثانى تشغيل الـ Function الاتى ChckUUID ,وسيتم شرحه لاحقا Public Function CrtTblUUID() DoCmd.RunSQL "CREATE TABLE " & tblUUID & "([ID] counter," & "[UUIDPC] text," & "[ApprovedNo] text," & "CONSTRAINT [Index1] PRIMARY KEY ([ID]));" ChckUUID End Function 4- التأكد من وجود قيم فى الجدول Public Function CountRec() As Boolean If DCount("*", tblUUID) = 1 Then CountRec = True End Function 5-التأكد من صلاحية مقتاح التسجيل الذى ارسلته لكم عند التجربة من خلال استخدام عدد 2 Function - ToGetAprv - GetUUID() وسيأتى شرحهم تباعا Public Function ChkApprovedNo() As Boolean If DLookup("ApprovedNo", tblUUID) = ToGetAprv(GetUUID()) Then ChkApprovedNo = True End Function ملاحظة عند الشرح الان وحدتنى قمت بعمل function باسم اخر لنفس الوظيفة وسوف اقوم بحذفه اسم ال function هو Public Function validat() As Boolean اعتذر على ذلك الخطأ 6- هذا ال Function للخثول على معرف فريد للجهاز يدعى UUID وببساطه هو هو اختصار للمعرف الفريد العالمي ، وهو معرف فريد يتم إنشاؤه آليًا ضمن نطاق معين يتم إنشاؤها بواسطة خوارزمية معينة تحدد المواصفات والعناصر بما في ذلك عنوان MAC لبطاقة الشبكة والطابع الزمني ومساحة الاسم (Namespace) والرقم العشوائي أو العشوائي الزائف والتوقيت والعناصر الأخرى وخوارزمية إنشاء UUID من هذه العناصر تعني الخصائص المعقدة لـ UUID أنه لا يمكن إنشاؤها إلا عن طريق الكمبيوتر مع ضمان تفردها Public Function GetUUID() Dim strComputer As String Dim objWMIService, colItems, objItem strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colItems = objWMIService.ExecQuery("Select * from Win32_ComputerSystemProduct", , 48) For Each objItem In colItems GetUUID = objItem.UUID Next End Function 7- اغلاق جميع النماذج المفتوحة ما عدا نموذج FrmNotReg ولعدم تسهيل الامر على العابثين تم استخدام الـ unicode فى كتابة اسم النموذج Public Function DoCloseForms() Dim F As Access.Form Dim i As Long For i = Forms.Count - 1 To 0 Step -1 Set F = Forms(i) If F.Name <> _ Chrw("70") & Chrw("114") & Chrw("109") & Chrw("78") & Chrw("111") & Chrw("116") & Chrw("82") & Chrw("101") & Chrw("103") _ Then DoCmd.Close acForm, F.Name End If Next i End Function فى النقطة رقم 5 فى الشرح قلت سوف يأتى لاحقا شرح الـ 2 function الاتى ذكر اسمائهم - ToGetAprv - GetUUID() GetUUID -- تم شرحة فى النقطة رقم 6 الـ ToGetAprv هو function يتم تمرير قيمة GetUUID() الجهاز الحالى اليه ليقوم بتحويله الى unicode يعنى من ظهر لهم هذا الرقم الخاص بالنسخة فى نموذج التسجيل 46364331-3536-4638-3344-4232FFFFFFFF طبعا كما سبق هذا هو معرف الـ UUID وبعد ان يتم تمريره الى الـ function ToGetAprv ليتم تحويله الى unicode المفروض انه يظهر على الشطل التالى ولكن قمت ببعض التعديلات على الكود الذى يقوم بالتجويل الى الـ unicode بحيث يتم الابقاء على الارقام فقط من دون Chw("") & ولذلك كانت النتيجة كالاتى 525451545251514945515351544552545156455151525245525051507070707070707070 ولذلك فان ال Public Function ChkApprovedNo() As Boolean If DLookup("ApprovedNo", tblUUID) = ToGetAprv(GetUUID()) Then ChkApprovedNo = True End Function يقوم بالوصول الى الرقم ذلك وان كان يساوى الرقم الذى يتم عمل لصق له فى نموذج التسجيل يتم فتح النموذج الرئيسي 8- الكود الاخير لاخر روتين فى الموديول يقوم بعمل كل ماسبق يتأكد من وجود الجدول لو مش موجود ينشئ الجدول ولو الجدول موجود يتأكد من عدد السجلات لو 0 سجل يتم انشاء سجل ويضع به رقم UUID فى الحقل الخاص به ولو السجلات تساوى 1 يقوم بالتأكد من قيمة رقم UUID ان كان المكتوب فى الجدول = الخاص بهذا الجاز يكمل باقى الخطوات والا يوقم بعمل تحديث له للرقم فى الحقل داخل الجدول بما يساوى رقم رقم UUID للجهاز وبعد ذلك يتم تحويل الـ رقم UUID الى unicode مع االبقاء على الرقام فقط ويتأكد من تلك القيمة فى الحقل الخاص بها للتأكد فان كانت يتم فتح النموذج الرئيسي والا يعود الى نموذج التسجيل ولذلك هذا هو المستخدم فى الحدث عند الفتح ويمكن وضعه بنموذج البدء بسهولة من خلال اسمه ChckUUID , او Call ChckUUID بس خلاص Public Function ChckUUID() If ifTableExists(tblUUID) Then Else: CrtTblUUID If DLookup("UUIDPC", tblUUID) <> GetUUID Then DoCmd.SetWarnings False: DoCmd.RunSQL "UPDATE UsysSecured SET UsysSecured.UUIDPC = GetUUID();": DoCmd.SetWarnings True DoEvents If CountRec() Then If DLookup("UUIDPC", tblUUID) = GetUUID Then If ChkApprovedNo Then _ DoCmd.Close acForm, _ Chrw("70") & Chrw("114") & Chrw("109") & Chrw("78") & Chrw("111") & Chrw("116") & Chrw("82") & Chrw("101") & Chrw("103") _ : DoCmd.OpenForm Chrw("70") & Chrw("114") & Chrw("109") & Chrw("77") & Chrw("97") & Chrw("105") & Chrw("110"), , , , , acDialog _ Else: DoCloseForms: DoCmd.OpenForm Chrw( _ "70") & Chrw("114") & Chrw("109") & Chrw("78") & Chrw("111") & Chrw("116") & Chrw("82") & Chrw("101") & Chrw("103"), , , , , acDialog Exit Function End If Else DoCmd.SetWarnings False: DoCmd.RunSQL "INSERT INTO UsysSecured ( UUIDPC ) SELECT GetUUID() AS UUID;": DoCmd.SetWarnings True End If End Function بس ممكن بدل الذهاب الى نموذج التسجيل اغلاق القاعدة نهائيا لمن يريد وطبعا للوصول للحماية القصوى وضع كلمة مرور على محرر الاكواد وكلمة سر لتشفير قاعدة البيانات عند الفتح واغلاق الشيفت واخفاء الاطار وعمل قاعدة ريموت لتمرر كلمة المرور الى القاعدة الحالية عند فتحها وطبعا تلك القاعدة سوف يتم تحويلها الى accde وهذا ما سوف اطرحه لاحقا بس الان انا متعب ملاحظة تم تعديل المرفق الرئيسي بالتعديل الأخير الذى تم تدارك الاخطاء به وسوف يتم حذف كل المرفقات بالموضوع تخفيفا على سيرفر المنتدى اجمل الامانى بكده ينتهى موضوع العبث ويتم تأمين القاعدة بأقصى درجات الأمان لمن يريد
    1 point
  18. جرب هذه المعادلة في الاستعلام: d: Format(DateAdd("s",[Date_in],#01-01-1970#),"yyyy-mm-dd hh:nn:ss ampm") بس غيّر اسم الحقل من Date_in الى الاسم الحقيقي 🙂 جعفر
    1 point
  19. There are 52 names in your file not 50 names. It seems you forgot to put a sequence numbers for two students Try the following code Sub Test() Dim lr As Long, r As Long, m As Long Application.ScreenUpdating = False With Sheet1 lr = .Cells(Rows.Count, "B").End(xlUp).Row m = 3 For r = 3 To lr .Cells(m, 6).Value = .Cells(r, 2).Value .Cells(m, 7).Value = .Cells(r, 3).Value m = m + 3 Next r End With Application.ScreenUpdating = True End Sub
    1 point
  20. كيفية عمل مؤقت في بوربوينت 1. قم بتشغيل برنامج PowerPoint ، إذا لم تكن قد قمت بذلك بالفعل. انقر فوق "شريحة جديدة" في علامة التبويب الصفحة الرئيسية. 2. انقر فوق علامة التبويب "إدراج" واختر "مربع نص". انقر واسحب على الشريحة لرسم مربع النص. اكتب وقت البداية للعد التنازلي. على سبيل المثال ، إذا كنت تريد العد التنازلي لمدة دقيقة واحدة ، فاكتب "1:00" بدون علامات اقتباس في المربع. 3. اضبط إعدادات الخط والحجم والألوان. انقر فوق مربع النص ، ثم انقر فوق الحد المنقط حوله بحيث يصبح صلبًا. هذا يحدد مربع النص ككائن بأكمله حتى تتمكن من إجراء تغييرات التنسيق على المحتوى. انقر فوق علامة التبويب "Home" واختر الخط والحجم واللون من قسم "الخط". من الناحية المثالية يجب أن يكون الخط 30 نقطة على الأقل الخط ، وأكبر سيكون أفضل. 4. قم بتعيين لون تعبئة لمربع النص. انقر فوق "ملء الشكل" من قسم الرسم على الجانب الأيمن من علامة التبويب الصفحة الرئيسية. اختر لون تعبئة يتطابق مع خلفية الشريحة الخاصة بك. 5. اختر تأثير الحركة لجهازك المؤقت. انقر على علامة التبويب "صور متحركة" واختر أحد التأثيرات من قسم الرسوم المتحركة. اختر تأثيرًا خفيفًا مثل الظهور أو التلاشي. 6. انقر على القائمة المنسدلة في قسم التوقيت في علامة التبويب "الرسوم المتحركة" واضبط التأثير على "البدء بعد السابق". قم بتغيير التأخير إلى عدد الثواني التي تريدها بين إشعارات المؤقت الخاص بك. عشر ثوان هو مقدار جيد للاختيار لأنه سيكون عليك كتابة كل رقم يظهر على المؤقت. إذا اخترت فواصل زمنية تبلغ ثانية واحدة ، فستحتاج إلى إنشاء مربعات نص 60 يدويًا. 7. انقر لتحديد مربع النص الخاص بك مرة أخرى ثم اضغط على "Ctrl-C" على لوحة المفاتيح لنسخه. اضغط على "Ctrl-V" للصق نسخة. لاحظ أن النسخة ستظهر قليلاً إلى أسفل وإلى يمين النسخة الأصلية. 8. انقر على نسخة وتغيير الوقت ليكون أقل من النسخة الأصلية. إذا اخترت 10 ثوانٍ لتأخير الرسوم المتحركة ، فقم بخفض الرقم بمقدار 10 ثوانٍ. 9. اضغط على "Ctrl-V" للصق مربع نص آخر وقم بتغيير الوقت إلى الفاصل الزمني التالي لأسفل. كرر ذلك حتى تصل إلى الصفر. 10. اضغط على "Ctrl-A" لتحديد جميع مربعات النص على الشريحة. انقر فوق علامة التبويب "تنسيق" على يمين شريط Microsoft Office. انقر فوق "محاذاة" واختر "الأوسط". انقر على "محاذاة" مرة أخرى واختر "مركز". الآن يتم تكديس كل مربعات النص فوق بعضها البعض في منتصف المنتصف من الشريحة. عند بدء تشغيل الشريحة ، سيتم تغييرها عند التأخير الذي قمت بتعيينه ، مع العد إلى الصفر.
    1 point
×
×
  • اضف...

Important Information