السلام عليكم ورحمة الله وبركاته
استخدمت هذه الدالة في الحصول على أعلى رقم داخل حقل في قاعدة البيانات بشروط معينه وهي تعمل بكفاءه مع الحقول الرقمية
هذه هي الدالة
رمز برمجي:
Function Dmaxd(ByVal SearchFld As String, ByVal SearchTbl As String, ByVal SearchCriteria As String) As Object
Dim Conn5 As New SqlConnection(ConnectionStringDialogTest.My.MySettings.Default.contodb)
Dim Cmd5 As SqlClient.SqlCommand
Dim Reader5 As SqlClient.SqlDataReader
Dim Value5 As Object = DBNull.Value
Dmaxd = Nothing
Cmd5 = New SqlClient.SqlCommand("SELECT max(" & SearchFld & ") as id FROM " & SearchTbl & " WHERE " & SearchCriteria, Conn5)
Conn5.Open()
Reader5 = Cmd5.ExecuteReader()
If Microsoft.VisualBasic.Left(SearchFld, 1) = "[" Then
SearchFld = Microsoft.VisualBasic.Right(SearchFld,
Microsoft.VisualBasic.Len(SearchFld) - 1)
End If
If Microsoft.VisualBasic.Right(SearchFld, 1) = "]" Then
SearchFld = Microsoft.VisualBasic.Left(SearchFld,
Microsoft.VisualBasic.Len(SearchFld) - 1)
End If
If (Reader5.Read()) Then
Value5 = IIf(Reader5.GetValue(Reader5.GetOrdinal(SearchFld)) Is Nothing, "",
Reader5.GetValue(Reader5.GetOrdinal(SearchFld)))
End If
Dmaxd = Value5
Conn5.Close()
End Functionوهذا هو الاستدعاء
رمز برمجي:
Me.date22.Text = Dmaxd("id", "wared_a", "tyear='" & 1432 & "'")وهذه الدالة تعمل بشكل ممتاز مع الحقول الرقمية للحصول على أعلى قيمة في الحقل
ولكن عند التعامل مع حقل تاريخ لا تعمل ( استبدل الحقل id بحقل يحتوي على توايخ datea وذلك للحصول على أعلى تاريخ في حقل معين داخل الجدول
رمز برمجي:
Me.date22.Text = Dmaxd("datea", "wared_a", "tyear='" & 1432 & "'")أرجوا بيان مكان الخطأ وتعديل الدالة
مع التحية