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

Foksh

الخبراء
  • Posts

    2,149
  • تاريخ الانضمام

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

  • Days Won

    78

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

  1. وعليكم السلام ورحمة الله وبركاته ،، أخي الكريم @Hazem Hussien ، ولأنك جديد معنا في أسرتنا الكبيرة ؛ أود لفت انتباهك إلى بعض النقاط الهامة كي لا يتم اغلاق موضوعك بسبب مخالفته لقوانين المنتدى . 1. أن يكون العنوان له دلالة على محتوى الموضوع 2. الشرح المفصل للطلب أو المشكلة التي تريد حلها .
  2. مشاركةً مع أستاذي ومعلمي الجليل عجبتني فكرة الكود العجيب الذي طرحه معلمي الفاضل @ابوخليل ، لدرجة إنه جعلني اتمعن في آليته .. فوجدت أنه يقوم بإغلاق المجلد الذي تم فتحه أولاً .!!. بمعنى آخر أنه لو فتحت أولاً مجلد على سطح المكتب اسمه "الحلبي" على سبيل المثال ويحتوي صور وملفات لا علاقة لها بآكسيس ، ثم فتحت المجلد الذي اسمه "اخفاء الفولدر" الذي يحتوي قاعدة البيانات التي بها الكود ، فإن الكود سيقوم بإغلاق المجلد "الحلبي" لأنه مفتوح أولاً . فتطرقت لتعديل الفكرة بحيث يتم اغلاق مسار محدد وهو مسار المجلد التي به قاعدة البيانات الحالية فقط ، ولا يتم اغلاق اي مجلدات أخرى :- نقوم أولاً بإنشاء الدالة التالية :- Sub CloserWindow(targetPath As String) Dim shellApp As Object Dim window As Object Dim folderPath As String Set shellApp = CreateObject("Shell.Application") For Each window In shellApp.Windows If InStr(1, window.FullName, "explorer.exe", vbTextCompare) > 0 Then On Error Resume Next folderPath = window.Document.Folder.Self.Path On Error GoTo 0 If folderPath = targetPath Then window.Quit End If End If Next window Set shellApp = Nothing End Sub ثم نستدعي الدالة من أي مكان وأي وظيفة كالآتي :- Dim targetPath As String targetPath = CurrentProject.Path CloserWindow targetPath حيث هنا تم تحديد المسار الذي نريد اغلاقه بشكل مباشر .
  3. سأقدم لك نصيحة أخوية أخي مازن ,, في العلاقات أحاول جاهداً جعل الحقول المفتاحية أو صاحبة الربط والعلاقات هي دائماً الحقول الرقمية ، لأنها أسها في الاستعلامات والأكواد وأخف في التعامل لتلافي الأخطاء اللغوية . سألقي نظرة ، ولكن تحملني حتى اجد وقتي ولكن ليس هذا اليوم
  4. أخي مازن اذا خبرتك في أكسيس قيد التطوير فلا مانع من السؤال دعني اقرب لك الصورة التي شرحتها انت في مثال بسيط .. على سبيل المثال انه عندك دفتر وتريد كتابة ملاحظة جديدة ، هل تفتح الدفتر على آخر أو أول صفحة فيها بيانات وملاحظات وتبدأ تحذف المكتوب واستبدال القديم ، أم تقوم أولاً بالذهاب الى صفحة جديدة ؟؟؟؟؟؟؟؟؟؟؟؟ إذا من السليم أن تجعل النموذج يذهب الى سجل جديد عند فتحه . تعقيباً على ما طرحه الأستاذ المشاكس @ابو جودي :- الأصل أن يكون الأساس ( الجداول ) ذات بنية سليمة كما تفضل سابقاً باشمهندس محمد . الخطأ اللي كان عندك ( لو أدنا استكمال تصميمك ) هو انك تحتار المنصب من الجدول الذي تحفظ فيه السجلات والتي من بينها حقل المنصب !!!!!!!!!! وهنا كانت فكرة جدول Tbl_Manaseb ليكون للمناصب جدول مستقل تقدر تعدل عليه بنموذج مستقل . وإت جئت لعين الصواب فالملف يحتاج إعادة تأهيل وبناء سليمين
  5. وعليكم السلام ورحمة الله وبركاته ,, هذا النمط من الجمل الشرطية يسمى توابع الجملة الشرطية المتداخلة . وفي حالتك تريد التحقق من شرطي مقارنة مختلفين وإرجاع قيمة معينة إذا تحقق أحدهما. IIf([ASNAF.UNIT]=[SAP.UNIT], "YYY", IIf([ASNAF.UNIT]=[SAP.[ADDITION UNIT]], "YYY", "NNN")) جرب وأخبرني بالنتيجة
  6. وعليكم السلام ورحمة الله وبركاته ، أرجو منك الإلتزام بقوانين المنتدى كي تحصل على النتيجة التي تريدها دون عنا و وقت طويل , أرجو إرفاق ملف مرفق ليتم العمل عليه وتطبيق الحلول عليه
  7. ومشاركةً مع أخي @ahmed draz ، اجعل كود الحدث بعد التحديث للقائمة cmb_TQ كما يلي ، لجلب التسمية التوضيحية للحقول من الجدول المختار من القائمة .. Private Sub cmb_TQ_AfterUpdate() Dim db As Database, td As TableDef Dim fld As Field Dim sql As String Dim captions As String Set db = CurrentDb Set td = db.TableDefs(Me.cmb_TQ.Value) sql = "SELECT data_tech.* FROM data_tech WHERE data_tech.a1 LIKE '" & Me.cmb_TQ.Value & "' ORDER BY a1" With Me.ListFields .ColumnCount = 1 .RowSourceType = "Value List" .RowSource = "" End With For Each fld In td.Fields If fld.Properties("Caption") <> "" Then captions = fld.Properties("Caption") Else captions = fld.Name End If Me.ListFields.AddItem captions Next fld Set db = Nothing Set td = Nothing End Sub هذا فيما يخص الطلب الأول طبعاً . ، وأعتقد الثاني أيضاً ولكن بطريقة الاختيار المتعدد .
  8. أخي الكريم ، اعتذر لتأخري في الرد لظرف طارئ . تم انشاء الجدول Tbl_Manaseb لإضافة المناصب التي تريدها حسب حاجتك .. وتعديل مصدر بيانات الكومبوبوكس "اسم المنصب" فقط
  9. أخي الكريم ،، تسلسل الأحداث لديك هل هو كالآتي ؟ اضافة جلسة أولاً ، ثم إضافة إجتماع ، ثم إضافة نشاط !!!!!!!
  10. وعليكم السلام ورحمة الله وبركاته أخي @مازن الحسيني ,, أعتقد أن فكرتك في تصميم جدل المنصب غير سليمة ,, فالأصل انشاء جدول خاص ومنفرد للمناصب ، وهذا ما قمت به في المرفق التالي المعدل ,, مثال.mdb
  11. وعليكم السلام ورحمة الله وبركاته ،، أخي الفاضل بالنسبة للنموذج Meetingfrm ، قم بإنشاء زر للحفظ مثلاً واجعل هذا السطر بداخله لتحديث القيمة في المربع نفسه كون مصدره الحقل في الجدول المستهدف jalsatbl ومن ثم سيتم الانتقال الى سجل جديد . Me.jalsadate.Value = Me.meetingdate.Value DoCmd.GoToRecord , , acNewRec قمت بنقل كود الدالة DlookUp من حدث عند النقر على الكومبوبوكس jals الى الحدث بعد التحديث ( وهو الأصح ) . بالنسبة لنموذج النشاطات Nashatatfrm ، فلم أفهم المغزى أو الفكرة لأني لست على دراية بآلية إدخال البيانات في ملفك ( من اين تبدأ وفيمن تنتهي ) .
  12. من خلال المواصفات التي قدمتها اعتقد انه لا يوجد مشكلة في المواصفات ، إلا بعد جوابك على السؤال التالي تختلف إجابتي .. هل في باقي المشاريع التي جربتها على جهازك يوجد بطئ في التعامل مع قاعدة البيانات ؟؟ بناءً عليه تأكد من تعريف كرت الشاشة إنه سليم . غير ذلك عليك التأكد من نسخة الأوفيس انها لا تحتوي على مشاكل أو جرب على إصدار آخر .
  13. هلا والله بالجمال والدلال سلمت يداك على هذه التحفة ،🤗، المثالين جميلين ، والثاني فكرته أجمل 😍
  14. على افتراض ان الكومبوبوكس اسمه Foksh :- Private Sub btnPrintReport_Click() If IsNull(Me.Foksh) Or Me.Foksh = "" Then MsgBox "يرجى اختيار قيمة من القائمة قبل طباعة التقرير.", vbExclamation, "تحذير" Else DoCmd.OpenReport "أكتب هنا اسم التقرير", acViewPreview End If End Sub هذا تصور اخي الكريم ، على افتراض أيضاً أن اسم ايقونة الطباعة btnPrintReport
  15. ما شاء الله عليك ، اعتقد أنك تمتاز بالإستفادة من الملاحظات وسرعة التجاوب معها وهذه النقطة أيضاً انت استخدمتها وقمت بتوظيفها بشكل جيد جداً
  16. الشكر لله وحده أخي @Zooro1 على ما أنعم علينا من فضله وعلمنا ما لم نعلم أنت كمصمم للبرنامج يجب أن يكون لديك نسخة غير مقفلة ( Accde ) ، إحتياطاً لأي تعديلات أو تحديثات ، أو في أسوء الظروف تلف قاعدة البيانات الأمامية .
  17. وعليكم السلام ورحمة الله وبركاته أخي @Zooro1 .. بالنسبة لي ومن وجهة نظري ، يجب أن يكون المشروع مقسماً ( قاعدة بيانات أمامية للنماذج والمديولات ... الخ ) و ( قاعدة بيانات خلفية للجداول فقط ) . أيضاً وجود نسخة مفتوحة المصدر ( Accdb ) من آخر تعديل تحسباً وإحتياطاً لأي طارئ . وأعتقد أيضاً وجود فكرة النسخة الإحتياطية هام في بعض الأحيان ( حسب طبيعة المشروع ) . الإبتعاد عن إرفاق الملفات ( صور أو ملفات Pdf ... إلخ ) كمرفقات داخل قاعدة البيانات ، بل الإستعانة عنها بالمسارات وحفظ المرفقات في مجلدات خارج قاعدة البيانات . برأيي هناك أيضاً فكرة وجوب زر ( ضغط وإصلاح ) لقاعدة البيانات يتم عمله على الأقل كل اسبوع مرة واحدة ( وليس بشكل دوري ومتكرر كثيراً ) . هذه النقاط التي تحافظ على نشاط قاعدة البيانات وعدم إتلافها .
  18. أخي الكريم ، ليس المشكلة في عدد الأعمدة الموجودة في الجدول ، وإنما في التقرير !! إذا لم تكن جميع الأعمدة والحقول مهمة لعرضها في التقرير ، فقد تضطر إلى بناء التقرير بفكرة مختلفة عن فكرة الأعمدة التي تتصورها حالياً ,, عموماً ابدأ بإنشاء الجداول أولاً مراعياً مايلي ليصبح الأمر أسهل عليك أثناء بناء الإستعلامات والأكواد .. تجنب قدر الإمكان استخدام مسميات باللغة العربية لأسماء الحقول في الجداول . تجنب استخدام الرموز الغريبة في الأسماء للحقول . تجنب استخدام المسافات في أسماء الحقول والجداول واستبدلها بـ " _ " إشارة Under Score . تجنب استعمال اسماء حقول مستخدمة ومحجوزة من برنامج أوفيس كمثال ( Date , Name , From , To, .... إلخ ) . فهذه الإسماء يستخدمها أكسيس في أكوادة ودواله والمسميات الخاصة به . لا تبدأ اسم الجداول أو الحقول برقم . حاول أن يكون في كل جدول حقل مفتاح أساسي إنشاء العلاقات بين الجداول والربط فيما بينها . هذا ما يحضرني فيما يخص إنشاء الجداول والحقول في الوقت الحالي .
  19. شكراً لتحاوبك معنا . اولاً تستطيع التعديل على البوست خلال 8 ساعات إن لم مخطئاً. ثانياً بالنسبة لطلبك فأنت تحتاج المساعدة في بناء مشروع كامل متكامل حسب ما فهمت من طلبك ، وهذا سيعتمد على أوقات الفراغ لدى الإخوة والأساتذة الذين يتابعون موضوعك. واختصاراً للوقت ، حاول جاهداً إنشاء الحداول على الأقل ( حتى لو كانت غير صحيحة من ناحية التصميم ) ، ولكن اجعل حجر الأساس يأتي بيديك أولاً وستجد الكثير من المساعدات في الردود. ثالثاً اجعل طلبك مقسماً في عدة مواضيع ، يعني اولا تأسيس الجداول ، وبعد الانتهاء منها افتح موضوع جديد للطلب الثاني ، وهكذا 🤗
  20. اخي الكريم أهلاً وسهلاً بك معنا ،، بداية لا مانع من استخدامك أي لغة تريدها في برنامجك ، ولكن اللغة الكردية وإن لم أكن مخطئا السورانية قد لا تجد من يحاول تنفيذ الفكرة التي طلبتها . أعتقد أن هناك حل من اثنين إما كتابة المعطيات باللغة العربية أو الإنجليزية !! هذا من وجهة نظري ولست محكوماً بها 😇 تقبل تحياتي لك 💐
  21. ما شاء الله أستاذنا الكبير @Barna ، عمل جميل وتحوير الأكواد والأفكار خطوة ذكية 🤗
  22. كيف ذلك 🤔 ⁉️ الأصل في التأسيس سلامة منظومة إنشاء البيانات ، فلا يمكن على سبيل المثال أن يكون لمواطنين إثنين نفس الرقم الوطني أو القومي !! وكذلك الأمر للرقم السري .... إلخ. كلام سليم لا غبار عليه ، وللأسف الشديد سيجد النتيجة النهائية غير مرضية مما سيقوده لتلافيها مجبراً لا طوعاً حسب فكرته ، أو الرجوع لنقطة الصفر وإعادة النظر في طريقته وإعادة هيكلتها وتصويبها. في نهاية المطاف لك جزيل الشكر على تعبك ومجهودك العظيم معلمي الفاضل على ما قدمته من تطويع الأفكار حسب رغبة صديقنا الأخ أسعد 😇 وفيما يخص هذه النقطة ، سيترتب عليه وضع شروط أكثر لتحديد وتمييز الطالب الفلاني من بين الاربعة الذين لهم نفس رقم الجلوس عند الاستعلامات والبحث .
  23. متابع بصمت روعة الأستاذ @ابوخليل والأخ @2saad في المناقشة والحلول المقترحة من معلمي الحبيب ابو خليل 🥰
×
×
  • اضف...

Important Information