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

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


كود :
 ElseIf IsDate(TextBox1.Text.Trim) = True Then
               Dim DataAdapter As New OleDbDataAdapter("SELECT * FROM TB1 WHERE DATENOW_TB  LIKE '%" & Trim$(Format(TextBox1.Text, "dd/MM/yyyy")) & "%'", con)
               con.Open()
               DataSet1.Clear()
               DataAdapter.Fill(DataSet1, "TB1")
               
               con.Close()
PHP كود :
Dim DataAdapter As New OleDbDataAdapter("SELECT * FROM TB1 WHERE (DATENOW_TB=@d) "con)
DataAdapter.SelectCommand.Parameters.AddWithValue("@d"CDate(TextBox1.Text)) 
(23-02-18, 10:05 PM)طالب برمجة كتب : [ -> ]
PHP كود :
Dim DataAdapter As New OleDbDataAdapter("SELECT * FROM TB1 WHERE (DATENOW_TB=@d) "con)
DataAdapter.SelectCommand.Parameters.AddWithValue("@d"CDate(TextBox1.Text)) 

الف شكر علي ردك وشفي اللّة وعفي عن ابنتك وافرح قلبك بشفاؤها

- الطريقة دية بتتوجب وضع التاريخ كامل مش جزء منة
08/06/2017

- وانا عايز بحث لو بجزء من التاريخ 8 مثلا  6 مثلا يظهر شهر او ايام  عشان كدة استخدمت trim للبحث باي جزء او التاريخ كامل
أشكرك أخي محمد على مشاعرك الجميلة.

ضع عدة أمثلة لكل الاحتمالات للجزء الذي تقصدة فقد تكون طريقة Between هي الحل
(23-02-18, 10:18 PM)طالب برمجة كتب : [ -> ]أشكرك أخي محمد على مشاعرك الجميلة.

ضع عدة أمثلة لكل الاحتمالات للجزء الذي تقصدة فقد تكون طريقة Between هي الحل

ادام اللة المحبة بيننا

التاريخ بيكون بالشكل دة

08/04/2015 03:36:01 م

15/08/2017 03:36:01 م

01/12/2017 03:36:01 م


يبقي لو 2017 يفلتر للسنوات 2017  , ولو  مقطعين 08  ,  يبقي يشهر ييوم او الاثنين معا
هل الوقت غير ضروري؟

السنة لأنها 4 أرقام واضحة،
لكن وضح "ولو  مقطعين 08  ,  يبقي يشهر ييوم او الاثنين معا"!
فكيف ستفرق بأن المقصود شهروليس يوم خصوصا لو كان الرقم من 1 الى 12 فهي موجود في الشهر واليوم؟
(23-02-18, 10:31 PM)طالب برمجة كتب : [ -> ]هل الوقت غير ضروري؟

السنة لأنها 4 أرقام واضحة،
لكن وضح "ولو  مقطعين 08  ,  يبقي يشهر ييوم او الاثنين معا"!
فكيف ستفرق بأن المقصود شهروليس يوم خصوصا لو كان الرقم من 1 الى 12 فهي موجود في الشهر واليوم؟

لا الوقت غير ضروري الايام او الشهر او السنة

اة  الشهر كدة مقطعين اسف  08/04

الايام مقطع واحد 08
لكن عند استخدام اليو والشهر سيحضر لك من جميع السنوات أم تريد ان تكون السنة في حالة عدم كتابة ان تكون السنة الحالية؟

طبعا كثرة الاسئلة مفيدة للتوضيح قبل البدأ في التفكير في الكود
(23-02-18, 10:43 PM)طالب برمجة كتب : [ -> ]لكن عند استخدام اليو والشهر سيحضر لك من جميع السنوات أم تريد ان تكون السنة في حالة عدم كتابة ان تكون السنة الحالية؟

طبعا كثرة الاسئلة مفيدة للتوضيح قبل البدأ في التفكير في الكود

وصلنا لمرجلة Between

خليها بطريقة Between افضل

الكود هيبقي مجهد بالشكل الي طلبتة ولا اريد اكثر عليك
اعتذر اليك للظرف السابق ذكره

لكن Between تأخذ تاريخين،
في النهاية يمكن بالبرمجة تحقيق ما تريد،

هذا الكود يعطيك ثلاث احتمالات

الاول
لو كتبت التاريخ كامل في مربع النص مثلا 23/2/2018
فسيصبح التاريخ الأول 23/2/2018 والتاريخ الثاني 23/2/2018 متطابقان
أي كانها ليست عملية بين تاريخين

الثاني
لو كتبت 2017 فيتم التعرف عليه على انه سنة
فسيصبح التاريخ الأول بداية السنة 1/1/2017 والتاريخ الثاني نهاية السنة 31/12/2017
هنا العملية بين تاريخين

الثالث
لو كتبت 29/5 وكانت السنة الحالية (2018) بدون كتابتها
فسيصبح التاريخ الأول 29/5/2018 والتاريخ الثاني 29/5/2018
أي انها نفس اليوم المحدد للسنة الحالية وكان العملية ليست بين تاريخين

PHP كود :
Dim d1 As Date Todayd2 As Date Todaytxt As String TextBox1.Text.Trim

If IsDate(txtThen
    d1 
CDate(txt)
 
   d2 CDate(txt)

ElseIf 
IsNumeric(txtAndAlso Val(txt) > 1900 Then
    d1 
= New Date(Val(txt), 11)
 
   d2 = New Date(Val(txt), 1231)

ElseIf 
txt.Split("/").Count 2 Then
    Dim s
() = txt.Split("/")
 
   d1 = New Date(Year(Today), Val(s(1)), Val(s(0)))
 
   d2 = New Date(Year(Today), Val(s(1)), Val(s(0)))

End If

Dim DataAdapter As New OleDbDataAdapter("SELECT * FROM TB1 WHERE DATENOW_TB BETWEEN @d1 AND @d2 "con)
DataAdapter.SelectCommand.Parameters.AddWithValue("@d1"d1)
DataAdapter.SelectCommand.Parameters.AddWithValue("@d2"d2)

DataSet1.Clear()
DataAdapter.Fill(DataSet1"TB1"
الصفحات : 1 2