السلام عليكم ورحمة الله وبركاته
اسعد الله اوقاتكم بكل خير،،،
وجدة موضوع للاخ سعود مشابه لما أبحث عنه ولكن يعمل بطريقة يدوية
الفكرة التي اتحدث عنها متابعة لتاريخ انتهاء الوثائق مثل رخصة بطاقة عمل.... ألخ يتم اضافتهم في 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
بارك الله فيك وجزاك الله كل خير نفع الله بك وسهل أمرك
شكرا شكرا شكراً