29-01-17, 07:15 AM
(28-01-17, 11:43 PM)ابو ليلى كتب : العفو اخي الكريم , لا عليك من الطريقة اذا لم تناسبك
من خلال سؤالك انا ارى انك تريد فحص المستخدمين الذين قاربة مدتهم على الانتهاء وفق التاريخ الذي تريده
فمثلاً انت تريد عرض المستخدمين الذين بقي على انتهائهم يومين , اذاً فانت امام جدول لانه قد يكون هناك اكثر من مستخدم يطابق الشرط .
لذلك انا اقترحت عليك الطريقة السابقة من جهة قاعدة البيانات لتوفر عليك ما هو غير ضروري من جهة البرنامج
و بكل الاحوال حتى لو حاولت تطبقها عن طريقة الكود وفق دالة ما فانت ستعود لنفس الطريق السابق و تطول عليك المسافة
انظر لهذه الدالة
PHP كود :
Public Function GetDays(Num As Long) As DataTable
Dim _Select As String = "Select user_name ,(DateDiff(""d"",[D1],[D2])) As EndAfter From user_data Where DateDiff(""d"",[D1],[D2]) " & "<=" & Num
Using Cmd As New OleDbCommand With {.CommandText = _Select, .Connection = DBConn}
Dim Reader As OleDbDataReader = Cmd.ExecuteReader
Dim Dt As New DataTable
Dt.Load(Reader)
Return Dt
End Using
End Function
حيث الوسيطة Num تمثل عدد الايام التي تريد الفحص وفقها,والدالة تعيد جدول بالمستخدمين الذين يحققون الشرط و الجدول يحتوي على حقلين (اسم المستخدم وعدد الايام المتبقية)
ضع هذه الدالة في المديول لديك و جرب استدعائها في بداية اقلاع النموذج لديك , بعد وضع اداة تستقبل بيانات الجدول مثل DataGridView
سترى انك قد استقبلت بيانات المستخدمين الموافقين للشرط .PHP كود :
Private Sub FRm_mang_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Button1_Click(sender, e)
DataGridView1.DataSource = GetDays(2)
End Sub
كما ويمكنك الفحص وفق مستخدم واحد فقط وفق دالة مثل هذه
الدالة تعيد نص فيه اسم المستخدم الذي يحقق الشرط و لها عدة وسائطPHP كود :
Public Function GetDays(ByVal Value As String, ByVal Date1 As Date, Date2 As Date, Num As Long) As String
Dim _Select As String = "Select user_name From user_data Where user_name Like '" & Value & "' And " & DateDiff(DateInterval.Day, Date1, Date2) & "<=" & Num
Using Cmd As New OleDbCommand With {.CommandText = _Select, .Connection = DBConn}
Dim Reader As OleDbDataReader = Cmd.ExecuteReader
Dim Msg As String = String.Empty
While Reader.Read
If Reader.HasRows Then
Msg = Reader.Item("user_name")
End If
End While
If Not String.IsNullOrEmpty(Msg) Then
Return Msg
Else
Return Nothing
End If
End Using
End Function
value=اسم المستخدم
Date1=تاريخ البداية
Date2=تاريخ النهاية
Num=المدة المطلوبة للفحص وهي رقم
الاستدعاء وفق برنامجك
PHP كود :
Private Sub ListBox1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListBox1.Click
If ListBox1.Items.Count = 0 Then Exit Sub
ShowData()
MsgBox(GetDays(user_name.Text, D1.Value, D2.Value, 5))
End Sub
بالتوفيق
اسعد الله صباحكك اخي الكريم ..
السموحه ع تاخر الرد في البداية ..
ثانيا احرحتني صراحه بهذا الشرح ومجهود كله ..
رح احاول اني اطبقه ليوم باذن الله عل وعسى اعرف اطبقه عدل لاني ما لذاك زود هههههه ورح اعود لك بالنتيجه باذن الله
يوم سعيد باذن الله لك
