كل الانشطه
- الساعة الأخيرة
-
اجدت وأفدت مع ان قدمه اخونا Debug Ace said رائع لا يقاوم .. لوجود ميزات متقدمة الا انني يبدو سأعتمد نسختك هذه لعدة اسباب : - تحقق عرض الخطوط العربية فقط من وندوز - التعامل مع التقرير مباشرة وحفظ آخر نسخة لتصبح دائمة - جلب الخلفية مفتوح وغير مقيد كل هذه قريبة من عملي تقريبا .. مع بعض التعديلات اللازمة جزاكم الله خيرا .. جميعا واجزل لكم الثواب
-
عبد اللطيف سلوم started following الغاء التعديل والحذف بعد ادخال البيانات
-
السلام عليكم مرفق قاعدة البيانات للتعديل عليها المطلوب عند ادخال المادة وكافة تفاصيل السطر والانتقال الى سطر جديد يمنع تعديل المادة او حذفها ويمنع تعديل او حذف كافة بيانات السطر بشرط ان يبقى البحث شغال ولا يتعارض ارجو المساعدة فقد عجزت عن حلها 123452025.accdb
-
وبذلك التعديل يصبح الكود فى النهاية بهذا الشكل '=== ÇáËæÇÈÊ ááæÑÏíÉ ÇáãÓÇÆíÉ === Private Const SHIFT_START_HOUR As Integer = 17 ' 5 ãÓÇÁ Private Const SHIFT_END_HOUR As Integer = 1 ' 1 ÕÈÇÍÇ Private Const DEFAULT_WORK_HOURS As Long = 8 Private Const DEFAULT_FREE_IN_MINS As Long = 30 Private Const DEFAULT_FREE_OUT_MINS As Long = 30 '=== 1. ÝÍÕ ãÇ ÅÐÇ ßÇä ÇáæÞÊ ÇáãÍÏÏ Öãä æÑÏíÉ ãÓÇÆíÉ === Public Function IsEveningShiftNow(Optional ByVal checkTime As Date = 0) As Boolean If checkTime = 0 Then checkTime = Time() IsEveningShiftNow = (checkTime >= TimeSerial(SHIFT_START_HOUR, 0, 0)) Or (checkTime < TimeSerial(SHIFT_END_HOUR, 0, 0)) End Function '=== 2. ÊÇÑíÎ ÇáæÑÏíÉ ÇáÍÇáíÉ === Public Function CurrentShiftDate(Optional ByVal currentTime As Date = 0) As Date If currentTime = 0 Then currentTime = Time() If IsEveningShiftNow(currentTime) Then If currentTime >= TimeSerial(SHIFT_START_HOUR, 0, 0) Then CurrentShiftDate = Date Else CurrentShiftDate = Date - 1 End If Else CurrentShiftDate = Date End If End Function '=== 3. ÞÑÇÁÉ ÅÚÏÇÏÇÊ ÇáæÑÏíÉ ãÑÉ æÇÍÏÉ === Private Function GetShiftSettings() As Variant Static cachedSettings As Variant Static lastCacheTime As Date If DateDiff("n", lastCacheTime, Now()) > 5 Then Dim rst As DAO.Recordset Set rst = CurrentDb.OpenRecordset("SELECT fatrah2_In, hours_Work2, free2_in, free2_out FROM tblTimeCtrl WHERE 1=1") If Not rst.EOF Then cachedSettings = Array( _ Nz(rst!fatrah2_In, "17:00:00"), _ Nz(rst!hours_Work2, DEFAULT_WORK_HOURS), _ Nz(rst!free2_in, DEFAULT_FREE_IN_MINS), _ Nz(rst!free2_out, DEFAULT_FREE_OUT_MINS) _ ) Else cachedSettings = Array("17:00:00", DEFAULT_WORK_HOURS, DEFAULT_FREE_IN_MINS, DEFAULT_FREE_OUT_MINS) End If rst.Close: Set rst = Nothing lastCacheTime = Now() End If GetShiftSettings = cachedSettings End Function '=== 4. æÞÊ ÈÏÇíÉ ÇáÊÓÌíá ÇáãÓãæÍ (ÞÈá ÇáÏÎæá ÇáÑÓãí) === Public Function funFirstTimeB_In(Optional ByVal refTime As Date = 0) As Date Dim settings As Variant: settings = GetShiftSettings() Dim officialIn As Date: officialIn = TimeValue(settings(0)) Dim freeMins As Long: freeMins = CLng(settings(2)) If refTime = 0 Then refTime = Time() Dim shiftDate As Date: shiftDate = CurrentShiftDate(refTime) funFirstTimeB_In = DateAdd("n", -freeMins, shiftDate + officialIn) End Function '=== 5. æÞÊ äåÇíÉ ÇáÊÓÌíá ÇáãÓãæÍ (ÈÚÏ ÇáÇäÕÑÇÝ ÇáÑÓãí) === Public Function funLastTimeB_Out(Optional ByVal refTime As Date = 0) As Date Dim settings As Variant: settings = GetShiftSettings() Dim officialIn As Date: officialIn = TimeValue(settings(0)) Dim workHours As Long: workHours = CLng(settings(1)) Dim extraMins As Long: extraMins = CLng(settings(3)) If refTime = 0 Then refTime = Time() Dim shiftDate As Date: shiftDate = CurrentShiftDate(refTime) funLastTimeB_Out = DateAdd("n", (workHours * 60) + extraMins, shiftDate + officialIn) End Function '=== 6. æÙÇÆÝ ÅÖÇÝíÉ ááÊÍÞÞ æÇáÇÎÊÈÇÑ ãÚ ãÚÇãá æÞÊ === Public Function GetCurrentShiftInfo(Optional ByVal refTime As Date = 0) As String Dim shiftDate As Date: shiftDate = CurrentShiftDate(refTime) GetCurrentShiftInfo = "ÇáæÑÏíÉ: " & Format(shiftDate, "yyyy-mm-dd") & " | " & _ "ÇáÏÎæá ÇáãÓãæÍ: " & Format(funFirstTimeB_In(refTime), "hh:nn") & " | " & _ "ÇáÎÑæÌ ÇáãÓãæÍ: " & Format(funLastTimeB_Out(refTime), "hh:nn") End Function '=== 7. ÇÎÊÈÇÑ ÇáãäØÞ === Public Function TestShiftLogic(Optional ByVal testTime As Date = 0) As String If testTime = 0 Then testTime = Now() TestShiftLogic = "ÇáæÞÊ: " & Format(testTime, "hh:nn:ss") & " ? " & GetCurrentShiftInfo(testTime) End Function Sub TestDebugPrint() Debug.Print TestShiftLogic() Debug.Print TestShiftLogic(#11:30:00 PM#) Debug.Print TestShiftLogic(#12:30:00 AM#) End Sub
-
وجهة نظرك منطقية وتحترم ينفع معاك الحل ده ؟ Public Function IsEveningShiftNow(Optional ByVal checkTime As Date = 0) As Boolean If checkTime = 0 Then checkTime = Time() IsEveningShiftNow = (checkTime >= TimeSerial(17, 0, 0)) Or (checkTime < TimeSerial(1, 0, 0)) End Function Public Function CurrentShiftDate(Optional ByVal currentTime As Date = 0) As Date If currentTime = 0 Then currentTime = Time() If IsEveningShiftNow(currentTime) Then If currentTime >= TimeSerial(17, 0, 0) Then CurrentShiftDate = Date Else CurrentShiftDate = Date - 1 End If Else CurrentShiftDate = Date End If End Function
-
الفا مليون شكر الاساتذة الكرام
-
حضور وانصراف الموظفين .. فترات محكمة خلال يوم .. وتمتد لليوم التالي
Foksh replied to ابوخليل's topic in قسم الأكسيس Access
تمام ، وبما أنك تحاكي اختبار لمنطق الورديات .. فإن اسناد قيمة إلى دالة مدمجة في اكسيس مثل Time بحد ذاته غير منطقي ( وجهة نظري طبعاً ) . وبالتالي فإن الحل الأفضل هو جعل الدوال تستقبل الوقت كـ باراميتر ، أو إنشاء دالة وسيطة تعيد الوقت الحالي . واعتذر إن جررت الحديث خارج محتوى الموضوع - Today
-
الدالة لا تغير وقت النظام الحقيقي في الكمبيوتر الدالة محاكاة اختبار لمنطق الورديات بتغيير الوقت الحالي بشكل مؤقت لاختبار سلوك النظام في أوقات مختلفة دون انتظار مرور الوقت الحقيقي Public Function TestShiftLogic(Optional testTime As Date = 0) As String If testTime = 0 Then testTime = Now() ' 1. استخدم الوقت الحالي لو مفيش وقت محدد Dim originalTime As Date: originalTime = Time() ' 2. احفظ الوقت الأصلي Time = testTime ' 3. غير الوقت الحالي بشكل مؤقت ← **السر هنا** TestShiftLogic = "الوقت: " & Format(testTime, "hh:nn:ss") & " → " & GetCurrentShiftInfo() ' 4. نفذ الاختبار واحصل على النتيجة Time = originalTime ' 5. ارجع الوقت الأصلي ← **الأمان** End Function صارت الامور اوضح معك بهذا الشرح
-
حضور وانصراف الموظفين .. فترات محكمة خلال يوم .. وتمتد لليوم التالي
Foksh replied to ابوخليل's topic in قسم الأكسيس Access
وهذه الإجابة التي انتظرها لتأكيد رواية "اني لأشم ريح يوسف" وأعلم أنها ليست من فراغ وارجو ان يتسع صدرك لحديثنا هذا بأن توضح لي المقصود من الدالة Public Function TestShiftLogic(Optional testTime As Date = 0) As String If testTime = 0 Then testTime = Now() Dim originalTime As Date: originalTime = Time() Time = testTime ' اختبار مؤقت TestShiftLogic = "الوقت: " & Format(testTime, "hh:nn:ss") & " → " & GetCurrentShiftInfo() Time = originalTime ' إعادة الوقت الأصلي End Function هل تحاول تغيير وقت النظام ( في الكمبيوتر ) فعلياً بهذه الدالة ؟؟؟؟ -
اجابتى كانت من واقع خبرتى المتواضعه وفوق كل ذى علم عليم . شكرا ليك على هذه المعلومة سوف اقوم بالتجربة
-
رداً على هذه النقطة ، وحيث أنه سبق تنفيذها سابقاً .. جرب المرفق نفسه بعد التعديل بحيث سيتم فقط عرض الخطوط العربية ( أو التي تتعامل مع الكاركتر العربي ) في الكومبوبوكس . مع إضافة الفرز التصاعدي للأسماء :- Db3.zip
-
موضوع اختيار نوع الخطوك العربية لا يوجد له حل الا عمل جدول للخطوط على ان تكتب بداخله اسم الخط كما سوف يراه ملف الورد تمام ولانى كنت متوقع هذا السؤال فى مرفقى قمت بكتابة كود يجلب كل اسماء الخطوط الى الجدول ويوجد اختيار بالتجربة فقط حدد الخطوط فقط التى تريد التعامل معها فى المستقبل لم استخدم دالة Foksh التى استعان بها لملئ مربع سرد الخطوط فى كل مرع يتم فيها فتح النموذج
-
جزيت خيرا اخي موسى .. لم اجربه ويبدوا انه برنامج رائع متكامل ولكن حاجتي في فورم ارفقه في برنامجي . اقصد الاستغناء عن جدول الخطوط .. وجلب الخطوط العربية مباشرة من مجلد الخطوط في وندوز لأن المستخدم يملك خطوطا خاصه في جهازه
-
افتح موضوع جديد ، وارفق ملفك وإن شاء الله تجد حل لمشكلتك .
-
حضور وانصراف الموظفين .. فترات محكمة خلال يوم .. وتمتد لليوم التالي
Foksh replied to ابوخليل's topic in قسم الأكسيس Access
🤨 -
Moosak started following تنسيق شهادة شكر .. تقرير
-
ما شاء الله تبارك الرحمن 🙂 جميل جدا تنوع الأفكار في نفس المجال 😊👌 وأنا أيضا لدي برنامج خاص بتصميم الشهادات وتنسيقها وتوليد الشهادات لمجموعة كبيرة من الطلاب أو المتدربين أو المستلمين بشكل عام ، وكذلك يقوم بإرسال الشهادات بالبريد الإلكتروني لكل المستهدفين ( كل متدرب أو طالب يستلم شهادته) ، وأيضا يقوم بحفظ جميع الشهادات على شكل Pdf دفعة واحدة .. 🙂 مع إمكانيات تنسيق النص ( الخطوط والألوان ) بشكل حر ، وإضافة التواقيع ، وتغيير إطارات البرنامج .. إلخ تصميم وتنسيق النصوص بكل أريحية إضافة المتدربين دفعة واحدة بعدد لا محدود معاينة بشكل مباشر اواجهة البرنامج مع خيارات البحث وعرض تقارير وإحصائيات لتحميل البرنامج : تنصيب برنامج صانع الشهادات الإصدار الثالث 3.0.zip
-
رائع جدا .. فوق المتوقع استفسار حول اختيار نوع الخط .. هل يمكن عرض الخطوط العربية فقط لأن قائمة الخطوط كثيرة جدا جدا .. وتأخذ وقتا كثيرا لايجاد الخط المناسب هذه الجزئية .. انا لدي شهادة ثابتة كما شاهدتها في الصورة بل صورتان واحدة للبنين والأخرى للبنات .. يتم عرضها حسب الجنس هذه الجديدة المرنة ستبقى واحدة ايضا ثابتة في التقرير ... لها زر للعرض بجانب الشهادة الثابتة الأولى .. وتتغير بياناتها تبعا للتحديث عليها واسفل منهما : زر لصنع هذه الشهادة المرنة وهو استعراض عملك هذا وتصميم الشهادة حسب الرغبة وحفظها
-
طيب دى الفكرة الاولى '=== 1. فحص الوردية المسائية === Public Function IsEveningShiftNow() As Boolean Dim t As Date: t = Time() IsEveningShiftNow = (t >= #12:01:00 PM# And t < #12:00:00 AM#) End Function '=== 2. تاريخ الوردية الحالية === Public Function CurrentShiftDate() As Date CurrentShiftDate = IIf(IsEveningShiftNow(), Date, Date - 1) End Function '=== 3. وقت بداية التسجيل المسموح (قبل الدخول الرسمي) === Public Function funFirstTimeB_In() As Date Dim officialIn As String, freeMins As Long officialIn = Nz(DLookup("fatrah2_In", "tblTimeCtrl"), "17:00:00") freeMins = Nz(DLookup("free2_in", "tblTimeCtrl"), 30) funFirstTimeB_In = DateAdd("n", -freeMins, CurrentShiftDate + TimeValue(officialIn)) End Function '=== 4. وقت نهاية التسجيل المسموح (بعد الانصراف الرسمي) === Public Function funLastTimeB_Out() As Date Dim officialIn As String Dim workHours As Long, extraMins As Long officialIn = Nz(DLookup("fatrah2_In", "tblTimeCtrl"), "17:00:00") workHours = Nz(DLookup("hours_Work2", "tblTimeCtrl"), 8) extraMins = Nz(DLookup("free2_out", "tblTimeCtrl"), 30) funLastTimeB_Out = DateAdd("n", (workHours * 60) + extraMins, _ CurrentShiftDate + TimeValue(officialIn)) End Function ودى فكرة تانية '=============================================================================== ' نظام تحديد ورديات الدوام المسائية مع أوقات التسجيل المسموح بها ' وردية مسائية: 17:00 → 01:00 (تمتد بعد منتصف الليل) '=============================================================================== '=== الثوابت للوردية المسائية === Private Const SHIFT_START_HOUR As Integer = 17 ' 5 مساءً Private Const SHIFT_END_HOUR As Integer = 1 ' 1 صباحًا Private Const DEFAULT_WORK_HOURS As Long = 8 Private Const DEFAULT_FREE_IN_MINS As Long = 30 Private Const DEFAULT_FREE_OUT_MINS As Long = 30 '=== 1. فحص ما إذا كان الوقت الحالي ضمن وردية مسائية === Public Function IsEveningShiftNow() As Boolean Dim t As Date: t = Time() IsEveningShiftNow = (t >= TimeSerial(SHIFT_START_HOUR, 0, 0)) Or (t < TimeSerial(SHIFT_END_HOUR, 0, 0)) End Function '=== 2. تاريخ الوردية الحالية (الأصح للورديات المتداخلة) === Public Function CurrentShiftDate() As Date If IsEveningShiftNow() Then ' إذا كان بعد 17:00 اليوم أو قبل 01:00 اليوم التالي If Time() >= TimeSerial(SHIFT_START_HOUR, 0, 0) Then CurrentShiftDate = Date Else CurrentShiftDate = Date - 1 End If Else CurrentShiftDate = Date End If End Function '=== 3. قراءة إعدادات الوردية مرة واحدة (تحسين الأداء) === Private Function GetShiftSettings() As Variant Static cachedSettings As Variant Static lastCacheTime As Date ' تجديد الكاش كل 5 دقائق If DateDiff("n", lastCacheTime, Now()) > 5 Then Dim rst As DAO.Recordset Set rst = CurrentDb.OpenRecordset("SELECT fatrah2_In, hours_Work2, free2_in, free2_out FROM tblTimeCtrl WHERE 1=1") If Not rst.EOF Then cachedSettings = Array( _ Nz(rst!fatrah2_In, "17:00:00"), _ Nz(rst!hours_Work2, DEFAULT_WORK_HOURS), _ Nz(rst!free2_in, DEFAULT_FREE_IN_MINS), _ Nz(rst!free2_out, DEFAULT_FREE_OUT_MINS) _ ) Else cachedSettings = Array("17:00:00", DEFAULT_WORK_HOURS, DEFAULT_FREE_IN_MINS, DEFAULT_FREE_OUT_MINS) End If rst.Close: Set rst = Nothing lastCacheTime = Now() End If GetShiftSettings = cachedSettings End Function '=== 4. وقت بداية التسجيل المسموح (قبل الدخول الرسمي) === Public Function funFirstTimeB_In() As Date Dim settings As Variant: settings = GetShiftSettings() Dim officialIn As Date: officialIn = TimeValue(settings(0)) Dim freeMins As Long: freeMins = CLng(settings(2)) funFirstTimeB_In = DateAdd("n", -freeMins, CurrentShiftDate + officialIn) End Function '=== 5. وقت نهاية التسجيل المسموح (بعد الانصراف الرسمي) === Public Function funLastTimeB_Out() As Date Dim settings As Variant: settings = GetShiftSettings() Dim officialIn As Date: officialIn = TimeValue(settings(0)) Dim workHours As Long: workHours = CLng(settings(1)) Dim extraMins As Long: extraMins = CLng(settings(3)) funLastTimeB_Out = DateAdd("n", (workHours * 60) + extraMins, CurrentShiftDate + officialIn) End Function '=== 6. وظائف إضافية للتحقق والاختبار === Public Function GetCurrentShiftInfo() As String Dim shiftDate As Date: shiftDate = CurrentShiftDate() GetCurrentShiftInfo = "الوردية: " & Format(shiftDate, "yyyy-mm-dd") & " | " & _ "الدخول المسموح: " & Format(funFirstTimeB_In(), "hh:nn") & " | " & _ "الخروج المسموح: " & Format(funLastTimeB_Out(), "hh:nn") End Function Public Function TestShiftLogic(Optional testTime As Date = 0) As String If testTime = 0 Then testTime = Now() Dim originalTime As Date: originalTime = Time() Time = testTime ' اختبار مؤقت TestShiftLogic = "الوقت: " & Format(testTime, "hh:nn:ss") & " → " & GetCurrentShiftInfo() Time = originalTime ' إعادة الوقت الأصلي End Function بصراحة لم اقم باى تجارب خى مجرد تعديلات للاكواد بشكل نظرى تماما وفق فهمى
-
والله الف الف شكر ليكم وعلي المساعدة عندي سؤالين ، عندي نموذج بحث شامل والنموذج دا مبني علي استعلام وكان شغال تمام لكن لما استدعيه في القائمة الفرعية مش بيشتغل ونفس الموضوع نموذج بحث برقم الكتاب لما اكتب رقم الكتاب واضغط بحث بيفتح نموذج مبني علي استعلام ولكن لما بستدعيه داخل القائمة الفرعية وتمام ولما اكتب مثلا بحث عن رقم الخطاب واضغط بحث مش بيظهر حاجة وشكرا لكم
-
موضوع الخبرة هذا ارى فيه مبالغة وضعت الخطاب يمثل المنتدى فقط للتجربة وكنت اقصد ان يكون النص كبير لتجربة التحكم الكامل فى تكبير العناصر وتغيير مواضعها On RunTime فى وقت العرض المباشر بدون فتح التصميم لم افهم من يوسف هذا ؟ واضح فى لبس حتى ان احدهم راسلنى على الخاص ظنا منه انه يعرفنى وبالنسبة لوصف حضرتك فى الوصف هذا لم يعطيك حقك اساسا منتظر راى حضرتك فى الية التحكم والافكار
-
حضور وانصراف الموظفين .. فترات محكمة خلال يوم .. وتمتد لليوم التالي
ابوخليل replied to ابوخليل's topic in قسم الأكسيس Access
بارك الله فيك .. اجدت وأفدت المهم هو توقيع فوكش .. جميلة هذه التوقيعات .. تذكرنا ببعض في محفوظاتي اعمال كثيرة استفيد منها عند الحاجة فابحث عنها واوظفها غالب هذه الاعمال لإخوة لنا هنا .. ولكن لا يوجد عليها علامات تذكرنا بهم .. اقل حق من حقوقهم ان ندعو لهم في ظهر الغيب -
الله .. الله .. الله .. ما هذا !! لا يهمني العمل الآن .. يكفيني النص المكتوب .. اخجلتني يارجل .. لحظة تعال ... معرف جديد + خبرة فائقة .. وخطاب يمثل المنتدى .. اني لأشم ريح يوسف
-
hamadaAbnana joined the community
-
أفتح البرنامج عن طريق الضغط على زر الشفت Shift لكي تصل إلى الأكواد .. وبعدها قم بتحويل الأكواد وأعد تشغيل البرنامج 🙂
-
حضور وانصراف الموظفين .. فترات محكمة خلال يوم .. وتمتد لليوم التالي
Foksh replied to ابوخليل's topic in قسم الأكسيس Access
فكرتي في التعديل كالتالي للدالتين :- Public Function funFirstTimeB_in() As Date Dim z As Integer Dim fatrahIn As Date Dim baseDate As Date z = Nz(DLookup("free2_in", "tblTimeCtrl"), 0) fatrahIn = Nz(DLookup("fatrah2_In", "tblTimeCtrl"), #12:00:00 AM#) If CheckTimeBetween() = 1 Then baseDate = Date Else baseDate = DateAdd("d", -1, Date) End If funFirstTimeB_in = DateAdd("n", -z, CDate(fatrahIn & " " & baseDate)) End Function Public Function funLastTimeB_Out() As Date Dim z As Integer, x As Integer, xx As Integer Dim fatrahIn As Date Dim baseDate As Date z = Nz(DLookup("free2_out", "tblTimeCtrl"), 0) x = Nz(DLookup("hours_Work2", "tblTimeCtrl"), 0) fatrahIn = Nz(DLookup("fatrah2_In", "tblTimeCtrl"), #12:00:00 AM#) xx = (x * 60) + z If CheckTimeBetween() = 1 Then baseDate = Date Else baseDate = DateAdd("d", -1, Date) End If funLastTimeB_Out = DateAdd("n", xx, CDate(fatrahIn & " " & baseDate)) End Function ChkInOut_CNet2.zip -
االرجاء الانتظار الى الانتهاء من باقى التعديلات CertificateCustomization.zip