مشكل في الإستعلام
#1
السلام عليكم
كتبت هذا الإستعلام لكي أحدد تواريخ معينة لكن المشكلة فيه أنه لا يعطيني نتائج صحيحة
فمثلا إذا جعلت التاريخ :01/01/2010 إلى 31/12/2010 الأمر عادي
لكن لو كتبت مثلا 02/11/2010 إلى 02/11/2010 لا يعطيني شي وحتى ولو زدت يوما فلا يعطيني شيئ رغم أنه يوجد في قاعدة البيانات تاريخ 02/11/2010 وإذا وضعت الإستعلام في قاعدة البيانات مباشرة فالنتيجة عادي لكن من خلال الدلفي تختل الأمور وهذا هو الإستعلام
كود :
procedure TForm2.MaskEdit2KeyPress(Sender: TObject; var Key: Char); begin if key =#13 then begin ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('SELECT ELECTEUR.NOM, ELECTEUR.PRENOM, ELECTEUR.DATENAISS, ELECTEUR.DATEINSC'); ADOQuery1.SQL.Add('FROM ELECTEUR'); ADOQuery1.SQL.Add('WHERE (((ELECTEUR.DATEINSC) Between #'+MaskEdit1.text+'# And #'+MaskEdit2.text+'#));'); ADOQuery1.Open; end; end; end.
علما أني وضعت هذا الإستعلام في الحدث onKeyPressللعنصر MaskEdit2
وقاعدة البيانات هي أكسس
بالتوفيق
الرد
#2
وعليكم السلام ورحمة الله
كتوجيه عام في التعامل مع الاستعلامات...
بعد أن تتحقق أن الاستعلام صحيح بتجربته على برنامج إدارة قاعدة البيانات...
تحقق أن دلفي يرسله بالشكل المناسب!
في حالتك تأكد من العبارة التي يعيدها المكون TMaskEdit
أضف لعرض الاستعلام شي مثل:
كود :
[color=Blue]ShowMessage(ADOQuery1.SQL.Text);[/color] ADOQuery1.Open;
عند ظهور رسالة الاستعلام...
انسخ محتواها (Ctrl+C)
ألصقه في محرر استعلامات Access
احذف الزائد... ثم نفذ
بالتوفيق.
الرد
#3
السلام عليكم

عند استعمال الرمز # في التاريخ فان Access يعتبره تاريخ انجليزي وان قمت بتسجيل التاريخ في قاعدة البيانات على الشكل الفرنسي فلا بد أن تحول شكل التاريخ الى الهيئة المناسبة قبل تنفيد الاستعلام.

بالتوفيق أخي وليد
لا اله الا أنت سبحانك اني كنت من الضالمين
الرد
#4
السلام عليكم
أشكركم جميعا على التفاعل لكني لم أصل إلى حل مناسب
وفي المرفقاة المثال وفيه كل ما عملته حتى الآن
وللتوضيح فقط فقد وضعت عنصري MaskEdit لإدخال التاريخ المحدد ولكن عندما أدخل التاريخ من خلالهما يحدث المشكل أما لو كتبت الإستعلام في ADOQuery1 مباشرة مع كتابة التاريخ فإن الأمر عادي.
وأيضا الأخ kachwahed أقول لقد نسخت الإستعلام من الأكسس نفسه ولم أقم بكتابته بنفسي ولهذا فإن الخطأ في كتابة الإستعلام غير وارد ,أظن ذلك .
وفق الله الجميع.


الملفات المرفقة
.rar   sql_date.rar (الحجم : 18.26 ك ب / التحميلات : 11)
الرد
#5
هذا بسبب نمط التاريخ أكتب: 11/02/2010 عوضا عن 02/11/2010
استخدم TDateTimePicker أحسن.
الرد
#6
السلام عليكم

تم تعديل الكود وارفاق الملف

ياليت تجربة


الملفات المرفقة
.rar   sql_date.rar (الحجم : 11.72 ك ب / التحميلات : 11)
الرد


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


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم