تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مساعدة البحث بين تاريخين
#3
التعامل مع الأمر كـ حقل نصي : 
مثلا نصنع الدالة التي تعيد التاريخ بطريقة الصيغة الرقمية : القيمة الأكبر من اليسار ثم الأصغر عن يمينها فـ الأصغر.. 
أقصد السنين ثم الشهور ثم الأيام ..
كود :
Public Function ReFormatDate(pDate As DateTime) As String
   Return pDate.ToString("yyyy/MM/dd")
End Function

نحتاج التعديل على أكواد الحفظ والبحث ..
كود زر الحفظ  يصبح  :
كود :
Private Sub BtnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSave.Click
   Insert_Notes(ID.Text, Ename.Text, UpGrade.Text, ReFormatDate(DateG.Value))
   SelectAll_Notes(dgv_Notes)
   ClearControls()
End Sub

كود زر البحث يصبح :
كود :
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
   SEARCH2DATE(ReFormatDate(DateTimePicker1.Value), ReFormatDate(DateTimePicker2.Value))
   dgv_Notes.DataSource = DT_SEARCH
End Sub

كود البحث يصبح (قارن بين الأكواد التي تم تعطيلها وبين الأكواد التي حلت محلها):
كود :
'Public Sub SEARCH2DATE(ByVal DateG As Date, ByVal DateG2 As Date)
Public Sub SEARCH2DATE(ByVal DateG As String, ByVal DateG2 As String)
   DT_SEARCH.Clear()
   Dim CMDSEARCH As New OleDbCommand(" SELECT * FROM Notes WHERE DateG >= @DateG AND DateG <= @DateG2", Con)
   CMDSEARCH.Parameters.Clear()
   'CMDSEARCH.Parameters.Add("@DateG", OleDbType.Date).Value = "#" & DateG & "#"
   CMDSEARCH.Parameters.Add("@DateG", OleDbType.Char).Value = DateG
   'CMDSEARCH.Parameters.Add("@DateG2", OleDbType.Date).Value = "#" & DateG2 & "#"
   CMDSEARCH.Parameters.Add("@DateG2", OleDbType.Char).Value = DateG2

   Try
       If Con.State = 1 Then Con.Close()
       Con.Open()
       DT_SEARCH.Load(CMDSEARCH.ExecuteReader)
       Con.Close()
       CMDSEARCH = Nothing
   Catch ex As Exception
       Con.Close()
       MsgBox(Err.Description, MsgBoxStyle.Information)
   Finally
       If Con.State = ConnectionState.Open Then Con.Close()
   End Try
End Sub

بالرغم من أنك كتبت أكواد خطأ - لكن الفيجول بيزك دوت نت لم ينبهك لها وحاول أن يغيرها ويصححها لما يناسب البرنامج
ومع ذلك لم تحصل على ما تريد .. فالخطأ تجاوز حدود الفيجول بيزك.. (لأنه لا يستطيع أن يصحح كل شيء).

وهذه من مشاكل الفيجول بيزك ..  مقارنة بلغات برمجة أخرى كـ السي شارب (كمثال من نفس البيئة)
حيث أن السي شارب تمنعك من إكمال كتابة الكود إن أخطأت بنوع المتغير الذي تستخدمه .. (فكل شيء يجب أن يكون في محله)..

إن كنت لازلت تحت الثلاثين من عمرك، نصيحة توجه لـ السي شارب.. ولا تضيع وقتك بحصر خبرتك في تعلم الفيجول بيزك ..
ومع ذلك فكل شيء تنفذه على السي شارب ستستطيع تنفيذه على الفيجول بيزك(يعني لن تفقد مهارتك في هذه اللغة)..

في البداية ستواجه صعوبات كثيرة وكبيرة، ولكن خلال فترة ستجد كل شيء أبسط وأسهل وأسلسل بالتعلم.
التحسينات والتسهيلات الدورية التي تزود بها السي شارب تجاوزت بساطة الفيجول بيزك بمراحل كبيرة جداً..
ولم تعد مايكروسوفت تزود الفيجول بيزك بها .. فقد توقفت عن دعمها من هذه الناحية..

نصيحة / أغتنم وقتك من الآن ..
قال صلى الله عليه وسلم: 
«كلمتان خفيفتان على اللسان 
ثقيلتان في الميزان،حبيبتان إلى الرحمن: 
سبحان الله وبحمده، سبحان الله العظيم».
الرد }}}
تم الشكر بواسطة: أبووسم , أبووسم , salamandal


الردود في هذا الموضوع
RE: مساعدة البحث بين تاريخين - بواسطة Taha Okla - 16-08-24, 07:09 AM


التنقل السريع :


يقوم بقرائة الموضوع: