ابوخليل قام بنشر منذ 7 ساعات قام بنشر منذ 7 ساعات السلام عليكم اخواني واحبتي في الجدول tblCtrlDetails اريد من خلال استعلام اظهار السجل الذي يمثل الوقت الحالي حسب اليوم والفترة فقط الوقت الحالي محصور بين وقتين (بداية ونهاية ) ...................................................... الأيام : أيام الأسبوع : الأحد /الاثنين / الثلاثاء / الأربعاء / الخميس نهاية الأسبوع : الخميس / الجمعة / السبت لاحظ ان يوم الخميس مشترك .................................................................. لك مطلق الحرية في تغيير اوقات الفترات ... والأيام واعتقد من اجل التجربة يجب العبث بوقت جهاز الحاسوب Database1.accdb
Moosak قام بنشر منذ 5 ساعات قام بنشر منذ 5 ساعات وعليكم السلام ورحمة الله وبركاته عمي @ابوخليل 🙂 هل هذا ما تريد الوصول إليه ؟ قدمت وقت الفترة الأولى لكي يظهر معي السجل .. 🙂 حاس أن الموضوع فيه تعقيد أكثر مما أتصور 😅🖐️ Database1.accdb
ابوخليل قام بنشر منذ 5 ساعات الكاتب قام بنشر منذ 5 ساعات نعم .. تماما .. كما في الصورة حسب الوقت الحالي الذي هو متحقق بين الوقتين 26 دقائق مضت, Moosak said: حاس أن الموضوع فيه تعقيد أكثر مما أتصور 😅🖐️ المهم مع تطبيق الفترة الزمنية ايضا مطابقة الأيام حسب الصلاحية من صلاحيته ايام الاسبوع لايظهر في الجمعة والسبت والعكس صحيح .. من صلاحيته نهاية الاسبوع يظهر في الخميس والجمعة والسبت فقط
ابوخليل قام بنشر منذ 4 ساعات الكاتب قام بنشر منذ 4 ساعات لم اوفق في التسمية .. كان الأولى أيام الاسبوع تكون تسميتها : وسط الاسبوع
Foksh قام بنشر منذ 2 ساعات قام بنشر منذ 2 ساعات (معدل) وعليكم السلام ورحمة الله وبركاته .. حسب فهمي البسيط للفكرة ، اسمحولي أن أشارك بهذه الفكرة البسيطة ، حيث في الاستعلام Query2 الفكرة الأولى والتي اعتقد انها لا تعتمد على ان يوم الخميس مشترك ، وفي الاستعلام النهائي Query3 اعتقد انه هو المطلوب ( ما لم أكن قد فهمت الفكرة بشكل متسرع كالعادة 🤣 ) SELECT c.usrID, d.work_name AS [نوع العمل], f.fatra_name AS الفترة, f.first_time AS [وقت البداية], f.last_time AS [وقت النهاية], TimeValue(Now()) AS [الوقت الحالي], Format(Date(),"dddd",1) AS [اليوم الحالي] FROM (tblFatrat AS f INNER JOIN tblCtrlDetails AS c ON f.fatraid = c.fatraType) INNER JOIN tblDaysWork AS d ON c.workType = d.workID WHERE (((f.first_time)<=TimeValue(Now())) AND ((f.last_time)>=TimeValue(Now())) AND ((c.workType)=1) AND ((Weekday(Date())) Between 1 And 5)) OR (((f.last_time)<[f].[first_time]) AND ((TimeValue(Now()))>=[f].[first_time] Or (TimeValue(Now()))<=[f].[last_time]) AND ((c.workType)=1) AND ((Weekday(Date())) Between 1 And 5)) OR (((f.first_time)<=TimeValue(Now())) AND ((f.last_time)>=TimeValue(Now())) AND ((c.workType)=2) AND ((Weekday(Date())) In (5,6,7))) OR (((f.last_time)<[f].[first_time]) AND ((TimeValue(Now()))>=[f].[first_time] Or (TimeValue(Now()))<=[f].[last_time]) AND ((c.workType)=2) AND ((Weekday(Date())) In (5,6,7))); Database2.accdb تم تعديل منذ 2 ساعات بواسطه Foksh
ابوخليل قام بنشر منذ 2 ساعات الكاتب قام بنشر منذ 2 ساعات 36 دقائق مضت, Foksh said: وعليكم السلام ورحمة الله وبركاته .. حسب فهمي البسيط للفكرة ، اسمحولي أشارك بهذا الاستعلام :- اهلا اخي @Foksh وااااااو الأمر معقد بالنسبة لي باستخدام استعلامات وسيطة ومعايير كثيرة اتمنى يكون الحل أسهل مباشر ومحكم .. على احتمال تغير الفترات بالزيادة او النقص الوقت او الفترة وتم التعامل معها بشكل مباشر بسيط في مثال الأخ موسى بقي الأيام اتوقع ان عمل دالة تستكشف اليوم الحالي مع ربط اليوزر بهذا اليوم حسب صلاحيته هو الأفضل
ابوخليل قام بنشر منذ 3 دقائق الكاتب قام بنشر منذ 3 دقائق وجدت حلا عملت دالة بل اثنتين .. لأن يوم الخميس مشترك هذه لوسط الاسبوع جميع الأيام ..... ولآخر الاسبوع فقط الجمعة والسبت Public Function funDayInweek() Dim i As Integer If Weekday(Date) >= 1 And Weekday(Date) <= 5 Then i = 1 funDayInweek = i ElseIf Weekday(Date) >= 6 And Weekday(Date) <= 7 Then i = 2 End If funDayInweek = i End Function ثم عملت الثانية وخصصتها لنهاية الاسبوع يوم الخميس فقط Public Function funDayInweek5() If Weekday(Date) = 5 Then funDayInweek5 = 2 Else funDayInweek5 = Null End If End Function يوجد في المثال نسخة طبق الأصل من الدالتين .. استبدلت فيها دالة استخراج اليوم بمتغير .. من اجل الفحص والتأكد من النتيجة Database3.rar
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.