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

حل مشكلة كود حساب عدد ايام الجمعه بين تاريخين


عمر ضاحى

الردود الموصى بها

السلام عليكم 

عيد مبارك عليكم 

عارف انه النهرده عيد ^_^

كل سنه وانتم طيبين

لكن انا الكود ده شاغل دماغي عاوز اعرف فين مشكلته 😅

فى الكودين بالاسفل 

يفترض انهم يعطونى عدد ايام الجمعه بين تاريخين وايضا السبت 

لكن بيعطينى صفر

'حساب عدد ايام الجمعة ضمن الاجازة الرسمية بين التاريخين
 
  Fri_Days = DCount("[HoliDays]", "tblHoliDays", _
                "WeekdayName(weekday([HoliDays]),true)= 'Fri'" & _
                "and [HoliDays] between #" & begdate & "# and #" & enddate & "#")
                Debug.Print "Fri_Dats:--->" & Fri_Days
                

'حساب عدد ايام السبت ضمن الاجازة الرسمية بين التاريخين

    sat_Days = DCount("[HoliDays]", "tblHoliDays", _
                "WeekdayName(weekday([HoliDays]),true)= 'Sat'" & _
                "and [HoliDays] between #" & begdate & "# and #" & enddate & "#")
                Debug.Print "Fri_Dats:--->" & Fri_Days

هل يمكنكم معرفة اين الخطأ ؟

تم تعديل بواسطه عمر ضاحى
رابط هذا التعليق
شارك

تفضل هذه الطريقة من خلال حلقة تكرارية داخل نطاق تاريخين محددين

Dim VarDate As Date
Dim enddate As Date
Dim SFriday, SSaturday As Integer

-=====================================
VarDate = #1/1/2022#
enddate = #1/31/2022#
-=====================================

Do While VarDate < enddate
    VarDate = DateAdd("D", 1, VarDate)
    If Weekday(VarDate, 2) = vbFriday Then
    SFriday = SFriday + 1
    End If
    If Weekday(VarDate, 2) = vbSaturday Then
    SSaturday = SSaturday + 1
    End If
Loop


Dim msg As String

msg = "عدد ايام (الجمعة) حسب التواريخ المدخلة"
msg = (msg) & " : " & SFriday
msg = (msg) & (vbNewLine) & "عدد ايام (السبت) حسب التواريخ المدخلة"
msg = (msg) & " : " & SSaturday


MsgBox msg, vbInformation + vbMsgBoxRight, "احتساب الأيام المحددة"

 

  • Thanks 1
رابط هذا التعليق
شارك

وعليكم السلام 🙂

 

على افتراض ان اسماء الحقول صحيحة في الكود ، يوجد خطأ واحد في كل معادلة :

يجب إضافة مسافة بين الاشارة " وكلمة and ، في المعادلتين :

image.png.c5c34ec582218c41b16ae55e52a8e72c.png

.

هكذا :

'حساب عدد ايام الجمعة ضمن الاجازة الرسمية بين التاريخين
 
  Fri_Days = DCount("*", "tblHoliDays", _
                "WeekdayName(weekday([HoliDays]),true)= 'Fri'" & _
                " and [HoliDays] between #" & begdate & "# and #" & enddate & "#")
                Debug.Print "Fri_Dats:--->" & Fri_Days
                

'حساب عدد ايام السبت ضمن الاجازة الرسمية بين التاريخين

    sat_Days = DCount("*", "tblHoliDays", _
                "WeekdayName(weekday([HoliDays]),true)= 'Sat'" & _
                " and [HoliDays] between #" & begdate & "# and #" & enddate & "#")
                Debug.Print "Fri_Dats:--->" & Fri_Days

 

واذا ما حصلت على نتيجة ، فيمكن يجب ان نرى ما يراه البرنامج في صيغة التاريخ ، وعليه قد نحتاج الى استعمال الدالة fDateFormat 

 

 

جعفر

  • Thanks 1
رابط هذا التعليق
شارك

منذ ساعه, د.كاف يار said:

تفضل هذه الطريقة من خلال حلقة تكرارية داخل نطاق تاريخين محددين

Dim VarDate As Date
Dim enddate As Date
Dim SFriday, SSaturday As Integer

-=====================================
VarDate = #1/1/2022#
enddate = #1/31/2022#
-=====================================

Do While VarDate < enddate
    VarDate = DateAdd("D", 1, VarDate)
    If Weekday(VarDate, 2) = vbFriday Then
    SFriday = SFriday + 1
    End If
    If Weekday(VarDate, 2) = vbSaturday Then
    SSaturday = SSaturday + 1
    End If
Loop


Dim msg As String

msg = "عدد ايام (الجمعة) حسب التواريخ المدخلة"
msg = (msg) & " : " & SFriday
msg = (msg) & (vbNewLine) & "عدد ايام (السبت) حسب التواريخ المدخلة"
msg = (msg) & " : " & SSaturday


MsgBox msg, vbInformation + vbMsgBoxRight, "احتساب الأيام المحددة"

 

انا مش عارف اعيد صياغة الكود بالشكل ده لان الكود ال انا حاطه ما هو الا جذء من كود اكواد اخره معاه 

وانا كنت عاوز اعرف فين الغلط فى الكود ال معايا

منذ ساعه, jjafferr said:

وعليكم السلام 🙂

 

على افتراض ان اسماء الحقول صحيحة في الكود ، يوجد خطأ واحد في كل معادلة :

يجب إضافة مسافة بين الاشارة " وكلمة and ، في المعادلتين :

image.png.c5c34ec582218c41b16ae55e52a8e72c.png

.

هكذا :

'حساب عدد ايام الجمعة ضمن الاجازة الرسمية بين التاريخين
 
  Fri_Days = DCount("*", "tblHoliDays", _
                "WeekdayName(weekday([HoliDays]),true)= 'Fri'" & _
                " and [HoliDays] between #" & begdate & "# and #" & enddate & "#")
                Debug.Print "Fri_Dats:--->" & Fri_Days
                

'حساب عدد ايام السبت ضمن الاجازة الرسمية بين التاريخين

    sat_Days = DCount("*", "tblHoliDays", _
                "WeekdayName(weekday([HoliDays]),true)= 'Sat'" & _
                " and [HoliDays] between #" & begdate & "# and #" & enddate & "#")
                Debug.Print "Fri_Dats:--->" & Fri_Days

 

واذا ما حصلت على نتيجة ، فيمكن يجب ان نرى ما يراه البرنامج في صيغة التاريخ ، وعليه قد نحتاج الى استعمال الدالة fDateFormat 

 

 

جعفر

استاذى الكبير جعفر 

هذا شرف لى ان تدخل لتساعدنى فى مشكلتى 

جربت اضع مسافه برضه لم تعمل ويعطينى النتيجه صفر 

لهذا قررت ان اضع النموذج والجدول هنا لغرضين 

اولا اصلاح المشكله 

ثانيا ان يكون شئ يستفاد به غيري 

وعند الانتهاء من المشروع سوف اقوم بنشره هنا ان شاء الله

 

 

Project2.accdb

تم تعديل بواسطه عمر ضاحى
اعادة رفع الملف المرفق
رابط هذا التعليق
شارك

منذ ساعه, Hawiii said:

انا اريد ان اجعل ليوم الجمعه داله منفرده 

وليوم السبت داله منفرده

لغرض 

اولا فى حاله كان ايام العطله الرسميه هي يوم الجمعه والسبت (كالبنوك) يبقى الداله كما هي

اما فى حال ان العطله الرسميه هي يوم الجمعه فقط استطيع ان اوقف داله يوم السبت فقط من غير ما اخل بالكود العام

 

هناك الملف المرفق فى الرد السابق لى 

يمكنك ان تنزله وتنظر فى الاكواد بنفسك لعلك تجد سبب عدم عمل الداله التى فى الكود 

لان قد يكون هناك خطأ فى الكود زي فصله ناقصه او مسافه او حرف خطأ 

لا ادري اين الخطأ 

ممكن يكون الكود قديم لا يعمل بنفس الاليه مش عارف

رابط هذا التعليق
شارك

28 دقائق مضت, عمر ضاحى said:

أنا اريد ان اجعل ليوم الجمعه داله منفرده 

أخي الدالة تعمل لأي يوم في الأسبوع ، لا عليك من عنوان الموضوع.
أستطيع أن أنزل مثالك وأضع لك الدالة كما تريد ، ولكن هذا السلوك لا يجعلك تزيد من تحصيلك العلمي ، اقرأ الدالة الأولى جيدا وافهمها ثم طبقها واختبرها ، هي أسهل من السهل نفسه.
تحتاج منك تاريخ البداية وتاريخ النهاية ورقم يوم الأسبوع.
حاول مرة أخرى وإن عجزت سوف أتدخل ، أرجو لك التوفيق.

تم تعديل بواسطه Hawiii
حصول تكرار لم أعرف سببه
رابط هذا التعليق
شارك

السلام عليكم

جرب الكود التالي

  Fri_Days = DCount("[HoliDays]", "tblHoliDays", _
                "WeekdayName(weekday([HoliDays]),true)= 'Fri'" & _
                " and [HoliDays] between#" & Format(begdate, "yyyy/mm/dd") & "#and #" & Format(enddate, "yyyy/mm/dd") & "#")
                Debug.Print "Fri_Dats:--->" & Fri_Days
                
'حساب عدد ايام السبت ضمن الاجازة الرسمية بين التاريخين

    sat_Days = DCount("[HoliDays]", "tblHoliDays", _
                "WeekdayName(weekday([HoliDays]),true)= 'Sat'" & _
                " and [HoliDays] between#" & Format(begdate, "yyyy/mm/dd") & "#and #" & Format(enddate, "yyyy/mm/dd") & "#")
                Debug.Print "Fri_Dats:--->" & Fri_Days

Project2.accdb

تحياتي

  • Like 1
رابط هذا التعليق
شارك

لصق الدالة من الموضوع الأصلي:
 

Function CountWkDay(ByVal Date1 As Long, _
                   ByVal Date2 As Long, _
                   WkDay As Byte) As Variant

 If Date1 <= Date2 Then
   Date1 = Date1 - 1
 Else
   Date2 = Date2 - 1
 End If

 Date1 = Fix((Date1 + (7 - WkDay)) / 7)
 Date2 = Fix((Date2 + (7 - WkDay)) / 7)

 CountWkDay = Abs(Date2 - Date1)
End Function

 

رابط هذا التعليق
شارك

طيب اتفضل هذا الكود

Dim VarDate As Date
Dim enddate As Date
Dim SFriday As Integer

'=========== ضع حقول التاريخ هنا ==========
	VarDate = [حقل التاريخ الأول]
	enddate = [حقل التاريخ الثاني]
'=====================================

Do While VarDate < enddate
    VarDate = DateAdd("D", 1, VarDate)
    If Weekday(VarDate, 2) = vbFriday Then
    SFriday = SFriday + 1
    End If
Loop
'حقل النتيجة 
[TextBox1] = SFriday

 

رابط هذا التعليق
شارك

منذ ساعه, محمد أبوعبدالله said:

السلام عليكم

جرب الكود التالي

  Fri_Days = DCount("[HoliDays]", "tblHoliDays", _
                "WeekdayName(weekday([HoliDays]),true)= 'Fri'" & _
                " and [HoliDays] between#" & Format(begdate, "yyyy/mm/dd") & "#and #" & Format(enddate, "yyyy/mm/dd") & "#")
                Debug.Print "Fri_Dats:--->" & Fri_Days
                
'حساب عدد ايام السبت ضمن الاجازة الرسمية بين التاريخين

    sat_Days = DCount("[HoliDays]", "tblHoliDays", _
                "WeekdayName(weekday([HoliDays]),true)= 'Sat'" & _
                " and [HoliDays] between#" & Format(begdate, "yyyy/mm/dd") & "#and #" & Format(enddate, "yyyy/mm/dd") & "#")
                Debug.Print "Fri_Dats:--->" & Fri_Days

Project2.accdb 596 kB · 1 download

تحياتي

للاسف لم يعمل معي ايضا 

هل هو  يعمل جيدا معك ؟

انا معايا اصدار 2019 هل لهذا تأثير محتمل ؟

وايضا اعتقد ان من الممكن ان يكون الخطأ فى هذا السطر

"WeekdayName(weekday([HoliDays]),true)= 'Fri'" & _

 

رابط هذا التعليق
شارك

1 ساعه مضت, Hawiii said:

أخي الدالة تعمل لأي يوم في الأسبوع ، لا عليك من عنوان الموضوع.
أستطيع أن أنزل مثالك وأضع لك الدالة كما تريد ، ولكن هذا السلوك لا يجعلك تزيد من تحصيلك العلمي ، اقرأ الدالة الأولى جيدا وافهمها ثم طبقها واختبرها ، هي أسهل من السهل نفسه.
تحتاج منك تاريخ البداية وتاريخ النهاية ورقم يوم الأسبوع.
حاول مرة أخرى وإن عجزت سوف أتدخل ، أرجو لك التوفيق.

 

انا اريد ان افهم هذا 

وفعليا اريد ان اتعلمها 

لكن لما اجرب بالاقى بيدينى خطأ والدنيا بتقف 

لان الداله محتاجه شرح توضيحي اكثر قليلا 

منذ ساعه, Hawiii said:

لصق الدالة من الموضوع الأصلي:
 

Function CountWkDay(ByVal Date1 As Long, _
                   ByVal Date2 As Long, _
                   WkDay As Byte) As Variant

 If Date1 <= Date2 Then
   Date1 = Date1 - 1
 Else
   Date2 = Date2 - 1
 End If

 Date1 = Fix((Date1 + (7 - WkDay)) / 7)
 Date2 = Fix((Date2 + (7 - WkDay)) / 7)

 CountWkDay = Abs(Date2 - Date1)
End Function

 

اعتذر لكن انا مش فاهم نقطه 

هنا انا استبدل Date1 ب begdate عندي ؟

منذ ساعه, د.كاف يار said:

طيب اتفضل هذا الكود

Dim VarDate As Date
Dim enddate As Date
Dim SFriday As Integer

'=========== ضع حقول التاريخ هنا ==========
	VarDate = [حقل التاريخ الأول]
	enddate = [حقل التاريخ الثاني]
'=====================================

Do While VarDate < enddate
    VarDate = DateAdd("D", 1, VarDate)
    If Weekday(VarDate, 2) = vbFriday Then
    SFriday = SFriday + 1
    End If
Loop
'حقل النتيجة 
[TextBox1] = SFriday

 

انا لا اريد ان تظهر النتيجه فى الفورم 

بل يحتفظ بها الاكسيس فى الذاكره للرجوع اليها ويحدث سبب وجودها وهو الداله التاليه التى سيكون بها العمليه الحسابيه

تم تعديل بواسطه عمر ضاحى
رابط هذا التعليق
شارك

سبحان الله ، هذا المنتدى يحتاج إلى محكمين من خارجه حتى لا يضيع الطلبة والمبتدئون.
هذا مثال للدالة التي نصحت بها ودالة الدكتور ، أرجو لصقه ثم تشغيل الإجاراءين لمعرفة الفرق بين النتائج ووقت التنفيذ.
كود في قمة الإتقان لم أرى شبيها له قبله ولن يأتي بعده ، واللي يحب يعترض يقابلني سنة 2500 ميلادي.
 

Function CountWkDay(ByVal Date1 As Long, _
                    ByVal Date2 As Long, _
                    WkDay As Byte) As Variant

 If Date1 <= Date2 Then
   Date1 = Date1 - 1
 Else
   Date2 = Date2 - 1
 End If

 Date1 = Fix((Date1 + (7 - WkDay)) / 7)
 Date2 = Fix((Date2 + (7 - WkDay)) / 7)

 CountWkDay = Abs(Date2 - Date1)
End Function


Function WkDayCount(VarDate As Date, enddate As Date) As Long
  'دالة د. كاف يار
  Dim SFriday As Long

  Do While VarDate < enddate
    VarDate = DateAdd("D", 1, VarDate)
    If Weekday(VarDate, 2) = vbFriday Then
      SFriday = SFriday + 1
    End If
  Loop

  WkDayCount = SFriday
End Function

Sub Test1()
  Dim Date1 As Date
  Dim Date2 As Date
  
  Date1 = DateSerial(2021, 7, 23)
  Date2 = DateSerial(2021, 7, 30)
  
  Debug.Print CountWkDay(Date1, Date2, vbFriday)
  Debug.Print WkDayCount(Date1, Date2)
End Sub

Sub Test2()
  Dim Date1 As Date
  Dim Date2 As Date
  Dim Start As Single
  
  Date1 = DateSerial(2021, 7, 23)
  Date2 = DateSerial(9000, 7, 25)
  
  Start = Timer
  Debug.Print CountWkDay(Date1, Date2, vbFriday), Timer - Start
  
  Start = Timer
  Debug.Print WkDayCount(Date1, Date2), Timer - Start
End Sub

 

  • Like 1
  • Haha 2
رابط هذا التعليق
شارك

 

4 دقائق مضت, Hawiii said:

سبحان الله ، هذا المنتدى يحتاج إلى محكمين من خارجه حتى لا يضيع الطلبة والمبتدئون.
هذا مثال للدالة التي نصحت بها ودالة الدكتور ، أرجو لصقه ثم تشغيل الإجاراءين لمعرفة الفرق بين النتائج ووقت التنفيذ.
كود في قمة الإتقان لم أرى شبيها له قبله ولن يأتي بعده ، واللي يحب يعترض يقابلني سنة 2500 ميلادي.
 

Function CountWkDay(ByVal Date1 As Long, _
                    ByVal Date2 As Long, _
                    WkDay As Byte) As Variant

 If Date1 <= Date2 Then
   Date1 = Date1 - 1
 Else
   Date2 = Date2 - 1
 End If

 Date1 = Fix((Date1 + (7 - WkDay)) / 7)
 Date2 = Fix((Date2 + (7 - WkDay)) / 7)

 CountWkDay = Abs(Date2 - Date1)
End Function


Function WkDayCount(VarDate As Date, enddate As Date) As Long
  'دالة د. كاف يار
  Dim SFriday As Long

  Do While VarDate < enddate
    VarDate = DateAdd("D", 1, VarDate)
    If Weekday(VarDate, 2) = vbFriday Then
      SFriday = SFriday + 1
    End If
  Loop

  WkDayCount = SFriday
End Function

Sub Test1()
  Dim Date1 As Date
  Dim Date2 As Date
  
  Date1 = DateSerial(2021, 7, 23)
  Date2 = DateSerial(2021, 7, 30)
  
  Debug.Print CountWkDay(Date1, Date2, vbFriday)
  Debug.Print WkDayCount(Date1, Date2)
End Sub

Sub Test2()
  Dim Date1 As Date
  Dim Date2 As Date
  Dim Start As Single
  
  Date1 = DateSerial(2021, 7, 23)
  Date2 = DateSerial(9000, 7, 25)
  
  Start = Timer
  Debug.Print CountWkDay(Date1, Date2, vbFriday), Timer - Start
  
  Start = Timer
  Debug.Print WkDayCount(Date1, Date2), Timer - Start
End Sub

 

لا يمكننى ان اجرء على الاعتراض

سوف احاول مره اخرى ان اطبق هذا

بعتذر اذا كنت اثقلت عليكم

وكل عام وحضراتكم بخير

تم تعديل بواسطه عمر ضاحى
رابط هذا التعليق
شارك

هذا مثال لسؤالك بأستخدام استعلام .. يعطيك كم عدد ايام الجمعة وكم عدد ايام السبت .. والايام المتبقية بعد طرح الفرق بين التاريخين واستخراج ايام الجمعة والسبت ... وتستطيع انت التحكم فيهما كما شأت

date diff.accdb

  • Like 1
رابط هذا التعليق
شارك

1 ساعه مضت, Hawiii said:

لصق الدالة من الموضوع الأصلي:
 

Function CountWkDay(ByVal Date1 As Long, _
                   ByVal Date2 As Long, _
                   WkDay As Byte) As Variant

 If Date1 <= Date2 Then
   Date1 = Date1 - 1
 Else
   Date2 = Date2 - 1
 End If

 Date1 = Fix((Date1 + (7 - WkDay)) / 7)
 Date2 = Fix((Date2 + (7 - WkDay)) / 7)

 CountWkDay = Abs(Date2 - Date1)
End Function

 

 If begdate <= enddate Then
   begdate = begdate - 1
 Else
   enddate = enddate - 1
 End If

 Date1 = Fix((begdate + (7 - WkDay)) / 7)
 Date2 = Fix((enddate + (7 - WkDay)) / 7)

 CountWkDay = Abs(enddate - begdate)

 

 

هذا بعد التعديل للعمل عندي

والنتيجة اخرجلى عدد 18 

وانا اريد عدد يوم الجمعه خلال الفتره 

يعنى مثلا اليوم تاريخ 20/07/2021

ولو قولت ليوم 27/07/2021

هنا هيكون النتيجه هي ( 1 يوم جمعه  و  1 يوم سبت خلال هذه الفتره )

وهذا ما اريده

رابط هذا التعليق
شارك

8 minutes ago, عمر ضاحى said:

 If begdate <= enddate Then
   begdate = begdate - 1
 Else
   enddate = enddate - 1
 End If

 Date1 = Fix((begdate + (7 - WkDay)) / 7)
 Date2 = Fix((enddate + (7 - WkDay)) / 7)

 CountWkDay = Abs(enddate - begdate)

 

 

هذا بعد التعديل للعمل عندي

والنتيجة اخرجلى عدد 18 

وانا اريد عدد يوم الجمعه خلال الفتره 

يعنى مثلا اليوم تاريخ 20/07/2021

ولو قولت ليوم 27/07/2021

هنا هيكون النتيجه هي ( 1 يوم جمعه  و  1 يوم سبت خلال هذه الفتره )

وهذا ما اريده

انظر للنموذج الذي ارفقته .. وهذه النتيجة

image.png.d9d0b9e5b91e88315d3ff5f1d8aaf7cc.png

  • Thanks 1
رابط هذا التعليق
شارك

2 دقائق مضت, Eng.Qassim said:

انظر للنموذج الذي ارفقته .. وهذه النتيجة

image.png.d9d0b9e5b91e88315d3ff5f1d8aaf7cc.png

انا حملت النموذج 

وهو شغال تمام 

انا لى طلبين من حضرتك 

1- لو حابب اكتب هذا الكود ب VBA علشان احاول اطبقه عندي افعلها ازاى 

2-استأذن حضرتك ان تنظر الى الملف المرفق وتنظر الى الاكواد وتشوف الاليه التى يعمل بها الكود 

واستسمحك ان يكون صبرك معي طويل حبه حبتين كده 😁

وانظر الى نتيجة الكود الخاص ب holidaysdate = 

هتلاقيه شغال تمام 

لكن فى الكود التالى والذى لا يعمل 

رابط هذا التعليق
شارك

استاذي العزيز عمر .. اعتقد بان سؤالك كما في الصورة

اذا اخترنا فقط يوم الجمعة فتظهر النتيجة ... واذا اخترنا الجمعة والسبت فتظهر النتيجة

واذا اخترنا عدم وجود الجمعة والسبت فتظهر النتيجة

image.png.88f966507bf31debdee4c975ebe20c79.png

رابط هذا التعليق
شارك

14 دقائق مضت, Eng.Qassim said:

استاذي العزيز عمر .. اعتقد بان سؤالك كما في الصورة

اذا اخترنا فقط يوم الجمعة فتظهر النتيجة ... واذا اخترنا الجمعة والسبت فتظهر النتيجة

واذا اخترنا عدم وجود الجمعة والسبت فتظهر النتيجة

image.png.88f966507bf31debdee4c975ebe20c79.png

لا اكذب عليك لم تكن هكذا رؤيتى للبرنامج 

كنت اريد ان اجعل هذا الاختيارات بعيد عن المستخدم لان هذا سيكون سيستم لا يمكن ان يكون بشكل مع موظف وبطريقه اخرى مع موظف 

بل كنت اريد ان اجعل النظام من الكود نفسه

اى 

اذا اردت ان اجعل النظام يحسب يوم الجمعه فقط او الجمعه والسبت او بدون كله فى هذا السطر

  Netholidyas = holidaysdat - Fri_Days - sat_Days

حيث ان لكل عنصر من الثلاثه داله خاصه به 

holidaysdat بيستمد معلوماته من جدوله 

Fri_Days يستمد معلوماته من عدد ايام الجمعه بين التاريخين 

sat_Days يستمد معلوماته من عدد ايام السبت بين التاريخين 

فكيف اعيد الصياغه من جديد مع الشرح علشان افهم ليه انا هختار الداله دي واترك الداله دي 

هذا اذا كان لن يتعبكم 

فانا اشعر بالاحراج انى اتعبت كل العمالقه امثالكم 

رابط هذا التعليق
شارك

انا بالفعل فكرت فيها  (ف هي فكره عبقريه من المهندس قاسم ) بارك الله فيه

لكن مش متأكد على كيفيت التنفيذ 

هل اعمل جدول خاص بهذا الاختيار 

ومنه يستمد الكود المعلومه ولا فى حاجه اسهل

رابط هذا التعليق
شارك

يا جماعة الخير 

مش عارف اقول ايه بس عرفة فين الغلط 

حاجه لم اكن اتوقعها ابدا 

الا وهي التسميه ( السبت الجمعه )

فى الكود كانت مكتوبه بالانجليزي 

ولما كتبتها عربي اشتغلت 

مش عارف اقول ايه بس دى نقطه الى حد ما تقلق شوي 

لان معني هذا ان الكود يعمل او لا يعمل طبقا للغة جهاز المستخدم 

فهل يمكن ان نعمل شئ حيال هذا الامر 

sat_Days = DCount("[HoliDays]", "tblHoliDays", _
                "WeekdayName(weekday([HoliDays]),true)= 'السبت'" & _
                " and [HoliDays] between #" & begdate & "# and #" & enddate & "#")
                Debug.Print "sat_Days:--->" & sat_Days

 

تم تعديل بواسطه عمر ضاحى
رابط هذا التعليق
شارك

3 ساعات مضت, Eng.Qassim said:

هذا مثال لسؤالك

مع أني لي دارية بدوال التاريخ للنظام ولكنها لم تخطر على بالي ، استخدامك للدالة DateDiff مكافئ للدالة التي نصحت بها ولكن أدخلت عليها نفس التعديل للدالة الأولى لتصبح كالتلي:
 

Function WeekDiff(ByVal Date1 As Date, _
                  ByVal Date2 As Date, _
                  WkDay As VbDayOfWeek) As Long

  If Date1 <= Date2 Then
    Date1 = Date1 - 1
  Else
    Date2 = Date2 - 1
  End If
  
  WeekDiff = Abs(DateDiff("ww", Date1, Date2, WkDay))
End Function

 

تم تعديل بواسطه Hawiii
إضافة دالة Abs
  • Like 1
رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information