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

نسخة كاملة : بخصوص متابعة تواريخ انتهاء الوثائق
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله وبركاته
اسعد الله اوقاتكم بكل خير،،،
وجدة موضوع للاخ سعود مشابه لما أبحث عنه ولكن يعمل بطريقة يدوية
الفكرة التي اتحدث عنها متابعة لتاريخ انتهاء الوثائق مثل رخصة بطاقة عمل.... ألخ يتم اضافتهم في DataGridview لكل من تبقى على تاريخ الانتهاء 90 يوم وأقل
اتمنى ان تكون وضحت الفكرة 
^_^
وعليكم السلام ورحمة الله وبركاته

(متابعة لتاريخ انتهاء الوثائق) يعني أن تقوم بالاستعلام كل مدة حسب ما يناسبك
فقد تجد أن من الأنسب لك أن تقوم به في بداية تشغيل البرنامج في كل مرة
وقد تجد أن من الأنسب لك أن تقوم به في داخل Timer يعمل كل ساعة مثلا
صحيح اخي العزيز عيد الاستعلام يكون بتاريخ اليوم فقط
للرفع
سبحان الله وبحمده سبحان الله العظيم
كان هناك موضوع مشابه بالامس : http://vb4arb.com/vb/showthread.php?tid=36253

ولكنه كان يريد تنبيه عند 7 ايام اعتقد اذا عدلناها ل 90 يوم نحصل على النتيجة المطلوبة :

في حدث اللود في الفورم : 

كود :
      Dim query As String = "SELECT * FROM documents
                              WHERE CAST(DueDate AS date) <= CAST(DATEADD(day,90, GETDATE()) AS date)
                              AND   CAST(DueDate AS date) >= CAST(getdate() AS date)"

      Dim cmd As New SqlCommand(query, conn)
      Dim sda As New SqlDataAdapter(cmd)
      Dim dt As New DataTable
      Dim RowCount As Integer

      conn.Open()

      RowCount = sda.Fill(dt)

      conn.Close()

      If RowCount > 0 Then

          'عرض تفاصيل الوثائق
          DataGridView1.DataSource = dt

      End If

عدل documents الى اسم جدول الوثائق وكذلك DueDate الى اسم عمود تواريخ الانتهاء

وراجع ايضا اجابات الاساتذه الافاضل في المشاركة التي رابطها بالاعلى فهي مفيدة جدا
يسلام هذا المطلوب
بارك الله فيك
تم تجربة الكود واظهر فقط من تبقى على تاريخ الانتهاء 90 يوم.
قمت بإضافة تعديل على الاستعلام ليظهر ايضا من هو أقل من 90 يوم كما يلي:
كود :
       Dim query As String = "SELECT * FROM documents
                             WHERE CAST(DueDate AS date) <= CAST(DATEADD(day,90, GETDATE()) AS date)
                               OR   CAST(DueDate AS date) = CAST(DATEADD(day,90, GETDATE()) AS date)
                                 AND   CAST(DueDate AS date) >= CAST(getdate() AS date)"

       Dim cmd As New SqlCommand(query, conn)
       Dim sda As New SqlDataAdapter(cmd)
       Dim dt As New DataTable
       Dim RowCount As Integer

       conn.Open()

       RowCount = sda.Fill(dt)

       conn.Close()

       If RowCount > 0 Then

           'عرض تفاصيل الوثائق
           DataGridView1.DataSource = dt

       End If
فهل الكود سليم ؟؟
الكود يظهر التواريخ اقل من 90 ايضا هذه هي وظيفة علامة الاصغر من او يساوي في السطر التالي 
كود :
                             WHERE CAST(DueDate AS date) <= CAST(DATEADD(day,90, GETDATE()) AS date)


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

يعمل عندي بشكل طبيعي 

[attachment=25553]

اذا قمت بارفاق مثال صغير ممكن نعدل عليه لنعلم من اين المشكلة
السلام عليكم ورحمة الله وبركاته
أعتذر عن التأخير أخواني
مرفق لكم ملف مثال
قاعدة البيانات من نوع اكسس لذلك عدلت الاستعلام ليناسب قاعدة البيانات

كود :
   Sub ff()
       Dim query As String = "SELECT * FROM TBLithem
                             WHERE    DateValue(EXPDAT) <= DateValue(DATEADD('d',90, now()))
                             AND    DateValue(EXPDAT) >= DateValue(now())"

       Dim cmd As New OleDbCommand(query, Con)
       Dim da As New OleDbDataAdapter(cmd)
       Dim dt As New DataTable

       Dim RowCount As Integer

       Con.Open()

       RowCount = da.Fill(dt)

       Con.Close()

       If RowCount > 0 Then

           'عرض تفاصيل الوثائق
           DataGridView1.DataSource = dt

       End If
   End Sub
بارك الله فيك وجزاك الله كل خير نفع الله بك وسهل أمرك
شكرا شكرا شكراً