ابوخليل قام بنشر منذ 10 ساعات قام بنشر منذ 10 ساعات السلام عليكم اخواني واحبتي في الجدول tblCtrlDetails اريد من خلال استعلام اظهار السجل الذي يمثل الوقت الحالي حسب اليوم والفترة فقط الوقت الحالي محصور بين وقتين (بداية ونهاية ) ...................................................... الأيام : أيام الأسبوع : الأحد /الاثنين / الثلاثاء / الأربعاء / الخميس نهاية الأسبوع : الخميس / الجمعة / السبت لاحظ ان يوم الخميس مشترك .................................................................. لك مطلق الحرية في تغيير اوقات الفترات ... والأيام واعتقد من اجل التجربة يجب العبث بوقت جهاز الحاسوب Database1.accdb
Moosak قام بنشر منذ 8 ساعات قام بنشر منذ 8 ساعات وعليكم السلام ورحمة الله وبركاته عمي @ابوخليل 🙂 هل هذا ما تريد الوصول إليه ؟ قدمت وقت الفترة الأولى لكي يظهر معي السجل .. 🙂 حاس أن الموضوع فيه تعقيد أكثر مما أتصور 😅🖐️ Database1.accdb
ابوخليل قام بنشر منذ 7 ساعات الكاتب قام بنشر منذ 7 ساعات نعم .. تماما .. كما في الصورة حسب الوقت الحالي الذي هو متحقق بين الوقتين 26 دقائق مضت, Moosak said: حاس أن الموضوع فيه تعقيد أكثر مما أتصور 😅🖐️ المهم مع تطبيق الفترة الزمنية ايضا مطابقة الأيام حسب الصلاحية من صلاحيته ايام الاسبوع لايظهر في الجمعة والسبت والعكس صحيح .. من صلاحيته نهاية الاسبوع يظهر في الخميس والجمعة والسبت فقط
ابوخليل قام بنشر منذ 7 ساعات الكاتب قام بنشر منذ 7 ساعات لم اوفق في التسمية .. كان الأولى أيام الاسبوع تكون تسميتها : وسط الاسبوع
Foksh قام بنشر منذ 5 ساعات قام بنشر منذ 5 ساعات (معدل) وعليكم السلام ورحمة الله وبركاته .. حسب فهمي البسيط للفكرة ، اسمحولي أن أشارك بهذه الفكرة البسيطة ، حيث في الاستعلام 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 تم تعديل منذ 5 ساعات بواسطه Foksh
ابوخليل قام بنشر منذ 5 ساعات الكاتب قام بنشر منذ 5 ساعات 36 دقائق مضت, Foksh said: وعليكم السلام ورحمة الله وبركاته .. حسب فهمي البسيط للفكرة ، اسمحولي أشارك بهذا الاستعلام :- اهلا اخي @Foksh وااااااو الأمر معقد بالنسبة لي باستخدام استعلامات وسيطة ومعايير كثيرة اتمنى يكون الحل أسهل مباشر ومحكم .. على احتمال تغير الفترات بالزيادة او النقص الوقت او الفترة وتم التعامل معها بشكل مباشر بسيط في مثال الأخ موسى بقي الأيام اتوقع ان عمل دالة تستكشف اليوم الحالي مع ربط اليوزر بهذا اليوم حسب صلاحيته هو الأفضل
ابوخليل قام بنشر منذ 2 ساعات الكاتب قام بنشر منذ 2 ساعات وجدت حلا عملت دالة بل اثنتين .. لأن يوم الخميس مشترك هذه لوسط الاسبوع جميع الأيام ..... ولآخر الاسبوع فقط الجمعة والسبت 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
ابوخليل قام بنشر منذ 2 ساعات الكاتب قام بنشر منذ 2 ساعات ان امكن دمج الدالتين بدالة واحدة .. جيد بحيث تصبح الدالة يوم الخميس = 1 أو 2
Foksh قام بنشر منذ 2 ساعات قام بنشر منذ 2 ساعات جميل جداً جداً .. بسيط وسهل القراءة . ولكن ممكن تعليق صغير أستاذي ومعلمي الفاضل ؟؟ الدالة funDayInweek5 ، سوف ترجع القيمة 2 فقط إذا كان اليوم هو الخميس (5) بدون أي تحقق من الوقت !! وهذا يعني انه في الاستعلام ، الشرط OR (((tblCtrlDetails.workType)=funDayInweek5())) سيعيد جميع السجلات التي يكون فيها workType = 2 = يوم الخميس ، بغض النظر عن الوقت . أليس هذا صحيحاً ؟؟
ابوخليل قام بنشر منذ 2 ساعات الكاتب قام بنشر منذ 2 ساعات صح .. ولكن الوقت يحمل معياره الخاص لم اغير في معيار الأخ موسى
Foksh قام بنشر منذ 2 ساعات قام بنشر منذ 2 ساعات (معدل) تمام ,, ولكن فيما يخص الدمج أمره على ما أعتقد سيكون دون الاعتماد على مصفوفات على سبيل المثال ، لأنه وللأسف لا يمكن استخدام المصفوفات مباشرة في المعيار داخل الاستعلام . لذا ، هذا اقتراح بسيط :- Public Function IsValidWorkType(workTypeValue As Integer) As Boolean Dim dayNum As Integer: dayNum = Weekday(Date) Select Case dayNum Case 1 To 4 IsValidWorkType = (workTypeValue = 1) Case 5 IsValidWorkType = (workTypeValue = 1 Or workTypeValue = 2) Case 6, 7 IsValidWorkType = (workTypeValue = 2) Case Else IsValidWorkType = False End Select End Function وسيكون الاستعلام بعد مقترحي السابق :- SELECT tblCtrlDetails.usrID, tblCtrlDetails.workType, tblCtrlDetails.fatraType, tblFatrat.first_time, tblFatrat.last_time, TimeValue(Now()) AS [Current_Time] FROM tblFatrat INNER JOIN tblCtrlDetails ON tblFatrat.fatraID = tblCtrlDetails.fatraType WHERE (((tblFatrat.first_time)<=tblFatrat.last_time) And ((TimeValue(Now())) Between tblFatrat.first_time And tblFatrat.last_time) And ((IsValidWorkType([workType]))<>False)) Or (((tblFatrat.first_time)>tblFatrat.last_time) And ((TimeValue(Now()))>=tblFatrat.first_time Or (TimeValue(Now()))<=tblFatrat.last_time) And ((IsValidWorkType([workType]))<>False)); 3 دقائق مضت, ابوخليل said: هل اعتمد الحل ؟ .. ام لك رأي آخر افضل ؟ العفو معلمي الفاضل ، هذا يعود لحاجتك من الناتج العائد إن كان يخدم مطلبك أم لا ... وأتمنى أن لا أكون قد ابتعدت عن مسار المطلوب 😅😅 فلي عادة أن أنحرف بالتفكير يميناً ويسارا تم تعديل منذ 2 ساعات بواسطه Foksh 2
ابوخليل قام بنشر منذ 2 ساعات الكاتب قام بنشر منذ 2 ساعات تطيب المجالس بمشاركتك عقول الرجال اين المرفق ؟ ام تريد طلابك يتعبوا كما تعبت 1
kanory قام بنشر منذ 2 ساعات قام بنشر منذ 2 ساعات في 17/6/2025 at 10:48, ابوخليل said: في الجدول tblCtrlDetails اريد من خلال استعلام اظهار السجل الذي يمثل الوقت الحالي حسب اليوم والفترة فقط الوقت الحالي محصور بين وقتين (بداية ونهاية ) ...................................................... الأيام : أيام الأسبوع : الأحد /الاثنين / الثلاثاء / الأربعاء / الخميس نهاية الأسبوع : الخميس / الجمعة / السبت لاحظ ان يوم الخميس مشترك .................................................................. لك مطلق الحرية في تغيير اوقات الفترات ... والأيام واعتقد من اجل التجربة يجب العبث بوقت جهاز الحاسوب تفضل جرب استاذي الفاضل كل الاحتمالات ...................... واعملنا بالنتيجة Database1 (36).accdb 1
Foksh قام بنشر منذ 2 ساعات قام بنشر منذ 2 ساعات 2 دقائق مضت, ابوخليل said: تطيب المجالس بمشاركتك عقول الرجال اين المرفق ؟ ام تريد طلابك يتعبوا كما تعبت لا عاش من يتعبك اعتذر منك على هذا القصور Database3.zip
ابوخليل قام بنشر منذ 1 ساعه الكاتب قام بنشر منذ 1 ساعه 51 دقائق مضت, Foksh said: تمام ,, ولكن فيما يخص الدمج أمره على ما أعتقد سيكون دون الاعتماد على مصفوفات على سبيل المثال ، لأنه وللأسف لا يمكن استخدام المصفوفات مباشرة في المعيار داخل الاستعلام . لذا ، هذا اقتراح بسيط :- الدالة جميلة وسوف اعتمدها .. لاحظت تكرار المعايير Or في الاستعلام خاصة معيار دالة الأيام .. ومع اني حذفت التكرار فالدالة تعمل جيدا .. شكرا جزيلا بالنسبة لمعيار الوقت سأبقى على عمل الاخ موسى أرى أنه اقوى في تحديد البداية والنهاية 46 دقائق مضت, kanory said: تفضل جرب استاذي الفاضل كل الاحتمالات ...................... واعملنا بالنتيجة اهلا اخي محمد انت صنعت الدالة على ايام الاسبوع .. والاستعلام لا نحتاج فيه الى الأيام حتى ارقام الأيام التي نتعامل معها تبقى في الدالة فقط وقد جربت ولم تظهر السجلات حسب المطلوب .. رغم اني تحققت من البيانات في الجدول اشكرك على التفاعل والمشاركة .............................................. احبتي ازعم اني حصلت على المطلوب فجزاكم الله خيرا
Moosak قام بنشر منذ 1 ساعه قام بنشر منذ 1 ساعه 6 ساعات مضت, ابوخليل said: المهم مع تطبيق الفترة الزمنية ايضا مطابقة الأيام حسب الصلاحية من صلاحيته ايام الاسبوع لايظهر في الجمعة والسبت والعكس صحيح .. من صلاحيته نهاية الاسبوع يظهر في الخميس والجمعة والسبت فقط بأبسط الامكانيات عملت لك حقلين في الأستعلام من نوع (True / False ) الأول يتحقق من دخول الفترة الزمنية نطاق التنفيذ .. والثاني يتحقق من أن الأيام دخلت نطاق التنفيذ .. وبالتالي صار سهل جدا فلترة السجلات بناءا عليهما : وهكذا تضع الشروط بكل سهولة 🙂 : Database1 (1).accdb 2
kanory قام بنشر منذ 1 ساعه قام بنشر منذ 1 ساعه 5 دقائق مضت, ابوخليل said: اهلا اخي محمد انت صنعت الدالة على ايام الاسبوع .. والاستعلام لا نحتاج فيه الى الأيام حتى ارقام الأيام التي نتعامل معها تبقى في الدالة فقط وقد جربت ولم تظهر السجلات حسب المطلوب .. رغم اني تحققت من البيانات في الجدول اشكرك على التفاعل والمشاركة الدالة هي التي تستخدم ايام الاسبوع ولاتظهر في الاستعلام مطلقا 1
Foksh قام بنشر منذ 1 ساعه قام بنشر منذ 1 ساعه 7 دقائق مضت, Moosak said: بأبسط الامكانيات عملت لك حقلين في الأستعلام من نوع (True / False ) الأول يتحقق من دخول الفترة الزمنية نطاق التنفيذ .. والثاني يتحقق من أن الأيام دخلت نطاق التنفيذ .. جميل جداً ، ومشاركة ذكية أيضاً .. مع العلم وإنه وإن كان قد لا يستوجب أخذ هذه النقطة بالحسبان ، وهي عدم دعم الفترات التي تمتد بعد منتصف الليل (من 10 مساءً إلى 2 صباحاً مثلاً) على سبيل المثال طبعاً وليس للحصر ..... وطبعاً الإفتراض دوماً أن first_time < last_time لا يخدم النقطة السابقة ( وكما أشرت قد تكون غير ضرورية من الأساس 😅 ) طبعاً لا ينقص تعليقي من فكرة الأستاذ موسى شيئاً .
Moosak قام بنشر منذ 1 ساعه قام بنشر منذ 1 ساعه 3 دقائق مضت, Foksh said: وهي عدم دعم الفترات التي تمتد بعد منتصف الليل (من 10 مساءً إلى 2 صباحاً مثلاً) لكل مقام مقال 😎👌 1
ابوخليل قام بنشر منذ 1 ساعه الكاتب قام بنشر منذ 1 ساعه 21 دقائق مضت, Moosak said: بأبسط الامكانيات عملت لك حقلين في الأستعلام من نوع (True / False ) الأول يتحقق من دخول الفترة الزمنية نطاق التنفيذ .. والثاني يتحقق من أن الأيام دخلت نطاق التنفيذ .. وبالتالي صار سهل جدا فلترة السجلات بناءا عليهما : سهل نعم .. وهذا ما يسمى بالسهل الممتنع تكاثرت الظباء على خراش ... فما يدري خراش ما يصيد خراش اليوم ليس في حيرة من أمره سيصيد ما خف وزنه وزاد ثمنه الحمد لله أولا وآخرا .. إثراء المواضيع بحلول وأفكار متنوعة يصب في صالح الباحث طالب العلم الشكر لكم جميعا جزاكم الله خيرا ورفع قدركم واصلح لكم الأهل والذرية ورزقكم من حيث لا تحتسبون . 3
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.