• 0
رضا عقيل

أرجوا توضيح الخطأ في هذه الدالة

سؤال

السلام عليكم ورحمة الله وبركاته

استخدمت هذه الدالة في الحصول على أعلى رقم داخل حقل في قاعدة البيانات بشروط معينه وهي تعمل بكفاءه مع الحقول الرقمية

هذه هي الدالة

رمز برمجي:

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 & "'")

أرجوا بيان مكان الخطأ وتعديل الدالة

مع التحية

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

4 إجابة على هذا السؤال .

  • 0

السلام عليكم ورحمه الله وبركاته

اخي الملاحظ انك مررت 1432 كنص وليس كتاريخ؟!!

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ورحمه الله وبركاته

اخي الملاحظ انك مررت 1432 كنص وليس كتاريخ؟!!

السلام عليكم

1432 هو فعلاً حقل نص به السنة فقط وليس حقل تاريخ

بتفصيل أكثر

أريد أكبر تاريخ من حقل datea من جدول wared_a بشرط ان يكون حقل السنة tyear يساوي 1432 ( حقل السنة به السنةو فقط وهو حقل نصي)

مع ملاحظة انني لو اتبدلت حقل التاريخ datea بأي حقل رقم آخر للحصول على أعلى قيمة رقميه به تعمل الدالة بكفاءه

إذا كانت هناك طريقه أخرى سهله أرجوا كتابة الكود كامل بما فيه جملة الاتصال ...

مع خالص التحية والتقدير وجزاك الله خيراً على سرعة التفاعل

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ورحمه الله وبركاته

اخي ممكن ذكر نوع الحقل وماهو المرجع من الداله؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اخي الكريم

حتى تقوم ب جلب اكبر قيمة تحول قيمة التاريخ المدخلة كنص الى رقم -على اعتبار انك استخدمت رقم السنة فقط لو كان تاريخ كامل لن تلصح هذه الطريقة - و باستخدام الدالة convert عند كتابة جملة ال sql و تحوله لقيمة رقمية و من ثم تطلب اكبر قيمة في الجدول عن طريق الدالة max()

امل اني افدتك لحل المشكلة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .