الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة بالاستعلام عن تاريخ

بدأه AHMAD KALIL في 9 فبراير 2009 · 10 رد · 1,530 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم اخواني صممت برنامج فجوالبيسك مع قاعدة بيانات اكسس وحيث اني استعلام عن تاريخ بواسطة الاداة DTPicker المشكلة غريبة حيث انه عند ادخال تاريخ معين يكون فيه اليوم اكبر الشهر مثلا 25/2/2009 فان نتيجة الاستعلام تنفذ صحيحة اما اذا ادخلت 7/11/2009 فلا تنفذ الا اذا قلبت الشهر مكان اليوم 11/7/2009 حيث 11 هي الشهر و 7 هي اليوم فان الاستعلام ينفذ بطريقة صحيحة وحسب ماموجود في قاعدة البيانات يتم احضار تاريخ 7/11/2009 مع العلم اني استخدم format للاداة DTPICKER هو DATE بالصيغة يوم/شهر/سنة وحسب صيغة الوينوز ايضا والتي هي dd/mm/yyyy وكما مرفق بالصورة

post-108017-1234179291_thumb.jpg

#2

السلام عليكم

اخي اضف هذ الكود

Format(DTPicker1.Value, "mm/dd/yyyy")

#3

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

الـ Format المناسب هو السنة فالشهر فاليوم .. ويجب إرسال التاريخ بنفس الـ Format وقت البحث

 = Format(DTPicker1, "YYYY/MM/DD")

اعتذر عن عدم تمكني للمتابعه الدورية في وقتنا الحالي

فليقبل الجميع تقديري واحترامي .. ولكم تحياتي

#4

لقد بتطبيق ماتفظلتم به وكما يلي

DTPicker1 = Format(DTPicker1.Value, "mm/dd/yyyy")

DTPicker2 = Format(DTPicker2.Value, "mm/dd/yyyy")

DTPicker1 = Format(DTPicker1, "YYYY/MM/DD")

DTPicker2 = Format(DTPicker2, "YYYY/MM/DD")

ولكن لم تنجح معي فلازالت نفس المشكلة الا في حالة واحدة وقلب التاريخ كما اسلفت سابقا ولكم من الشكر الجزيل

#5

يا عزيزي لم اتحدث عن ملئ الـ DTPicker مطلقا .. بل كان ردي عن الإستعلام فقط

مثلا نريد تكوين جملة إستعلام وفقا للتاريخ

SELECT * FROM Table1 WHERE Field1 = #" & Format(DTPicker1, "YYYY/MM/DD") & "#

المشكلة كلها تكمن في جملة الإستعلام وتكونيها .. وبالتحديد طريقة إرسال التاريخ في جملة الإستعلام

في حالة إستمرار نفس المشكلة يرجى ذكر كود الإستعلام وبالتحديد ذكر طريقة بنائك للشرط

اعتذر عن عدم تمكني للمتابعه الدورية في وقتنا الحالي

فليقبل الجميع تقديري واحترامي .. ولكم تحياتي

#6

بارك الله فيك اخي لهذه المتابعة وهذا كود الاستعلام واضفت اليه ماتفظلت به

sqls = "select * from site where date between #" & Format(DTPicker1, "YYYY/MM/DD") & "# and #" & Format(DTPicker2, "YYYY/MM/DD") & "# "

If rs.State = adStateOpen Then rs.Close

rs.Open sqls, db, adOpenKeyset, adLockPessimistic

ولكن نفس المشكلة الا اذا قلبت التاريخ الشهر بدل اليوم فتكون نتيجة الاستعلام صحيحة وكما اسلفت اعلاه في مثالي

#7

الإستعلام صحيح 100 % .. ولكن تأكد من صحة التاريخ المدخل نفسه والذي تبحث عنه

يمكنك وضع الـ Format في جملة الـ SELECT التي تملأ بها الـ Grid .. على سبيل المثال

 


[color= #993333; font-weight: bold;]SELECT Format[color= #66cc66;]([color= #66cc66;][site[color= #66cc66;]][color= #66cc66;].[color= #66cc66;][date[color= #66cc66;]][color= #66cc66;],[color= #ff0000;]'YYYY/MM/DD'[color= #66cc66;])[color= #66cc66;], [color= #66cc66;][site[color= #66cc66;]][color= #66cc66;].*[color= #993333; font-weight: bold;]FROM [color= #66cc66;][site[color= #66cc66;]]

وأنظر التاريخ في الـ Grid .. كيف يظهر ؟؟ فانا اشك والله اعلى واعلم ان التاريخ داخل قاعدة البيانات هو نفسه خطأ

ولتفادي مثل هذه الأخطاء يجب تغيير الـ Format وقت الحفظ أو التعديل مستقبليا وجعله بالطريقة التي إتفقنا عليها

ولعرض التاريخ داخل الـ DTPicker بنفس الـ Format بإمكانك الذهاب إلى خاصئص الأداة

وتغيير خاصية الـ Format إلى 3 أي dtpCustom .. ثم ملأ خاصية الـ Custom Format بـ yyyy/MM/dd

اعتذر عن عدم تمكني للمتابعه الدورية في وقتنا الحالي

فليقبل الجميع تقديري واحترامي .. ولكم تحياتي

#8

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

اخي الفاضل جرب هذا الكود انه مجرب واعمل به

sqls = "select * from site where [date] between '" & Format(DTPicker1.Value, "mm/dd/yyyy") & "' And '" & Format(DTPicker1.Value, "mm/dd/yyyy") & "'

#9

اخي لقد وضعت الكود التالي

sqls = "select * from site where date between #" & Format(DTPicker1, "mm/dd/yyyy") & "# and #" & Format(DTPicker2, "mm/dd/yyyy") & "# "

If rs.State = adStateOpen Then rs.Close

rs.Open sqls, db, adOpenKeyset, adLockPessimistic

ولم تنجح ايضا واسف كثيرا للازعاج ولكن هي فرصة لتحريك الافكار وعسى الله ان تكون في ميزان اعمالكم

#10

ممكن ترسل المثال الذي تعمل عليه

#11

السلام عليكم اولا شكرا لجميع من اعطاني افكاره ولقد الحل فعلا في الكود التالي

sqls = "select * from supplier where date between #" & Format(DTPicker1, "MM/DD/YYYY") & "# and #" & Format(DTPicker2, "MM/DD/YYYY") & "# "

حيث ان جربت هذا الكود سابقا ولكن كنت اضع الحروف للتاريخ MM/dd/yyyy او جميعها صمول فهنا يجب الانتباه للاخوة مستقبلا ان ياخذوا بعين الاعتبار حالة الحرف وايضا اقول ان تقديم الشهر على اليوم هذا لايعني ان الادخال للتاريخ في قاعدة البيانات يكون الشهر ثم اليوم بل بطريقة اليوم ثم الشهر ثم السنة ولكم الشكر والتقدير

مواضيع مشابهة