-
Posts
3702 -
تاريخ الانضمام
-
Days Won
149
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو Foksh
-
تفضل ,, افتح الاستعلام Query2 باركود نهائي.accdb
-
حاولت تصور الفكرة ولم افهم بالضبط المطلوب للإحتياط ، هل الاستعلام التالي يفي بالغرض :- 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; تم اضافة عمود جديد في الاستعلام لمسميات التخصص أو المواد ، وتم الفرز من خلالها ..
-
للأسف لا أعلم هذه المعلومة ، فأساليب حذف السجلات تختلف حسب فكر المبرمج وصانع الأكواد ،، ولكن تماشياً مع فكرتك ، سنقوم بجعل الكود يتأكد مما اذا كان هناك سجل بعد السجل الحالي المستهدف حذفه ، فإن كان هناك سجل فيتم الانتقال اليه ، وإذا كان السجل المطلوب حذفه هو آخر سجل فسيتم الانتقال الى سجل جديد بعد اتمام عملية الحذف .. استبدل كودك السابق بهذا الكود لزر حذف السجل :- 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 ) لكن !!! وبما أنه لا يوجد سجل تالي ، هنا قد يحدث خطأ أو يبقى النموذج " بدون سجل " ، مما يسبب تجميد أو ظهور نموذج فارغ أو حتى خطأ غير متوقع.
-
نرجو منك الاهتمام باختيار عنوان مناسب لمواضيعك ، بحيث يشرح المشكلة كعنوان بشكل واضح .
-
-
ومشاركة مع أخي @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.الراتب) وكنصيحة مستقبلية من أخ لأخيه المسلم :- ابتعد عن التسميات العربية للحقول والعناصر ومكونات قاعدة البيانات ، فحتماً ستسبب لك العديد من المشاكل في المشروع والتنفيذ .
-
وعليكم السلام ورحمة الله وبركاته ,, المشكلة انك لم تقم بتثبيت البرنامج الخاص Barcodewiz ، لذا قم بتثبيته من :- ثم قم بالذهاب إلى المكتبات في VBA كما في الصورة :- ثم قم بإزالة اشارة الصح عن هذا المسار :- ثم قم بإضافته من جديد :- وحتماً ستنتهي مشكلتك .
-
اعرض الملف مستورد السجلات الذكي 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 الاقسام قسم الأكسيس
-
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 -
الدالة تعمل بشكل سليم . وقد تمت تجربتها مراراً على أكثر من مدرسة باخلاف الدوام ( يوم السبت ) وبتواريخ مختلفة . لذا قد أكود عكست التسمية ليس إلا . اجعل التسمية لا تعمل يوم السبت ، وتنتهي مشكلتك
-
دي مش محتاجة سؤال ؛ غيرها بما يتناسب مع مشروعك يا صديقي ، ما دام الأمر يسري بالشكل الصحيح !!
-
أعتقد أنه تم الإجابة عن هذا السؤال في موضوعك السابق ، والذي لم تقم بالرد عليه ومتابعته 🙂 . الجواب في هذه المشاركة هنا
-
طيب يا صديقي ، قبل خروجي من العمل ، جرب هذا التعديل حيث تم ما يلي :- 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
-
طيب تمام يا صديقي ، الآن سأقوم بتفقد الجدول وإضافة حقل من نوع Yes/No دلالة على أن المدرسة هذه لها مباشرة دوام يوم السبت أم لا ,, وبناءً عليه سنقوم بتعديل الدالة للتمييز بين المدارس ، ما رأيك ؟
-
استيراد من الاكسل ⭐ هدية ~ مستورد السجلات الذكي 2025⭐
Foksh replied to Foksh's topic in قسم الأكسيس Access
وإياكم يا صديقي ، و والله انه ليسعدني أنها قد تحققت على أكمل وجه بفضل الله أولاً ، ثم بفضل ملاحظاتكم وسأعمل على إضافة أفكاري هذه الى المكتبة إثراءً لي -
يا صديقي ، الفكرة ليست في الجدول فقط ، فعلى سبيل المثال ، سنضطر الى تمييز ان الموظف الفلاني موظف للمدرسة الفلانية .. انت فاهم قصدي ؟؟
-
الأمور تمام ، ولكن ما الذي سيميز المدارس التي يبدأ دوامها السبت من تلك التي تبدأ الأحد ؟؟؟؟؟؟ للتأكيد كل يوجد جدول للمدارس ؟؟؟
-
اول شيء وين الاجازات في الموضوع ؟؟؟؟؟؟ ولا انت تقصد الدورات أو التدريبات هي نفسها الاجازات ؟؟؟؟؟ مش فاهم ، ثاني شيء انك تدخل في التشعبات الفرعية دون الانتهاء من التأسيس لبقية البرنامج اعتقد رح تتوهك وتدخلنا في متاهة
-
اشرحها لي اكثر لأنا ما فهمتها
-
الخطأ مردود ، اعتذر منك ، المقصود في النموذج الفرعي في الدالة UpdateModa ، أزل 1+ من السطر moda = daysCount + 1 ولكن لنفترض أن تاريخ بدء التدريب = 2025-04-01 وتاريخ الإنتهاء = 2025-04-04 أي الأيام ( 01 ، 02 ، 03 ، 04 ) ستكون 4 ايام وليس 3 ان كان ما فهمته صحيح ,, ولكن انت أعلم بمشروعك في النهاية
-
طيب يا صديقي ، لنفترض جدلاً أن لديك مربع النص (TxtFullDate) ، والذي يضم القيمة = 042025 على سبيل المثال ، وأن لديك مربعي نص كالآتي :- مربع النص TxMo = لعرض رقم الشهر ، و مربع النص TxYr = لعرض رقم السنة . الآن في مصدر بيانات مربع النص الخاص برقم الشهر اكتب السطر التالي :- =Left([TxtFullDate],2) وفي مربع النص الخاص برقم السنة ، اكتب الجزء التالي فقط :- =Right([TxtFullDate],4) جرب وأخبرني بالنتيجة
-
أخي الكريم وعليكم السلام ورحمة الله وبركاته ,, حتى لا ندخل في متاهة الإختمالات والمقاصد الغير موضحة ، ما هي احتمالات القيم التي تريد فصلها ؟؟ على سبيل المثال هل جميعها تضم الشهر من خانتين ورقم السنة ( 012025 ، 062025 ، 112025 ، 122025 ... ) ؟؟؟؟؟ واذا كان هناك أي مقصد أو هدف يجول في خيالك ولم تأت على ذكره فأرجو التوضيح
-
نعم أخي العزيز ,, الحل بسيط ان شاء الله ، فقط في الدالة في المديول قم بإزالة 1 + :- count = count + 1
-
هل تقصد هذه الفكرة !! DoCmd.OpenReport "rep_Kashf", acViewPreview DoCmd.OpenReport "rep_Kashf", acViewReport DoCmd.OpenReport "rep_Kashf", acViewPreview اذا كانت فكرتك هنا استخدم التكرار كحل تحايلي لضمان أن التقرير سيحسب القيم بشكل صحيح في أول مرة ، ثم يعرضها بشكل نهائي بعد أن تكون القيم قد تم تجميعها !!!! أحاول التركيز في التخلص من هذه الفكرة