السلام عليكم اخواني صممت برنامج فجوالبيسك مع قاعدة بيانات اكسس وحيث اني استعلام عن تاريخ بواسطة الاداة DTPicker المشكلة غريبة حيث انه عند ادخال تاريخ معين يكون فيه اليوم اكبر الشهر مثلا 25/2/2009 فان نتيجة الاستعلام تنفذ صحيحة اما اذا ادخلت 7/11/2009 فلا تنفذ الا اذا قلبت الشهر مكان اليوم 11/7/2009 حيث 11 هي الشهر و 7 هي اليوم فان الاستعلام ينفذ بطريقة صحيحة وحسب ماموجود في قاعدة البيانات يتم احضار تاريخ 7/11/2009 مع العلم اني استخدم format للاداة DTPICKER هو DATE بالصيغة يوم/شهر/سنة وحسب صيغة الوينوز ايضا والتي هي dd/mm/yyyy وكما مرفق بالصورة
مشكلة بالاستعلام عن تاريخ
السلام عليكم
اخي اضف هذ الكود
Format(DTPicker1.Value, "mm/dd/yyyy")
السلام عليكــم ورحمـة الله وبركاتــه
الـ Format المناسب هو السنة فالشهر فاليوم .. ويجب إرسال التاريخ بنفس الـ Format وقت البحث
= Format(DTPicker1, "YYYY/MM/DD")
اعتذر عن عدم تمكني للمتابعه الدورية في وقتنا الحالي
فليقبل الجميع تقديري واحترامي .. ولكم تحياتي
لقد بتطبيق ماتفظلتم به وكما يلي
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")
ولكن لم تنجح معي فلازالت نفس المشكلة الا في حالة واحدة وقلب التاريخ كما اسلفت سابقا ولكم من الشكر الجزيل
يا عزيزي لم اتحدث عن ملئ الـ DTPicker مطلقا .. بل كان ردي عن الإستعلام فقط
مثلا نريد تكوين جملة إستعلام وفقا للتاريخ
SELECT * FROM Table1 WHERE Field1 = #" & Format(DTPicker1, "YYYY/MM/DD") & "#
المشكلة كلها تكمن في جملة الإستعلام وتكونيها .. وبالتحديد طريقة إرسال التاريخ في جملة الإستعلام
في حالة إستمرار نفس المشكلة يرجى ذكر كود الإستعلام وبالتحديد ذكر طريقة بنائك للشرط
اعتذر عن عدم تمكني للمتابعه الدورية في وقتنا الحالي
فليقبل الجميع تقديري واحترامي .. ولكم تحياتي
بارك الله فيك اخي لهذه المتابعة وهذا كود الاستعلام واضفت اليه ماتفظلت به
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
ولكن نفس المشكلة الا اذا قلبت التاريخ الشهر بدل اليوم فتكون نتيجة الاستعلام صحيحة وكما اسلفت اعلاه في مثالي
الإستعلام صحيح 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
اعتذر عن عدم تمكني للمتابعه الدورية في وقتنا الحالي
فليقبل الجميع تقديري واحترامي .. ولكم تحياتي
السلام عليكــم ورحمـة الله وبركاتــه
اخي الفاضل جرب هذا الكود انه مجرب واعمل به
sqls = "select * from site where [date] between '" & Format(DTPicker1.Value, "mm/dd/yyyy") & "' And '" & Format(DTPicker1.Value, "mm/dd/yyyy") & "'
اخي لقد وضعت الكود التالي
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
ولم تنجح ايضا واسف كثيرا للازعاج ولكن هي فرصة لتحريك الافكار وعسى الله ان تكون في ميزان اعمالكم
ممكن ترسل المثال الذي تعمل عليه
السلام عليكم اولا شكرا لجميع من اعطاني افكاره ولقد الحل فعلا في الكود التالي
sqls = "select * from supplier where date between #" & Format(DTPicker1, "MM/DD/YYYY") & "# and #" & Format(DTPicker2, "MM/DD/YYYY") & "# "
حيث ان جربت هذا الكود سابقا ولكن كنت اضع الحروف للتاريخ MM/dd/yyyy او جميعها صمول فهنا يجب الانتباه للاخوة مستقبلا ان ياخذوا بعين الاعتبار حالة الحرف وايضا اقول ان تقديم الشهر على اليوم هذا لايعني ان الادخال للتاريخ في قاعدة البيانات يكون الشهر ثم اليوم بل بطريقة اليوم ثم الشهر ثم السنة ولكم الشكر والتقدير