اعلان ادسنس

حل مشكلة التاريخ في اكسس Now

عند العمل على قواعد بيانات Microsoft Access، قد تواجه مشكلة عند استخدام دالة Now() داخل الاستعلامات، خصوصًا عند مقارنة التواريخ أو البحث عن سجلات بتاريخ معين. السبب هو أن دالة Now() تُرجع التاريخ والوقت معًا، بينما بعض الحقول في الجداول قد تحتوي على تاريخ فقط بدون وقت، مما يؤدي إلى عدم تطابق النتائج أو ظهور استعلام فارغ.
في هذا المقال نشرح سبب المشكلة، وكيفية حلها بطريقة صحيحة لضمان عمل الاستعلام بدون أخطاء.
❗ لماذا تحدث المشكلة عند استخدام Now()؟
دالة Now() تُرجع قيمة مثل:
2026-03-12 11:16:00
بينما حقل التاريخ في الجدول قد يحتوي على:
2026-03-12
عند المقارنة بين القيمتين، Access يعتبرهما غير متطابقتين لأن الوقت مختلف، وبالتالي لا تظهر النتائج.
✔ الحل الأول: استخدام Date() بدلًا من Now()
إذا كنت تريد مقارنة التاريخ فقط بدون وقت، استخدم:
Date()
مثال استعلام:
sql
SELECT * FROM Orders
WHERE OrderDate = Date();
هذا الاستعلام يعرض كل السجلات التي تاريخها هو تاريخ اليوم.
✔ الحل الثاني: تحويل Now() إلى تاريخ فقط باستخدام DateValue()
إذا كنت تحتاج Now() ولكن بدون الوقت، استخدم:
DateValue(Now())
مثال:
sql
SELECT * FROM Attendance
WHERE AttendDate = DateValue(Now());
بهذا يتم تجاهل الوقت تمامًا.
✔ الحل الثالث: تحويل حقل الجدول إلى تاريخ فقط
إذا كان الحقل يحتوي على تاريخ ووقت، يمكنك تحويله داخل الاستعلام:
sql
SELECT * FROM Logs
WHERE DateValue(LogDate) = Date();
هذا يجعل المقارنة دقيقة وصحيحة.
✔ الحل الرابع: استخدام Between لتحديد اليوم كاملًا
إذا كان الحقل يحتوي على وقت، يمكنك تحديد بداية ونهاية اليوم:
sql
SELECT * FROM Sales
WHERE SaleDate BETWEEN Date() AND DateAdd("d", 1, Date());
بهذا يتم جلب كل السجلات خلال اليوم الحالي مهما كان وقتها.
⭐ نصائح مهمة
استخدم Date() إذا كنت لا تحتاج الوقت.
استخدم Now() فقط عندما تحتاج التاريخ والوقت معًا.
تجنب مقارنة تاريخ يحتوي على وقت مع تاريخ بدون وقت.
استخدم DateValue() لتوحيد الصيغة بين الطرفين.
اختبر الاستعلام دائمًا قبل استخدامه في النماذج أو التقارير.
هذه بعض الحلول وهناك ايضاً الحل المذكور بالفيديو وبإمكانك استخدام الطريقة التي تريدها
خلاصة
مشكلة الاستعلام عن تاريخ عند استخدام دالة Now() في Access تحدث بسبب اختلاف صيغة التاريخ والوقت. باستخدام الدوال المناسبة مثل Date() و DateValue() أو تحديد نطاق اليوم، يمكنك حل المشكلة بسهولة والحصول على نتائج دقيقة في كل مرة.

حل مشكلة الاستعلام عن تاريخ في حالة استخدام دالة Now



رابط التحميل


إرسال تعليق

أحدث أقدم
اعلان ادسنس اول المقال
اعلان ادسنس نهاية المقال
اعلان ادسنس بعد مقالات قد تعجبك

نموذج الاتصال