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

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

  1. متقاعد

    متقاعد

    الخبراء


    • نقاط

      6

    • Posts

      583


  2. حسين مامون

    حسين مامون

    الخبراء


    • نقاط

      6

    • Posts

      1,284


  3. أ / محمد صالح

    أ / محمد صالح

    أوفيسنا


    • نقاط

      6

    • Posts

      4,431


  4. Moosak

    Moosak

    أوفيسنا


    • نقاط

      5

    • Posts

      1,997


Popular Content

Showing content with the highest reputation on 15 يون, 2022 in all areas

  1. تفضل أخي أبو حودة 🙂 يتم تصفية الإخوة فقط بعدما تختار أحد نتائج البحث .. تجارب.accdb
    3 points
  2. السلام عليكم ورحمة الله ربما تقصد هذا التوزيع على الجان.xlsx
    3 points
  3. السلام عليكم ورحمة الله تفضل جرب المرفق ورد ملاحظة: يجب حذف الخلايا المدمجة التعديل المطلوب.xlsm
    3 points
  4. محمد رسول الله فى كتاب يفتح بالباوربوينت
    2 points
  5. السلام عليكم ورحمة الله تعالى وبركاته يسأل البعض عن عدم حفظ البيانات الإ بإستكمال الحقول المطلوبة يمكن ذلك من خلال الفكرة الاتية ولكن بشرط اسم العنصر المطلوب ( الاجبارى) يجب وضع الرمز * فى الـ Tag الخاصة به كما بالصورة الاتية لاننى وضعت الاكواد فى الموديول تعتمد عليها والان الاكواد داخل الموديول 'RequiredData Function RequiredData(ByVal frm As Form) On Error Resume Next Dim ctl As Control Dim err As Integer For Each ctl In frm.Controls Select Case ctl.ControlType Case acTextBox, acComboBox, acListBox, acCheckBox, acOptionButton, acOptionGroup: 'If ctl.StatusBarText = "*" Then If ctl.Tag = "*" Then If IsNull(ctl) Or ctl = "" Or ctl = Null Then ctl.BackColor = 15531489 ctl.SetFocus err = err + 1: MsgBox "Please fill in the " & ctl.Controls(0).Caption: Exit Function Exit For Exit Function Else ctl.BackColor = 16777215 End If End If End Select Set ctl = Nothing Next ctl End Function ويتم استدعاء الكود من خلال Call RequiredData(Me) اترككم مع الاستمتاع بالتجربـة وفى انتظار ارائكم Required data (2).mdb
    2 points
  6. السلام عليكم مشاركه مع اخى واستاذى @Moosak جزاه الله عنا كل خير 💐 جرب المرفق اخى @أبو حوده واخبرنا بالنتيجه Private Sub أمر317_Click() x = DLookup("id_father", "Tbl_Son", "N_id_son=" & Me.Text3) Debug.Print x Me.List3.RowSource = "SELECT Tbl_Main.id, Tbl_Son.son, Tbl_Son.N_id_son, Tbl_Son.Date_B " & _ "FROM Tbl_Main INNER JOIN Tbl_Son ON Tbl_Main.id = Tbl_Son.id_father " & _ "WHERE Tbl_Main.id=" & x Me.List3.Requery End Sub بالتوفيق تجارب(1).accdb
    2 points
  7. اليك هذا عند اختيار الصنف يتم الاستعلام عن الصنف المختار وعند اختيار المقاس يستعلم عن المقاس والنتيجة تظهر الماركة و السعر و الكادر و مواصفات ولكن لازم تختار الصنف اولا ...ومرة اخرى الخلايا المدمجة لازم تحدفها ...تحياتي التعديل المطلوب (1).xlsm
    2 points
  8. يمكنك استعمال هذه المعادلة في المكان الذي تريد ظهور قائمة التليفونات بها =IFERROR(INDEX($B:$B,SMALL(IF(($E:$E="السبت")*($D:$D=""),ROW($E:$E)),ROW()-2)),"") مع سحب المعادلة لأسفل للحصول على باقي الأرقام بالتوفيق
    2 points
  9. جرب الان واعتذر لعدم تمكني من المراجعة حيث تم التعديل بشكل عاجل تحياتي إدارة المشاريع.accdb
    2 points
  10. وعليكم السلام ورحمة الله اخي لابد من شرط اذ تحقق يتم الترحيل دون فراغ 1:مثلاً اذا كان عمود T.... يوجد به كلمة Fluffy ..... يتم ترحيل ما يقابلها ...واذا كانت فارغة يتم اخفاء ما يقابلها ..هل تقصد هكذا اما ماذا تريد ..تفضل Sub fluffy() ' ' fluffy Macro ' Application.ScreenUpdating = False Range("T3:T700").AutoFilter Field:=1, Criteria1:="<>" Application.CutCopyMode = False Application.CutCopyMode = False Application.CutCopyMode = False Application.CutCopyMode = False Sheets("Sheet1").Range("T3:AA1000").AdvancedFilter Action:=xlFilterCopy, _ CriteriaRange:=Range("Sheet2!Criteria"), CopyToRange:=Range("BI4:BP4"), _ Unique:=False Range("T3:T700").AutoFilter Application.ScreenUpdating = True End Sub
    2 points
  11. عليكم السلام ورحمة الله وبركاته الأمر hide يستعمل في إخفاء النموذج فقط وليس إغلاقه كاملا وهذا يعني إمكاية استعمال جميع المتغيرات والكائنات المستعملة في النموذج الأمر unload يستعمل في إعلاف النموذج كاملا فلا يمكن استعمال أي من متغيراته أو كائناته ويمكن استعمال الأمرين من داخل النموذج me.hide unload me أو من خارجه userform1.hide unload userform1 أما end فلا علاقة لها بالنموذج وإغلاقه فهي تستعمل للتعبير عن نهاية بعض الأوامر مثل End [Function | Sub | With | Select | Type | Enum | If ] أما exit فتستعمل للخروج من بعض الأوامر مثل Exit [ Do | For | Function | Select | Sub ] بالتوفيق
    2 points
  12. وهذا نفس كودك مع تصريف بسيط ...... frm.Section(acHeader).BackColor = GetSetting("FormColor", "ColorOption", "HeaderColor", 12874308) frm.Section(acDetail).BackColor = GetSetting("FormColor", "ColorOption", "DetailColor", 16769023) frm.Section(acFooter).BackColor = GetSetting("FormColor", "ColorOption", "FooterColor", 12874308)
    2 points
  13. صحيح اخي لذا انا ذكرت انه استخدام غير مالوف ولم اكتب انه استخدام خاطئ تحياتي وتقديري لك
    1 point
  14. شكرا على مرورك وملاحظتك القيمة وقد وقع بعض المستخدمين في هذا المشكل الذي نبهت له أنت في تدخلك وهو أن تجلب لك عملية البحث الصنف غير المطلوب رغم ان حقل البحث كان مخصص فقط لقارئ الباركود والذي يكتب الباركود كاملا مرة واحدة أما البحث اليدوي فلا ينفع وغير دقيق شكرا على تنبيهك وملاحظتك القيمة
    1 point
  15. اسم التقرير مكتوب خطأ تأكد من كتابته بشكل صحيح 🙂
    1 point
  16. استبدل هذا الجزء .... Vl = InputBox("ادخل التاريخ") بهذا الجزء ...... Vl = Forms!test1!tx4
    1 point
  17. جرب المرفق انقر زر بحث في شيت بحث ..ملاحظة تم تحويل ملفك الى امتداد xlsm التعديل المطلوب (1).xlsm
    1 point
  18. وعليكم السلام ورحمة الله وبركاته 🙂 حياك الله أخي العزيز .. نعم حصلت معي كذلك .. والحل موجود في هذا الفيديو وقد انحلت المشكلة معي ولله الحمد ..
    1 point
  19. تفضل أخي الكريم اليك التعديل الكامل بالتوفيق DBS-1.accdb
    1 point
  20. احسنت استاذنا الفاضل لذا انا وضعت الكود كاملا واشرت الى فتح التقرير طبعا مخفي او غير مخفي ماتفرق بالتوفيق استاذ محمد
    1 point
  21. اضافة لما ذكر اخي @مبرمج سابق هذا الامر العام .... DoCmd.PrintOut printrange,pagefrom,pageto,printquality,copies,collate
    1 point
  22. افكر بطريقة لا اعلم ان كانت صحيحة ام لا .. لدينا جدول موظفين وجدول اقسام ..والاخير مربوط بالاول بمعرف اسم القسم في بداية التكويد للموظفين ...نقوم بكتابة اسم الموظف ثم نختار اسم القسم من مربع تحرير (الذي يظهر لنا اسم القسم ).. وعند حفظ المعلومات يتم الحاقها بجدول اخر بنفس التاريخ وحين ندخل على صفحة ذلك الموظف يظهر لنا قسمه الذي اخترناه اول مرة ...وعند تغيير القسم والحفظ ...يتم الحاق تلك المعلومات الى الجدول الثاني بتاريخ اخر لاننا سنحتاجها عند عمل تقرير ومواقع عمل ذلك الموظف ولانحتاج لرسالة تنبيه ...لان صفحة الموظف حين فتحها ستظهر لنا اخر قسم عمل فيه دة اقتراحي في القضية ☺️
    1 point
  23. تفضل <<<<<<< Public Sub colorSet(frm As Form) With frm.Form .Section(acHeader).BackColor = 12874308 .Section(acDetail).BackColor = 16769023 .Section(acFooter).BackColor = 12874308 End With End Sub
    1 point
  24. ممكن باكثر من طريقة وساشرح طريقة بسيطة في مصدر القائمة نقوم باضافة حقل يجمع الكود واسم المادة [الكود]&" "&[اسم المادة] لنقوم بالفلترة من خلال هذا الحقل ولكن هناك بعض الخطوات في خصائص القائمة تبويب بيانات توسع تلقائي = لا تبويب تنسيق عدد الاعمدة = 3 عرض الاعمدة = 0سم;2سم;3سم الان في حدث عند مفتاح اعلى نضع الكود التالي If Len(co2.Text) > 0 Then Me.co2.RowSource = " SELECT [id] & "" "" & [item] AS Expr1, tbl_it.id, tbl_it.item, tbl_it.price " & _ " FROM tbl_it " & _ " WHERE ((([id] & "" "" & [item]) Like ""*"" & [Forms]![frm_3]![co2].[Text] & ""*""));" Me.co2.Dropdown Else Me.co2.RowSource = " SELECT [id] & "" "" & [item] AS Expr1, tbl_it.id, tbl_it.item, tbl_it.price " & _ " FROM tbl_it;" [tx2] = Null: [tx4] = Null End If co2 هي القائمة المنسدلة tx2 و tx4 هي الحقول التي سيتم اضهار الصنفى وسعر الصنف بها ثم في حدث بعد التحديث للقائمة نضع الامر Me.tx2 = Me.co2.Column(2) Me.tx4 = Me.co2.Column(3) بالتاكيد توجد طرق اكثر ولكن ساكتفي بهذه الطريقة اخيرا انا لا فضل استخدام مربعات التحرير والسرد ودائما استخدم مربع نص غير منضم يتم ادخال رقم الصنف به وفي حالة عدم معرفة رقم الصنف نضع رقم صفر ليفتح لنا نموذج اختيار الاصناف جاهزة للفلترة برقم او اسم الصنف وهذه الطريقة اسرع في ادخال البيانات ولا نحتاج لاستخدام الماوس في الصورة المتحركة في المثال ⬇️ يوجد خطا حيث وضعنا اسم الصنف في حقل السعر والسعر في حقل الصنف لاني عملت المثال وصورتة وانا مشغول بعمل اخر ولم اراجعة تحياتي
    1 point
  25. عليكم البسلام ورحمة الله وبركاته يمكنك وضع استدعاء الإجراء الآخر حسب ترتيب التنفيذ المطلوب قبل أو بعد هذا السطر Call macro1 بالتوفيق
    1 point
  26. الطريقة الاسهل في حدث في الحالي للنموذج ضع الامر التالي Dim intnewrec As Integer intnewrec = Form.NewRecord If intnewrec = 0 Then Me.AllowEdits = False Else Me.AllowEdits = True End If تحياتي
    1 point
  27. موضوع جميل . طيب بما انى اول مرة اقرأ الموضوع لما وضحت ان الرقم المعرف ده بيتكون من مجموعة من العناصر الفريدة ومن ضمنها Mac Address على حسب فهمى . . طيب ماذا اذا قام المستخدم بتغيير الماك ادرس الخاص بالجهاز ؟ واردة تحصل فى حالة حظر الماك ادرس ومنعك من الدخول الى شبكة ما .. فى الحالة دى هل عملية التحقق اللى بتتم عند فتح النموذج هتلاحظ الفرق فى الجزء الخاص بالماك ادرس وتفتح نموذج التفعيل ؟ ولا انا فاهم غلط ؟ طيب ماذا بخصوص تنزيل نسخة جديدة للجهاز هل هتفرق فى حاجة ؟ .. اعذرنى انا قرأت كتير فى المواضيع دى ولكن لم اصادف هذا الرقم من قبل . مجهود تشكر عليه @ابو جودي
    1 point
  28. جزاك الله خير استاذنا اشرف سعيد السويسي ده المطلوب بارك الله في استاذنا محمد يوسف اتعبتك معي في توصيل المعلومة
    1 point
  29. ملف جميل جدا بارك الله فيك وفى عملك وتعبك وذادك الله من فضله
    1 point
  30. موضوع قيم بارك الله فيك وزادك الله من فضله Showbox jiofi.local.html tplinklogin
    1 point
  31. بعد ان الاستاذ ابراهيم وزيادة فى الخير تفضل الشيت لعله يفى بالغرض أفواج العطلة.xlsm
    1 point
  32. السلام عليكم ورحمة الله اليك الملف بعد التعديل بدلا من ذكر المعادلة فقط لادراجها بنفسك لاحتمال صعوبة تعاملك مع المعادلة المستخدمة و متغيراتها أفواج العطلة.xlsx
    1 point
  33. حسب فهمي للمطلوب تم تنفيذ المعادلة على العمود الأول E وإذا أردت تطبيقها على العمود التالي يمكنك تغيير الخلية $E$1 في المعادلة الموجودة في الصف الثاني بالتوفيق mas tableau.xlsx
    1 point
  34. من عيونى يا باش مهندس شرح الاكواد بالوحدة النمطية تفصيلا اولا اسم الجدول ولانه سوف يتم استخدامه كثيرا ولاننى احببت تصعيب الامر قليلا استخدمت الـ 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
  35. معلش يا باش مهندس موضوع الصلاحيات متشعب والتعديل عليه مش بيكون ببساطه وعلشان الاسئله عنه كثيرة كنت حابب نتشارك الافكار ونتطبق عملى خطوة بعد خطوة اولا علشان الموضوع يتفهم ثانيا علشان كل واحد يكون على درايه ايه اللى حصل علشان اللى حابب يعدل ويطوره مستقبلا
    1 point
  36. كي نفعل ذلك يجب ان نحتال على اكسل اليك هذه الحيلة: 1-قبل عملية النسخ قم باستبدال علامة"=" قي كل الورقة بأي شي اخر مثلاً "##^^" و ذلك من خلال الضغط على Ctrl+H والقيام يعملية الاستبدال Replace All بذلك تتعطل كل المعادلات في الورقة ( حيث لا يوجد "=" لتنفيذ المعادلة) 2-قم بنسخ الورقة الى المكان المطلوب 3- قم باستبدال "##^^" يعلامة "=" في الورقتين المصدر و الهدف
    1 point
×
×
  • اضف...

Important Information