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

Foksh

الخبراء
  • Posts

    4821
  • تاريخ الانضمام

  • تاريخ اخر زياره

  • Days Won

    220

كل منشورات العضو Foksh

  1. شكراً لك اخي منتصر على هذه الإلتفاته .. فعلاً فاتتني تماماً ولم اتيقن لها . بسيطة هذه مهندسنا الغالي .. سيتم العمل على تصحيح النقاط التي تم طرحها وملاحظتها .. هذه النقطة خطرت ببالي ، ولكني تجاهلتها وتركتها مفتوحة بحرية للمستخدم دون قيود . أشكرك من كل قلبي على هذه الإضافة الجميلة .. ولو تعلم أنني بحثت عن نسخة أوفيس 2003 ISO كي أقوم بتثبيته على جهازي الآخر وأقوم بفحص الأخطاء التي يمكن أن تأتي مع فرض الإصدارات البسيط .
  2. برأيي أن تجعل النموذج الحالي في الملف المرفق هو أول نموذج يعمل لديك لأنه لا يعتمد على أي جدول كمصدر بيانات . مع تعديل اسم النموذج لما لديك في الحدث ليصبح :- Private Sub Form_Load() On Error Resume Next If CheckLinks("") = False Then Call Quit End If Dim tdfs As DAO.TableDefs Dim tdf As TableDef Dim sSourceDB As String Dim sBackupDB As String Dim backDBName As String Set tdfs = CurrentDb.TableDefs Set tdf = tdfs(tdfs.count - 1) sSourceDB = Right(tdf.Connect, Len(tdf.Connect) - 10) backDBName = Dir(Mid(tdf.Connect, 11)) sBackupDB = Mid(tdf.Connect, 11, Len(tdf.Connect) - (Len(backDBName) + 10)) ' DoCmd.OpenForm "frmLogin", acNormal DoCmd.Close acForm, Me.Name End Sub بحيث ، عندما يتم فتج قاعدة لبيانات ، سيتم التأكد من ربط جميع الجداول بالمسار الحالي أو اختيار ملف قاعدة بيانات الجداول لأول مرة . وبعد التحقق من صحة الربط سيعمل لديك النموذج الخاص بتسجيل الدخول .
  3. تجربتي على إصدارين مختلفين أعلى من 2003 ، وأما بخصوص الإصدار 2003 فليس لدي هذا الإصدار للأسف كي أقوم بتجربته .
  4. اهااااا ، الآن توضحت لي الأمور ، بعد أن قمت بجعل أسماء الجداول = جداول نظام غير ظاهرة ، يبدو أنني لم أتحقق من مصدر صف الليست بوكس List_Objects في النموذج FrmAssignMenu . لذا أرجو تعديل ما يلي في النموذج :- حذف الاستعلام مصدر الصف لليست بوكس هذا . تغيير قيمة نوع مصدر الصف من Table/Query لتصبح Value List . استخدم الحدث التالي عند التحميل للنموذج هذا :- Private Sub Form_Load() Dim rs As DAO.Recordset Dim strSQL As String strSQL = "SELECT Name, IIf(Type=-32768,'نموذج','تقرير') AS ObjType " & _ "FROM MSysObjects " & _ "WHERE Type In (-32768,-32764) AND Left(Name,1)<>'~' " & _ "AND Name Not In ('FrmMain', 'FrmAssignMenu') " & _ "ORDER BY Type, Name;" Set rs = CurrentDb.OpenRecordset(strSQL) Me.List_Objects.RowSourceType = "Table/Query" Set Me.List_Objects.Recordset = rs Set rs = Nothing End Sub وسيتم تحديث ملف المشروع في المشاركة التي تم نشره فيها بعد التصحيح . شكراً لك لتنبيهك لهذه النقطة أخي أحمد الآن جرب النتيجة وأخبرني هل عملت معك أم لا !!!
  5. جملة استعلام الليست بوكس التي تعرض أسماء النماذج والتقارير في الإصدار 2003 ، قد تكون هي السبب بعدم عرض أسماء نماذجك وتقاريرك في قاعدة بياناتك. لم أتعامل مع آكسيس 2003 منذ أكثر من 18 عاماً .
  6. فيديو توضيحي لميزة الـ Add-in ، وكيفية إضافة الأداة إلى آكسيس ودمجها في الواجهة .
  7. وما أوتينا من العلم إلا قليلا .. الحمد لله على نعمه التي أنعمها علينا وعليكم مما علمنا . ونسأل الله أن تكون علماً ينتفع به وشفيعاً لنا 😇
  8. 1️⃣ إضافة زر لمعاينة القائمة التي تم انشائها ، بدلاً من الدخول إلى تقرير أو نموذج وتعيينها وتجربتها . 2️⃣ إضافة فكرة القوائم الفرعية . بحيث يكون زر داخل القائمة الرئيسية يتفرع منه قائمة فرعية أخرى ... وهكذا . 3️⃣ إضافة مميزة بحفظ القائمة كـ VBA داخل ملف نصي يتم حفظه على سطح المكتب . بحيث يمكنك من نسخه وتشغيله مرة واحدة فقط في مشروعك لإنشاء القائمة المختصرة التي انشأتها من خلال الأداة ، أو استوردتها من قاعدة أخرى 😉 . 4️⃣ إضافة زر لتعيين/إزالة قائمة مختصرة لعدد من النماذج أو التقارير مرة واحدة ، دون الحاجة لتعيينها واختيارها يدوياً لكل نموذج أو تقرير . 5️⃣ إضافة ميزة مسح جميع القوائم المختصرة من جميع كائنات ( نماذج وتقارير ) قاعدة البيانات الحالية . وليس بتحديد كائنات محددة كما في النقطة4️⃣ . 6️⃣ إضافة الميزة الذهبية الجديدة وهي دمج الأداة إلى إضافات آكسيس وكأنها جزء منه وتجدها داخل الإضافات - Addin . كما في الصورة الموضحة :- 7️⃣ إضافة زر لإزالة الأداة من الـ Addin بشكل كامل ونهائي . 📸 واجهة الأداة بعد التحديث :- كل هذه الميزات وأكثر في المرفق التالي للنسخة المحدّثة :- Menu Builder.zip ( تم تحديث المرفق بعد ملاحظة خطأ بسيط في نموذج عرض التقارير والنماذج الموجودة في قاعدة البيانات ) . والشكر موصول لأخي @أحمد العيسى على هذه الملاحظة . فيديو توضيحي لطريقة استخدام القوائم الفرعية :-
  9. نعم أخي أحمد ، انا طرحت 3 نقاط من الإضافات ، وأبقيت الباقي كمفاجأة فعلاً.. فما خفي أعظم 🤗. أهلاً وسهلاً معلمنا الفاضل أبو خليل ، تمت إضافتها ، وجاري إضافة فكرة ستعجبك ، وهي جعل الأداة كـ Addin في آكسيس 😉 .
  10. ...|• تحديث جديد بإضافات ممتعة ، قريباً •|... 1. معاينة القائمة المختصرة داخل النموذج . يعني ما في داعي بعد إنشائها ان تحددها داخل تقرير او نموذج. 2. دعم للقوائم الفرعية بأكثر من مستوى. يعني ممكن إضافة زر رئيسي باسم تقارير ، وبداخله زر بإسم صفحات وزر تصدير ... إلخ ؛ وهذا زر الصفحات يحتوي 3 أوامر . وزر التصدير يحتوي أوامر مختلفة ... إلخ . 3. إضافة ميزة تصدير القائمة المختصرة ككود VBA ( وحفظه في ملف نصي على سطح المكتب ) ، واستخدامه في أي قاعدة بيانات لإنشاء القائمة من خلال الكود دون الحاجة لنسخ أدوات الأداة الى مشروعك ، او استخدام التصدير مثلاً 😁
  11. أهلاً أخي جعفر سرني مرورك وإعجابك .. وأتمنى أن تكون الفكرة في الأداة مساعدة بوظيفتها التي صممت لها 💐
  12. أهلا بأخي العزيز .. أسعدني مرورك .. ونسأل الله أن ينفعنا بعلمنا وإياكم أخي ناقل ، أهلاً بمرورك العطر .. نتمنى أن تكون فعلاً أداة مفيدة ننتفع منها بصالح دعائكم لنا أخي ابو البشر ،، تقبّلك الله بصالح أعمالك .. شكراً لمرورك
  13. شكراً لك أخي منتصر .. مروركم هو الأروع . وهذا بعض ما عندكم صدقني .. شكراً لك على مرورك أخي أبو الحسن قليل مما عندكم أخي محمد .. شكراً لمرورك العطر مهندسنا الغالي .. بانتظار تجربتك أولاً والنتيجة ، وسلاسة الاستخدام ... إلخ .
  14. مشاركتي في هذا الموضوع الجديد ، وأرجو أن ينال الإعجاب ..
  15. أخواني وأساتذتي ومعلمينا ( دون استثناء ) .. الكثير من المواضيع التي ناقشت موضوع التحكم بالقوائم المختصرة داخل التقارير أو النماذج .. وكان للكثيرين من الأساتذة والخبراء والموهوبين أفكار جميلة جداً حول كيف تصنع قائمة مختصرة عند النقر على الزر الأيمن داخل نموذج أو تقرير . ومن هنا اليوم أضع بين أيديكم أداة تقوم بهذه المهمة بشكل سحري . 1️⃣ القدرة على إنشاء قوائم مختصرة دون أن تكتب أي أمر برمجي أو حتى البحث عن الخيارات داخل آكسيس لإضافة قائمة مختصرة .... إلخ . 2️⃣ القدرة على استيراد قوائم مختصرة من قاعدة بيانات أخرى إلى قاعدة بياتك الحالية من خلال الأداة . 3️⃣ القدرة على تصدير قوائم مختصرة إلى قواعد بيانات أخرى . 4️⃣ التحكم بالترتيب للأوامر داخل القوائم بحرية وسهولة ، وإتاحة إمكانية تسمية الأوامر كما تحب . 5️⃣ إتاحة إمكانية إعادة تسمية قائمة مختصرة موجودة مسبقاً . 6️⃣ التحكم بحذف قوائم معينة لا تريدها من خلال زر واحد . 7️⃣ إتاحة الفرصة لإضافة أوامر خاصة من خارج آكسيس ، أو ماكرو . أي أنك تستطيع استدعاء دوال عامة من مشروعة داخل زر في القوائم التي تصنعها . والكثير من الميزات التي يجب عليك اكتشافها بنفسك . 📸 واجهة الأداة المتواضعة :- فيديو توضيحي لطريقة الاستخدام بشكل سريع .. ملف الأداة مفتوح المصدر ، للتحميل :- Menu Builder.zip لمعرفة وظيفة كل زر ، فقط قف على الزر وستظهر لك الوظيفة المخصصة له .
  16. وإياكم يا صديقي ، ولكن انت تعتقد ما لم تقم بتوضيحه وشرحه . اشرح النتيجة التي تريدها حتى استوعب الخلل 🤗
  17. كان لدي هذه الفكرة القديمة ولم اتابعها للأسف ، ولكن سؤالك هذا عدت لها وقمت ببعض التعديلات وتحديثها حتى أصبحت بالشكل التالي .. وسأقوم بإذن الله بإضافتها كموضوع مستقل خلال اليوم إن شاء الله
  18. وعليكم السلام ورحمة الله وبركاته .. هذه فكرة بسيطة للورقة الثانية في الخلية D4 ( المطلب الأول ) ، جربه :- Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$D$4" Then Dim cell As Range, n As Long Range("B6:B35, D6:D35").ClearContents If IsDate(Target.Value) And Target.Value <> "" Then For Each cell In Sheets("بيانات العاملين").Range("B2:B" & Sheets("بيانات العاملين").Cells(Rows.Count, "B").End(xlUp).Row) If cell.Value = Target.Value Then n = n + 1 Cells(6 + ((n - 1) Mod 30), 2 + ((n - 1) \ 30) * 2).Value = cell.Offset(0, 1).Value If n = 60 Then Exit For End If Next cell End If End If End Sub المطلب الثاني في الورقة الثالثة ، جرب استعمال الفكرة التالية بحيث لتحديد العدد جعلت الخلية G4 لتحديد العدد بدلاً من 5 والتقيد به . وبالتالي اذا لم تحدد قيمة في G4 سيكون الافتراضي = 5 أسماء ، والكود كالتالي في الورقة الثالثة :- Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("F4:G4")) Is Nothing Then Dim cell As Range, n As Long, limit As Long Dim status As String Range("C7:C" & Rows.Count).ClearContents status = Range("F4").Value If status = "ناجح" Or status = "راسب" Then limit = IIf(Val(Range("G4").Value) <= 0, 5, Val(Range("G4").Value)) For Each cell In Sheets("بيانات العاملين").Range("E2:E" & Sheets("بيانات العاملين").Cells(Rows.Count, "E").End(xlUp).Row) If cell.Value = status Then n = n + 1 Cells(6 + n, "C").Value = Sheets("بيانات العاملين").Cells(cell.Row, "C").Value If n = limit Then Exit For End If Next cell End If End If End Sub لاحظ أنني قمت بإضافة احتمال آخر = راسب من باب التوسعة في خيارات البحث بالنتيجة اللجنة.xlsm
  19. كمحاولة لتنفيذ المطلوب ، بحيث يتم البحث من خلال رقم الطالب ، أو من خلال اسم الكتاب أو نت خلال البحث بين تاريخين .. استعملت الاستعلام التالي :- SELECT st_mstr.st_no, st_mstr.st_name, st_mstr.Curr_Grp, st_trns.crs_cd1, st_mstr.Id_No, st_mstr.Tele_No, books.book_desc, "C:\BookImages\" & [st_trns].[crs_cd1] & ".jpg" AS BookImagePath, st_trns.chkSelect, st_trns.ReturnDate, st_trns.Status, st_trns.BookCondition FROM books INNER JOIN (st_mstr INNER JOIN st_trns ON st_mstr.st_no = st_trns.st_no) ON books.crs_cd1 = st_trns.crs_cd1 WHERE (st_mstr.st_no = [Forms]![Search]![T1] OR [Forms]![Search]![T1] Is Null OR [Forms]![Search]![T1] = "") AND (books.book_desc = [Forms]![Search]![T2] OR [Forms]![Search]![T2] Is Null OR [Forms]![Search]![T2] = "") AND (st_trns.ReturnDate >= [Forms]![Search]![DFrom] OR [Forms]![Search]![DFrom] Is Null OR [Forms]![Search]![DFrom] = "") AND (st_trns.ReturnDate <= [Forms]![Search]![DTo] OR [Forms]![Search]![DTo] Is Null OR [Forms]![Search]![DTo] = ""); returnbooks.zip
  20. ما هي المشكلة بالضبط !!!
  21. عمل جميل ومتقن ، وبديل عن شريط أدوات التقارير بفكرته الأولى 💐
  22. وعليكم السلام ورحمة الله وبركاته .. هذه مساهمة بسيطة كبداية . استكمل باقي العمل حتى تشعر بمتعة العمل 😊 . St.Sys.accdb
  23. طلبك الأول ، شرحه موجود في الموضوع التالي :- طلبك الثاني شرحه فيما يلي ..
×
×
  • اضف...

Important Information