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

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

قام بنشر

وعليكم السلام ورحنة الله تعالى وبركاته

 

ممكن من خلال الكود التالى  فى وحده نمطية عامة مثلا باسم : basGetDatesBetween

Public Function GetDatesBetween(ByVal dtmStartDate As Date, ByVal dtmEndDate As Date) As String
    If dtmStartDate > dtmEndDate Then
        GetDatesBetween = ""
    Exit Function
    End If
    
    Dim dtmCurrentDate As Date
    Dim arrDates() As String
    ReDim arrDates(0 To DateDiff("d", dtmStartDate, dtmEndDate))
    Dim lngIndex As Long
    For dtmCurrentDate = dtmStartDate To dtmEndDate
        arrDates(lngIndex) = Format(dtmCurrentDate, "yyyy-mm-dd")
        lngIndex = lngIndex + 1
    Next dtmCurrentDate
    GetDatesBetween = Join(arrDates, " | ")
End Function

على ان يكون الاستدعاء فى الاستعلام لعمل حقل التواريخ بالشكل التالى
 

DateList: GetDatesBetween([startA],[endA])

لتكون جملة الاستعلام كاملة كما يلى

SELECT 
    tbl1.user_id, 
    GetDatesBetween([startA], [endA]) AS DateList
FROM 
    tbl1;

ويمكن خفظ الاستعلام مثلا باسم : qryUserDateList

لا اعرف هل الفكرة تلبى الطلب ام لا


خطر على بالى ايضا اضفة استعلام جديد يعتمد على الاستعلام السابق
لنعط مثلا للاستعلام الجديد اسم qryFilteredDates
وتكون جملة الاستعلام بالشكل التالى 

 

SELECT *
FROM qryUserDateList
WHERE DateList LIKE "*" & Format([InbutFromDate], "yyyy-mm-dd") & "*"
    OR DateList LIKE "*" & Format([InbutToDate], "yyyy-mm-dd") & "*";

 

أو مثلا لو أردنا تمرير التواريخ من نموذج 

SELECT *
FROM qryUserDateList
WHERE DateList LIKE "*" & Format(Forms!frmSearch!txtFromDate, "yyyy-mm-dd") & "*"
    OR DateList LIKE "*" & Format(Forms!frmSearch!txtToDate, "yyyy-mm-dd") & "*";

وظيفة الاستعلام الاخير qryFilteredDates
أذا كنا نريد البحث في DateList إن كانت تحتوي على أي تاريخ بين النطاقين

وذلك لأنه لا يمكن تصفية نتيجة دالة GetDatesBetween بشكل مباشر باستخدام WHERE

 

قام بنشر

تمام ابا جودي

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

باقي تكة

1- ان تكون النتيجة كسجلات  ومرتبطة بالمعرف

يعني المعرف 11 يكون له 4 تواريخ فوق بعض  والمعرف 22 امامه تاريخ واحد

وتسلم يالغالي والف شكر .. 

  • Thanks 1
قام بنشر

يمكن كلمة " العرض في حقل واحد "  التي في العنوان عملت لبس في فهم المطلوب .. سوف اعدلها الى "العرض في قائمة"

  • ابوخليل changed the title to هل يمكن العرض في قائمة واحدة في استعلام تواريخ بين تاريخين من حقلين في جدول باستخدام SELECT فقط
قام بنشر

يعني اعتبر المسألة صعبة ؟

فقط هي فكرة ان يتم انشاء استعلام شبيه بالجدول

اذا صعبة ممكن ادخل جدول مساعد للمقارنة

دعني ارفع مثالا بذلك

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.

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

×
×
  • اضف...

Important Information