السلام عليكم ورحمة الله وبركاته
اسعد الله اوقاتكم بكل خير،،،
وجدة موضوع للاخ سعود مشابه لما أبحث عنه ولكن يعمل بطريقة يدوية
الفكرة التي اتحدث عنها متابعة لتاريخ انتهاء الوثائق مثل رخصة بطاقة عمل.... ألخ يتم اضافتهم في DataGridview لكل من تبقى على تاريخ الانتهاء 90 يوم وأقل
اتمنى ان تكون وضحت الفكرة
^_^
لا إله إلا الله وحده لا شريك له، لهُ الملك وله الحمد وهو على كل شئ قدير،،،،
(متابعة لتاريخ انتهاء الوثائق) يعني أن تقوم بالاستعلام كل مدة حسب ما يناسبك
فقد تجد أن من الأنسب لك أن تقوم به في بداية تشغيل البرنامج في كل مرة
وقد تجد أن من الأنسب لك أن تقوم به في داخل Timer يعمل كل ساعة مثلا
ولكنه كان يريد تنبيه عند 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
فهل الكود سليم ؟؟
لا إله إلا الله وحده لا شريك له، لهُ الملك وله الحمد وهو على كل شئ قدير،،،،
قاعدة البيانات من نوع اكسس لذلك عدلت الاستعلام ليناسب قاعدة البيانات
كود :
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