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

نسخة كاملة : فعل حدث قبل تاريخ محدد بيومين Acces
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله وبركاته

إخواني الأعزاء اريد المساعدة في إظهار المنتجات اللتي سوف تنتهي صلاحيتها قبل يومين او بتحديدها من المستخدم

1 - لا أريد إظهار المنتج منتهي الصلاحية
2 - لماذا لم يظهر منتج الزبادي ؟!


كود المشروع

كود :
Imports System.Data.OleDb
Public Class Form1
   Public con As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Pager.accdb")
   Dim da As New OleDbDataAdapter
   Dim dt As New DataTable
   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
       Dim da As New OleDbDataAdapter("Select * from tbl_Pager", con)
       Dim dt As New DataTable
       da.Fill(dt)
       DataGridView1.DataSource = dt
       DataGridView1.Columns(0).Visible = False
       DataGridView1.Columns(1).HeaderText = "اسم المنتج" 'تغيير اسم العمود في الداتا قريد
       DataGridView1.Columns(1).Width = 100 'تغيير عرض العمود في الداتا قريد
       DataGridView1.Columns(2).HeaderText = "تاريخ الإنتهاء"
       DataGridView1.Columns(2).AutoSizeMode = DataGridViewAutoSizeColumnsMode.Fill 'تمديد العمود الاخير لنهاية الفورم
   End Sub

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       Me.ListBox1.Items.Clear()

       Dim conn As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Pager.accdb")

       Dim sql As String = " SELECT *, DATEDIFF('d',Now(),[date2]) AS remDays  " & _
                           " FROM   [tbl_Pager] " & _
                           " WHERE  DATEDIFF('d',Now(),[date2]) < @days " & _
                           " ORDER BY [date2] "

       Dim com As New OleDb.OleDbCommand(sql, conn)
       com.Parameters.AddWithValue("@days", TextBox1.Text) '<<<<<<<<< حدد عدد الأيام
       Dim dt As New DataTable
       Dim da As New OleDb.OleDbDataAdapter(com)
       If da.Fill(dt) > 0 Then

           For Each r As DataRow In dt.Rows
               Me.ListBox1.Items.Add(r("date2") & " (" & r("remDays") & ") = " & r("Name_1"))
           Next

           MessageBox.Show("يوجد عدد [" & dt.Rows.Count & "] اقترب موعد انتهائها" & vbNewLine & _
                           "وأقربها بقي له [" & dt.Rows(0).Item("remDays") & "] يوم/أيام")

       End If

   End Sub


End Class
إقتباس :إخواني الأعزاء اريد المساعدة في إظهار المنتجات اللتي سوف تنتهي صلاحيتها قبل يومين او بتحديدها من المستخدم
هل تقصد بالفعل قبل يومين ام بعد يومين
(11-08-17, 12:08 AM)سعود كتب : [ -> ]
إقتباس :إخواني الأعزاء اريد المساعدة في إظهار المنتجات اللتي سوف تنتهي صلاحيتها قبل يومين او بتحديدها من المستخدم
هل تقصد بالفعل قبل يومين ام بعد يومين

قبل يومين يالغالي Heart
(11-08-17, 12:09 AM)سعود الشامان كتب : [ -> ]
(11-08-17, 12:08 AM)سعود كتب : [ -> ]
إقتباس :إخواني الأعزاء اريد المساعدة في إظهار المنتجات اللتي سوف تنتهي صلاحيتها قبل يومين او بتحديدها من المستخدم
هل تقصد بالفعل قبل يومين ام بعد يومين

قبل يومين يالغالي Heart



اذا كان القصد اظهار النتائج التي ستنتهي بعد يوم او يومين او بعد س يوم انظر للمثال

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

كود :
Public Class Form1
   Dim con As New OleDb.OleDbConnection("provider=microsoft.ace.oledb.12.0;data source=" & Application.StartupPath & "\db.accdb")
   Dim dt As DataTable
   Dim da As OleDb.OleDbDataAdapter
   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       Dim dfrom As Date = Now.Date.ToShortDateString
       Dim d As Integer = 0
       If rafter.Checked Then
           d = Val(TextBox1.Text)
       ElseIf rbefor.Checked Then
           d = Val(-Val(TextBox1.Text))
       End If
       dt = New DataTable
       da = New OleDb.OleDbDataAdapter("", con)
       da.SelectCommand.CommandText = "select * from tb where tfinish=@tfinish"
       da.SelectCommand.Parameters.AddWithValue("@tfinish", dfrom.AddDays(d))
       da.Fill(dt)
       ListBox1.DataSource = dt
       ListBox1.DisplayMember = "tn"
   End Sub
End Class
عدلت على المثال بان اضفت زري راديو  rafter and rbefor

المثال مرفق بعد التعديل

الله يسسعدك يا سعود

انا متابع معكم لكن كنت اعتقد ان القاعده اكسل وليست اكسس

تم تحميل المثال وحصلت على ما اريد شكرا لكك

رابط المشاركة للفائده

http://vb4arb.com/vb/showthread.php?tid=...#pid103916