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

Foksh

أوفيسنا
  • Posts

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

  • Days Won

    150

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

  1. اعتذر منك ، فلم استفهم المشكلة وليس لدي حل 😃
  2. يا صديقي ، جدول الطلاب الفرز فيه حسب الـحقل ID ، صحيح ؟؟؟ لكن لاحظ ان أول طالب هو بالصف الـ 5أ !!!!!! فكيف تريد الفرز يشبه فرز الجدول !!!!!
  3. يا صاحبي ، الطلاب مترتبين معك حسب الاسم الابجدي ، ولا انت قصدك حسب رقم الطالب ؟؟؟؟
  4. صدقت تماماً .. لم لا نحصل على عدد ايام الحضور بطريقة تعتمد على الجدول المؤقت بدلاً من الاستعلامات !!!!! فكرة بسيطة
  5. الله يعطيك العافية أستاذنا @ابوخليل ، عمل جميل جداً ومجهود واضح يستحق التقدير ,, سؤال خطر ببالي وأكيد خطر ببال أخونا أسعد ، في الزر " إعداد النتيجة " يتم استخراج البيانات من الاستعلامات الى الجدول المؤقت لكلا الفصلين صحيح ؟؟ وهذا سيجعل عدد السجلات مضاعفاً تقريباً في كل مرة ، وسؤالي هو لم لا نجعل الأمر متروك لقائمة اختيار الفصل الدراسي ، بحيث من خلالها يتم تقسيم عمل الاستعلامات وبالتالي يقل الضغط على الاستعلامات الثلاثة في الزر !! هو مجرد رأي طبعاً في النهاية .
  6. بالتوفيق يا رب .. وربنا ينجحك بجد من قلبي
  7. دا العشم في محبتي لك برضو .. وانت عارف الكلام الصح . ربنا يديك الصحة والعافية من كل بلاء وهم .. لو محتاج حاجة هنا أو هناك في شغلك احكيلي ، وأنا أوعدك اني مش بفهم حاجة في شغلك هههههه
  8. هههههه وانا بانتظار دوري لما توزع الحلويات عندي .. ولا إحنا ملناش من الحب جانب 😛 !! على العموم يسعدني تجربتك وإعلامي بالنتيجة أيضاً 😊 .
  9. اممممم ، اذا كنت تعرف خطوات اضافة استعلام SQL ، فجرب الاستعلام التالي . حيث الفرز سيكون بالمادة أولاً ، ثم بالشعبة ، ثم الفرز باسم الطالب .. SELECT St_Code & Switch( [StudyMaterialsEng] = "ARABIC", "ARA", [StudyMaterialsEng] = "ART", "ART", [StudyMaterialsEng] = "ENGLISH", "ENG", [StudyMaterialsEng] = "MATH", "MAT", [StudyMaterialsEng] = "RELIGION", "REL", [StudyMaterialsEng] = "SCIENCE", "SCI", [StudyMaterialsEng] = "SOCIAL", "SOC", [StudyMaterialsEng] = "SPORT", "SPO" ) AS Barcode, Query1.St_Code, Query1.St_Name, Query1.St_Group, Query1.StudyMaterialsEng FROM Query1 ORDER BY Switch( [StudyMaterialsEng] = "ARABIC", 1, [StudyMaterialsEng] = "ART", 2, [StudyMaterialsEng] = "ENGLISH", 3, [StudyMaterialsEng] = "MATH", 4, [StudyMaterialsEng] = "RELIGION", 5, [StudyMaterialsEng] = "SCIENCE", 6, [StudyMaterialsEng] = "SOCIAL", 7, [StudyMaterialsEng] = "SPORT", 8 ), [St_Group], [St_Name]; باركود نهائي.accdb
  10. تفضل ,, افتح الاستعلام Query2 باركود نهائي.accdb
  11. حاولت تصور الفكرة ولم افهم بالضبط المطلوب للإحتياط ، هل الاستعلام التالي يفي بالغرض :- SELECT St_Code & Switch([StudyMaterialsEng]="ARABIC","ARA",[StudyMaterialsEng]="ART","ART",[StudyMaterialsEng]="ENGLISH","ENG",[StudyMaterialsEng]="MATH","MAT",[StudyMaterialsEng]="RELIGION","REL",[StudyMaterialsEng]="SCIENCE","SCI",[StudyMaterialsEng]="SOCIAL","SOC",[StudyMaterialsEng]="SPORT","SPO") AS Barcode, Query1.St_Code, Query1.St_Name, Query1.St_Group, Query1.StudyMaterialsEng FROM Query1 ORDER BY Switch([StudyMaterialsEng]="ARABIC",1,[StudyMaterialsEng]="ART",2,[StudyMaterialsEng]="ENGLISH",3,[StudyMaterialsEng]="MATH",4,[StudyMaterialsEng]="RELIGION",5,[StudyMaterialsEng]="SCIENCE",6,[StudyMaterialsEng]="SOCIAL",7,[StudyMaterialsEng]="SPORT",8), Query1.St_Code; تم اضافة عمود جديد في الاستعلام لمسميات التخصص أو المواد ، وتم الفرز من خلالها ..
  12. للأسف لا أعلم هذه المعلومة ، فأساليب حذف السجلات تختلف حسب فكر المبرمج وصانع الأكواد ،، ولكن تماشياً مع فكرتك ، سنقوم بجعل الكود يتأكد مما اذا كان هناك سجل بعد السجل الحالي المستهدف حذفه ، فإن كان هناك سجل فيتم الانتقال اليه ، وإذا كان السجل المطلوب حذفه هو آخر سجل فسيتم الانتقال الى سجل جديد بعد اتمام عملية الحذف .. استبدل كودك السابق بهذا الكود لزر حذف السجل :- Private Sub Cmdel_Click() On Error GoTo Err_Cmdel_Click If MsgBox(":ستقوم الآن بحذف السجل المسجل بملف رقم" & vbCrLf _ & vbCrLf _ & [Nr] & " " & vbCrLf _ & [Name_T] & vbCrLf _ & " " & vbCrLf _ & "هل أنت متأكد ؟" & vbCrLf _ & "أضغط ( نعم ) للإستمرار ، أو ( لا ) لإلغاء الأمر", _ vbQuestion + vbYesNo + vbMsgBoxRight, "تحذيـــر") = vbYes Then Dim rs As DAO.Recordset Set rs = Me.RecordsetClone rs.Bookmark = Me.Bookmark rs.Delete ' بعد الحذف ، سيتم التحقق مما اذا كان هناك سجل لا حق أم لا If Not rs.EOF Then rs.MoveNext If Not rs.EOF Then Me.Bookmark = rs.Bookmark Else ' لا يوجد سجل بعده - انتقل إلى سجل جديد DoCmd.GoToRecord , , acNewRec End If Else ' لا يوجد سجلات بعد الحذف - انتقل إلى سجل جديد DoCmd.GoToRecord , , acNewRec End If rs.Close Set rs = Nothing End If Exit_Cmdel_Click: Exit Sub Err_Cmdel_Click: MsgBox Err.Description, vbExclamation + vbMsgBoxRight, "خطأ" Resume Exit_Cmdel_Click End Sub أما بالنسبة للأسباب :- فالمشكلة التي تحصل معك سببها أنه وبعد اجراء عملية الحذف ، فإن اكسيس تلقائياً يقوم بالانتقال إلى السجل التالي ( MoveNext ) لكن !!! وبما أنه لا يوجد سجل تالي ، هنا قد يحدث خطأ أو يبقى النموذج " بدون سجل " ، مما يسبب تجميد أو ظهور نموذج فارغ أو حتى خطأ غير متوقع.
  13. نرجو منك الاهتمام باختيار عنوان مناسب لمواضيعك ، بحيث يشرح المشكلة كعنوان بشكل واضح .
  14. والأجمل هو مرورك العطر 🤗
  15. ومشاركة مع أخي @kkhalifa1960 ، هذه فكرتي ، بحيث من خلال دالة عامة يمكن استخدامها في أي مكان في المشروع وليس ضمن حقل معين أو نموج معين .. انشئ مديول جديد أو في مديول موجود ، وألصق الكود التالي :- Public Function CalculateTax(ByVal salary As Double) As Double Const BASE1 As Double = 750 Const BASE2 As Double = 1166.667 Const FIXED_TAX_AT_BASE2 As Double = 28.883 Select Case True Case salary < BASE1 CalculateTax = 0 Case Round(salary, 3) = BASE2 CalculateTax = FIXED_TAX_AT_BASE2 Case salary < BASE2 CalculateTax = (salary - BASE1) * 0.05 Case Else CalculateTax = FIXED_TAX_AT_BASE2 + (salary - BASE2) * 0.1 End Select End Function ثم في حدث بعد التحديث لمربع نص "الراتب" :- Me.الضريبة = CalculateTax(Me.الراتب) وكنصيحة مستقبلية من أخ لأخيه المسلم :- ابتعد عن التسميات العربية للحقول والعناصر ومكونات قاعدة البيانات ، فحتماً ستسبب لك العديد من المشاكل في المشروع والتنفيذ .
  16. وعليكم السلام ورحمة الله وبركاته ,, المشكلة انك لم تقم بتثبيت البرنامج الخاص Barcodewiz ، لذا قم بتثبيته من :- ثم قم بالذهاب إلى المكتبات في VBA كما في الصورة :- ثم قم بإزالة اشارة الصح عن هذا المسار :- ثم قم بإضافته من جديد :- وحتماً ستنتهي مشكلتك .
  17. اعرض الملف مستورد السجلات الذكي 2025 السلام عليكم ورحمة الله وبركاته ، أخواني وأساتذتي ومعلمينا ( دون استثناء ) 📌 أقدم لكم اليوم فكرة قد تكون ليست بالجديدة ، ولكن بطريقة ونكهة مختلفتين ▫▪◽◾◻◼. "أداة مستورد السجلات الذكي من Excel" ، أداة مبتكرة تتيح لك استيراد البيانات من ملفات Excel إلى قواعد بيانات Access بكل مرونة وسرعة . يتميز هذا البرنامج أو الأداة بواجهة بسيطة وميزات قوية تجعل التعامل مع البيانات تجربة مريحة ، حتى للمستخدمين الذين ليست لديهم خبرة تقنية كبيرة في التعامل مع هذا النوع من المتطلبات . فالكثير من الأشخاص في منتدانا هنا سأل عن إمكانية استيراد بيانات من اكسل من حقل محدد أو بطرق محددة ( تناسب إحتياجاته ) ، ولهذا كانت الفكرة هذه تنفيذاً لمتطلباتهم .. 🎯 سنستعرض أهم ميزات هذا البرنامج وكيف يمكن أن يسهم في تحسين إنتاجيتك وتوفير وقتك . تابع القراءة لاكتشاف كيف يمكنك الاستفادة من هذا الحل الذكي لإدارة البيانات 😇 . ميزات برنامج مستورد السجلات الذكي من Excel 📂 التكامل مع Excel يمكن اختيار ملفات Excel بسهولة باستخدام نافذة اختيار الملفات . يدعم البرنامج ملفات بصيغة xls / xlsx ، وغيرها . دعم كامل للإستيراد من جوجل شيت Google Sheets . 📋 التعامل مع الأوراق والبيانات عرض جميع أوراق العمل (Sheets) الموجودة في ملف Excel المحدد ، أو رابط جوجل شيت . عرض أسماء الأعمدة في الورقة المحددة لتسهيل تحديد العمود / الأعمدة المستهدفة . 🚀 الاستيراد المرن للبيانات استيراد بيانات من عمود محدد أو عدة أعمدة من ملف Excel أو جوجل شيت بناءً على اختيار المستخدم . تحديد الصفوف التي تبدأ منها عملية الاستيراد (لتجاوز رؤوس الأعمدة إن وجدت 👌 ) . 🗂️ الإدارة المتقدمة للبيانات داخل Access استيراد البيانات إلى جدول محدد داخل قاعدة البيانات الحالية . دعم لتحديد الحقول الهدف داخل الجدول . إمكانية تفعيل خاصية الترقيم التلقائي لإضافة قيم تسلسلية إلى الحقول المخصصة ( باستخدام الدالة DMAX ) . التعرف الكامل في جوجل شيت على توافق أنوع الحقول مع الحقول في الجدول المستهدف . التعرف على عدد الحروف إن كان اكبر من 255 حرف في الحقول ذات النوع " نص قصير " ⚡ أداء عالي مع دفعات من البيانات تقسيم البيانات إلى دفعات عند استيراد كميات كبيرة لتجنب مشاكل الأداء . إدارة مرنة لعدد السجلات التي يتم استيرادها في كل دفعة . 🎨 واجهة مستخدم ديناميكية إظهار أو إخفاء المساعدة البصرية بضغطة زر . تحديث الكومبوبوكس بطريقة ديناميكيًا بناءً على اختيارات المستخدم . في القسم الخاص بجوجل شيت ، تم إضافة مساعد لخطوات إنشاء API سليم وموضح في الفيديو المرفق . 🔒 إجراءات أمان واسترجاع دعم لاسترجاع البيانات عند حدوث خطأ أثناء عملية الاستيراد ( Rollback ) . التنبيه برسائل خطأ واضحة إذا لم يتم اختيار الملف أو إعداد الخيارات بشكل صحيح . 🧹 إدارة الموارد تنظيف جميع الموارد المفتوحة (ملفات Excel أو الاتصال بالبيانات) عند إغلاق النموذج . منع أي تأثير سلبي على النظام عند حدوث خطأ . ✨ سهولة الاستخدام تصميم بسيط يعرض التعليمات ويطلب إدخال البيانات الضرورية فقط . رسائل توجيهية للمستخدم لتحسين تجربة الاستخدام . ⚙️ المرونة في تخصيص الخيارات خيارات لتحديث السجلات الموجودة أو إضافة سجلات جديدة . دعم مجموعات البيانات المختلفة من خلال تحديد طريقة المعالجة . دعم ملف اكسيل مرفوع برابط مباشر في جوجل درايف - يتم تحويله الى جوجل شيت . في الجزء الخاص بالتعامل مع جوجل شيت :- فقط اختر الرابط ( نسخ ولصق ) وادخاله في رسالة رابط الملف كما في الصورة التالية :- الأداة تدعم استكمال الجلسة لآخر رابط تم استخدامه ( توفيراً للوقت واختصاراً لفكرة استخدام الرابط نفسه في كل مرة ) ، بحيث تظهر لك رسالة كالآتي :- حيث اذا كان اختيارك لـ Yes يتم التعرف على آخر رابط تم استخدامه ( حتى بعد اغلاق الأداة ) ، وإذا كان رد المستخدم No يتم اظهار رسالة ادخال رابط جديد ( ويتم اعتماده للجلسة اللاحقة ) .. الأداة تحتوي على معالج مساعد لمساعدة المستخدم ( أول مرة فقط ) على انشاء حساب في جوجل درايف وكيفية التعامل مع الـ API الخاصة بـ Google Sheets لتهيئة الأداة للتعامل مع روابط جوجل شيت لاستيراد السجلات منه . في التحديث الجديد للأداة ، يتم التعرف على الأخطاء التي يمكن حصولها أثناء اختيار حقل وخلية لا يوجد بينهما توافق في نوع البيانات ، فمثلاً لو تم اختيار خليه تحتوي على تاريخ ويقابلها حقل في الجدول ( في آكسيس ) من نوع رقمي مثلاً ، فإن الاداة تخبرك بنوع الحقل والتصحيح الذي يمكن تعديله .. واجهة الأداة :- * صورة من الواجهة الخاصة بـ Google Sheets . يلزم إضافة مكتبة Microsoft Office xx.0 Object Library فقط .. ⭐على سبيل المثال ، لدينا جدول اكسل يحتوي على عدد سجلات يتكون من أعمدة على سبيل المثال ( اسم الموظف ، رقم الموظق ، رقم الهاتف ، الجنسية ) وعدد السجلات = 50 صف مثلاً . وفي جدول اكسيس لدينا جدول الموظفين ونريد استيراد عدد سجلات محدد من نطاق محدد من ملف اكسل أو جوجل شيت ، و من عمود محدد أو عدة أعمدة ؛ لذا بعد اختيار ملف الاكسل أو رابط ملف جوجل شيت ، سيتم :- أولاً جلب أسماء الأوراق التي يتكون منها الملف . ثانياً جلب أسماء الأعمدة التي تتكون منها الورقة التي تم اختيارها ( اسم الموظف ، رقم الموظق ، رقم الهاتف ، الجنسية ) . ونختار على سبيل المثال اسم الموظف . ثم نحدد رقم الصف الذي تبدأ به البيانات التي نريدها ، ولنفترض ان الخليه A1 تحتوي عناوين الأعمدة كما ذكرنا سابقاً ؛ وعليه فإن البيانات ستبدأ من الخلية A2 ( على العتبار ان اسم الموظف في العمود A ) في ملف اكسل . ثالثاً نحدد الجدول الذي نريد جلب واستيراد البيانات اليه ، ثم نحدد الحقل الهدف الذي سيتم نقل ابيانات اليه . رابعاً حدد عدد السجلات التي تريد جلبها ، ولنفترض أننا نريد جلب القيم الـ 5 من الخليه A2 - A6 . وإذا أردنا جلب جميع السجلات ( الـ 50 كما ذكرنا في مثالنا ) نترك القيمة في عدد السجلات المستوردة = 0 . خامساً نحدد نوع الحدث ( تحديث - إضافة ) . فماذا يعني تحديث أو إضافة ؟ تحديث : سيتم تحديث الحقل المستهدف من أول قيمة وحتى العدد المحدد في عدد السجلات المستوردة . وعليه فإن القيم السابقة للحقل سيتم استبدالها بالقيم الجديدة . إضافة : سيتم إضافة سجلات جديدة للجدول المستهدف بغض النظر عن السجلات السابقة ولن تتأثر البيانات القديمة عند الإضافة . الآن كنقطة مهمة يجب التنويه لها في هذا البرنامج ، وهي لنفترض انك استوردت عدد سجلات = 5 كما قلنا سابقاً من حقل اسم الموظف . وأردت استيراد عدد 10 سجلات من حقل رقم الهاتف ( نوع احركة تحديث ) هنا سيتم تحديث عدد السجلات الحالي في الجدول بالقيم الـ 5 الأولى ، ثم سيتم إضافة باقي القيم ( الـ 5 سجلات ) وكأنها سجلات جديدة . أي أنها حركة تحديث وحركة إضافة للقيم التي ليس لها سجلات . سادساً وهي نقطة الترقيم . اعتمدت في البرنامج على الدالة DMAX بالترقيم . بحيث يتم اضافة 1 الى أكبر قيمة في الجدول بعد تحديد حقل الترقيم ( رقم الموظف مثلاً ) . أما اذا كان لديك حقل ترقيم تلقائي في الجدول فلا يستلزم على المستخدم تفعيل هذه الميزة . سابعاً يجب على المستخدم الإلتزام بضرورة توخي الحذر عند اختيار الحقول بحيث ينتبه لنوع الحقل . فمثلاً لن يتم اضافة قيم نصية مثل اسم الموظف من اكسل الى حقل رقم الموظف ( حقل رقمي ) . وهذه النقطة لا شك فيها !! Excel Importor V3.0.accdb صاحب الملف Foksh تمت الاضافه 04/21/25 الاقسام قسم الأكسيس  
  18. Version 3.0

    25 تنزيل

    السلام عليكم ورحمة الله وبركاته ، أخواني وأساتذتي ومعلمينا ( دون استثناء ) 📌 أقدم لكم اليوم فكرة قد تكون ليست بالجديدة ، ولكن بطريقة ونكهة مختلفتين ▫▪◽◾◻◼. "أداة مستورد السجلات الذكي من Excel" ، أداة مبتكرة تتيح لك استيراد البيانات من ملفات Excel إلى قواعد بيانات Access بكل مرونة وسرعة . يتميز هذا البرنامج أو الأداة بواجهة بسيطة وميزات قوية تجعل التعامل مع البيانات تجربة مريحة ، حتى للمستخدمين الذين ليست لديهم خبرة تقنية كبيرة في التعامل مع هذا النوع من المتطلبات . فالكثير من الأشخاص في منتدانا هنا سأل عن إمكانية استيراد بيانات من اكسل من حقل محدد أو بطرق محددة ( تناسب إحتياجاته ) ، ولهذا كانت الفكرة هذه تنفيذاً لمتطلباتهم .. 🎯 سنستعرض أهم ميزات هذا البرنامج وكيف يمكن أن يسهم في تحسين إنتاجيتك وتوفير وقتك . تابع القراءة لاكتشاف كيف يمكنك الاستفادة من هذا الحل الذكي لإدارة البيانات 😇 . ميزات برنامج مستورد السجلات الذكي من Excel 📂 التكامل مع Excel يمكن اختيار ملفات Excel بسهولة باستخدام نافذة اختيار الملفات . يدعم البرنامج ملفات بصيغة xls / xlsx ، وغيرها . دعم كامل للإستيراد من جوجل شيت Google Sheets . 📋 التعامل مع الأوراق والبيانات عرض جميع أوراق العمل (Sheets) الموجودة في ملف Excel المحدد ، أو رابط جوجل شيت . عرض أسماء الأعمدة في الورقة المحددة لتسهيل تحديد العمود / الأعمدة المستهدفة . 🚀 الاستيراد المرن للبيانات استيراد بيانات من عمود محدد أو عدة أعمدة من ملف Excel أو جوجل شيت بناءً على اختيار المستخدم . تحديد الصفوف التي تبدأ منها عملية الاستيراد (لتجاوز رؤوس الأعمدة إن وجدت 👌 ) . 🗂️ الإدارة المتقدمة للبيانات داخل Access استيراد البيانات إلى جدول محدد داخل قاعدة البيانات الحالية . دعم لتحديد الحقول الهدف داخل الجدول . إمكانية تفعيل خاصية الترقيم التلقائي لإضافة قيم تسلسلية إلى الحقول المخصصة ( باستخدام الدالة DMAX ) . التعرف الكامل في جوجل شيت على توافق أنوع الحقول مع الحقول في الجدول المستهدف . التعرف على عدد الحروف إن كان اكبر من 255 حرف في الحقول ذات النوع " نص قصير " ⚡ أداء عالي مع دفعات من البيانات تقسيم البيانات إلى دفعات عند استيراد كميات كبيرة لتجنب مشاكل الأداء . إدارة مرنة لعدد السجلات التي يتم استيرادها في كل دفعة . 🎨 واجهة مستخدم ديناميكية إظهار أو إخفاء المساعدة البصرية بضغطة زر . تحديث الكومبوبوكس بطريقة ديناميكيًا بناءً على اختيارات المستخدم . في القسم الخاص بجوجل شيت ، تم إضافة مساعد لخطوات إنشاء API سليم وموضح في الفيديو المرفق . 🔒 إجراءات أمان واسترجاع دعم لاسترجاع البيانات عند حدوث خطأ أثناء عملية الاستيراد ( Rollback ) . التنبيه برسائل خطأ واضحة إذا لم يتم اختيار الملف أو إعداد الخيارات بشكل صحيح . 🧹 إدارة الموارد تنظيف جميع الموارد المفتوحة (ملفات Excel أو الاتصال بالبيانات) عند إغلاق النموذج . منع أي تأثير سلبي على النظام عند حدوث خطأ . ✨ سهولة الاستخدام تصميم بسيط يعرض التعليمات ويطلب إدخال البيانات الضرورية فقط . رسائل توجيهية للمستخدم لتحسين تجربة الاستخدام . ⚙️ المرونة في تخصيص الخيارات خيارات لتحديث السجلات الموجودة أو إضافة سجلات جديدة . دعم مجموعات البيانات المختلفة من خلال تحديد طريقة المعالجة . دعم ملف اكسيل مرفوع برابط مباشر في جوجل درايف - يتم تحويله الى جوجل شيت . في الجزء الخاص بالتعامل مع جوجل شيت :- فقط اختر الرابط ( نسخ ولصق ) وادخاله في رسالة رابط الملف كما في الصورة التالية :- الأداة تدعم استكمال الجلسة لآخر رابط تم استخدامه ( توفيراً للوقت واختصاراً لفكرة استخدام الرابط نفسه في كل مرة ) ، بحيث تظهر لك رسالة كالآتي :- حيث اذا كان اختيارك لـ Yes يتم التعرف على آخر رابط تم استخدامه ( حتى بعد اغلاق الأداة ) ، وإذا كان رد المستخدم No يتم اظهار رسالة ادخال رابط جديد ( ويتم اعتماده للجلسة اللاحقة ) .. الأداة تحتوي على معالج مساعد لمساعدة المستخدم ( أول مرة فقط ) على انشاء حساب في جوجل درايف وكيفية التعامل مع الـ API الخاصة بـ Google Sheets لتهيئة الأداة للتعامل مع روابط جوجل شيت لاستيراد السجلات منه . في التحديث الجديد للأداة ، يتم التعرف على الأخطاء التي يمكن حصولها أثناء اختيار حقل وخلية لا يوجد بينهما توافق في نوع البيانات ، فمثلاً لو تم اختيار خليه تحتوي على تاريخ ويقابلها حقل في الجدول ( في آكسيس ) من نوع رقمي مثلاً ، فإن الاداة تخبرك بنوع الحقل والتصحيح الذي يمكن تعديله .. واجهة الأداة :- * صورة من الواجهة الخاصة بـ Google Sheets . يلزم إضافة مكتبة Microsoft Office xx.0 Object Library فقط .. ⭐على سبيل المثال ، لدينا جدول اكسل يحتوي على عدد سجلات يتكون من أعمدة على سبيل المثال ( اسم الموظف ، رقم الموظق ، رقم الهاتف ، الجنسية ) وعدد السجلات = 50 صف مثلاً . وفي جدول اكسيس لدينا جدول الموظفين ونريد استيراد عدد سجلات محدد من نطاق محدد من ملف اكسل أو جوجل شيت ، و من عمود محدد أو عدة أعمدة ؛ لذا بعد اختيار ملف الاكسل أو رابط ملف جوجل شيت ، سيتم :- أولاً جلب أسماء الأوراق التي يتكون منها الملف . ثانياً جلب أسماء الأعمدة التي تتكون منها الورقة التي تم اختيارها ( اسم الموظف ، رقم الموظق ، رقم الهاتف ، الجنسية ) . ونختار على سبيل المثال اسم الموظف . ثم نحدد رقم الصف الذي تبدأ به البيانات التي نريدها ، ولنفترض ان الخليه A1 تحتوي عناوين الأعمدة كما ذكرنا سابقاً ؛ وعليه فإن البيانات ستبدأ من الخلية A2 ( على العتبار ان اسم الموظف في العمود A ) في ملف اكسل . ثالثاً نحدد الجدول الذي نريد جلب واستيراد البيانات اليه ، ثم نحدد الحقل الهدف الذي سيتم نقل ابيانات اليه . رابعاً حدد عدد السجلات التي تريد جلبها ، ولنفترض أننا نريد جلب القيم الـ 5 من الخليه A2 - A6 . وإذا أردنا جلب جميع السجلات ( الـ 50 كما ذكرنا في مثالنا ) نترك القيمة في عدد السجلات المستوردة = 0 . خامساً نحدد نوع الحدث ( تحديث - إضافة ) . فماذا يعني تحديث أو إضافة ؟ تحديث : سيتم تحديث الحقل المستهدف من أول قيمة وحتى العدد المحدد في عدد السجلات المستوردة . وعليه فإن القيم السابقة للحقل سيتم استبدالها بالقيم الجديدة . إضافة : سيتم إضافة سجلات جديدة للجدول المستهدف بغض النظر عن السجلات السابقة ولن تتأثر البيانات القديمة عند الإضافة . الآن كنقطة مهمة يجب التنويه لها في هذا البرنامج ، وهي لنفترض انك استوردت عدد سجلات = 5 كما قلنا سابقاً من حقل اسم الموظف . وأردت استيراد عدد 10 سجلات من حقل رقم الهاتف ( نوع احركة تحديث ) هنا سيتم تحديث عدد السجلات الحالي في الجدول بالقيم الـ 5 الأولى ، ثم سيتم إضافة باقي القيم ( الـ 5 سجلات ) وكأنها سجلات جديدة . أي أنها حركة تحديث وحركة إضافة للقيم التي ليس لها سجلات . سادساً وهي نقطة الترقيم . اعتمدت في البرنامج على الدالة DMAX بالترقيم . بحيث يتم اضافة 1 الى أكبر قيمة في الجدول بعد تحديد حقل الترقيم ( رقم الموظف مثلاً ) . أما اذا كان لديك حقل ترقيم تلقائي في الجدول فلا يستلزم على المستخدم تفعيل هذه الميزة . سابعاً يجب على المستخدم الإلتزام بضرورة توخي الحذر عند اختيار الحقول بحيث ينتبه لنوع الحقل . فمثلاً لن يتم اضافة قيم نصية مثل اسم الموظف من اكسل الى حقل رقم الموظف ( حقل رقمي ) . وهذه النقطة لا شك فيها !! Excel Importor V3.0.accdb
  19. الدالة تعمل بشكل سليم . وقد تمت تجربتها مراراً على أكثر من مدرسة باخلاف الدوام ( يوم السبت ) وبتواريخ مختلفة . لذا قد أكود عكست التسمية ليس إلا . اجعل التسمية لا تعمل يوم السبت ، وتنتهي مشكلتك
  20. دي مش محتاجة سؤال ؛ غيرها بما يتناسب مع مشروعك يا صديقي ، ما دام الأمر يسري بالشكل الصحيح !!
  21. أعتقد أنه تم الإجابة عن هذا السؤال في موضوعك السابق ، والذي لم تقم بالرد عليه ومتابعته 🙂 . الجواب في هذه المشاركة هنا
  22. طيب يا صديقي ، قبل خروجي من العمل ، جرب هذا التعديل حيث تم ما يلي :- 1. في الجدول Tb_School تم اضافة الحقل WSat من نوع = Yes/No ، حيث :- إذا كانت المدرسة تعطل يوم السبت ( WSat=True ) ، وبالتالي يتم تجاهل الجمعة والسبت . إذا كانت المدرسة تعمل يوم السبت ( WSat=False ) وبالتالي يتم تجاهل يوم الجمعة ولا يتم احتسابه في الأيام . 2. تعديل الدوال في المديول : Public Function WorkDaysBetween(StartDate As Date, EndDate As Date, schoolID As Long) As Long Dim i As Long Dim d As Date Dim count As Long Dim SaturdayOff As Boolean If EndDate < StartDate Then WorkDaysBetween = 0 Exit Function End If SaturdayOff = Nz(DLookup("WSat", "Tb_School", "School_ID = " & schoolID), True) For i = 0 To DateDiff("d", StartDate, EndDate) d = DateAdd("d", i, StartDate) If Weekday(d, vbSaturday) = 7 Then ElseIf SaturdayOff And Weekday(d, vbSaturday) = 1 Then Else count = count + 1 End If Next i WorkDaysBetween = count End Function Public Function NextWorkingDay(d As Date, schoolID As Long) As Date Dim SaturdayOff As Boolean SaturdayOff = Nz(DLookup("WSat", "Tb_School", "School_ID = " & schoolID), True) Do While Weekday(d, vbSaturday) = 7 Or (SaturdayOff And Weekday(d, vbSaturday) = 1) d = d + 1 Loop NextWorkingDay = d End Function 3. دالة الاحتساب في النموذج الفرعي تم تعديلها كالآتي بإضافة الشرط الخاص برقم المدرسة للتمييز بين طريقتي الإحتساب :- Private Sub UpdateModa() Dim daysCount As Long Dim schoolID As Long If Not IsNull(Me.Parent!Gha_Aml) Then schoolID = Nz(Me.Parent!Gha_Aml, 0) Else schoolID = 0 End If If Not IsNull(tr_bda_tdbreeb) And Not IsNull(tr_nhay_tdree) Then daysCount = WorkDaysBetween(tr_bda_tdbreeb, tr_nhay_tdree, schoolID) tr_moshrt_aml = NextWorkingDay(tr_nhay_tdree + 1, schoolID) moda = daysCount Else moda = Null tr_moshrt_aml = Null End If End Sub جربه وأخبرني .. Personnel_affairs.zip
  23. طيب تمام يا صديقي ، الآن سأقوم بتفقد الجدول وإضافة حقل من نوع Yes/No دلالة على أن المدرسة هذه لها مباشرة دوام يوم السبت أم لا ,, وبناءً عليه سنقوم بتعديل الدالة للتمييز بين المدارس ، ما رأيك ؟
×
×
  • اضف...

Important Information