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

طريقة الاستعلام بين تاريخين في استعلامات Crosstab

بدأه محمد فؤاد تركي في 4 أغسطس 2009 · 16 رد · 4,589 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الاخوة الزملاء

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

واجهتني مشكلة في استعلام من نوع CrossTab وهو استعلام يستخرج بيانات ما بين تاريخين

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

Between [Start Date] and [EndDate]

post-46243-1249376918_thumb.jpg

فظهرت لي هذه الرسالة والي الان لم اتوصل لحل هذه المشكلة

مرفق مثال

Example.rar

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#2

الامر بسيط جدا الأخ الفاضل /// محمد فؤاد تركي

فى الاستعلام / عرض التصميم / و في المكان المخصص للجداول اختار مكان فارغ ثم انقر بالزر الايمن

اختار معلمات

اضف المعلمات المطلوبة وهي startdate , enddate و اجعل بياناتها تاريخ/وقت ، طبعا نترك جملة between كما هي

القاعدة كبيرة و النت بطيء لكن زبطت معي فورا

طبعا لا اعدل عليكم

هذه العملية تقوم بتعريف المعلمات المطلوب استخدامها

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

و دمتم

ارجو الرد هل نفعت الطريقة ام لا ؟؟؟؟؟؟؟؟

تم تعديل هذه المشاركة بواسطة tbazh في 4 أغسطس 2009 في 14:41

#3

اخي الفاضل

لقد جربت هذا الحل بالفعل سابقا

لكن هذه الطريقة تجلب التاريخ بهذه الطريقة 01/01/2009 أو 31/12/2009

اي اقصد date1 OR date2

وفي هذه الحالة يتم اعطائنا التاريخ 01/01/2009 أو التاريخ 31/12/2009

post-46243-1249385563_thumb.jpg

والمطلوب الاستعلام ما بين تاريخين اي يتم جلب جميع التواريخ التي تقع ما بين النطاقين

باستخدام And

مثال

between 01/01/2009 and 05/01/2009

تم تعديل هذه المشاركة بواسطة محمد فؤاد تركي في 4 أغسطس 2009 في 14:43

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#4

استاذنا / محمد فؤاد

اذا ادخلت التاريخين ما بين 01/01/2009 وتاريخ 05/01/2009

يجلب لك ما بين التاريخين حسب ما تريد

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

جرب المرفق

Example.rar

#5

بارك الله فيك أخي الفاضل

ابو شادي

Tbazh

وكانت المشكلة في اعدادات التاريخ في Control Panel

ماذا لو اردنا ازالة هذه الجملة

between [StartDate] and [EndDate]

ووضعنا بدلا منها

Between [forms]![Frm_analysis]![Txtstart] And [forms]![Frm_analysis]![TxtEnd]

تم تعديل هذه المشاركة بواسطة محمد فؤاد تركي في 5 أغسطس 2009 في 08:34

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#6

جربت و لم تزبط معي لكن زبطت بطريقة sql عن طريق كماند على ان تكون حقول التاريخ على النموذج طبعا

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

هذا الكود.

لقد ظهرت الكلمات العربية مشفرة و مسحت الكود

عموما هو نفس كود الاستعلام نفسة ما عدا جملة

where

لو لدينا ريكوردسيت لا نعلم اسماء الحقول التى به ولا عددها ؟ هل توجد طريقة او جملة لعرض سجلاته على شكل جدول مثلا ؟؟؟

Set RST = DBS.OpenRecordset(SQL)

افترض اني لا اعرف عدد ولا اسماء الحقول ؟ كيف ساعرضها ؟

انا لا اعرف

بهذا تنحل المشكلة بسهولة

تم تعديل هذه المشاركة بواسطة tbazh في 5 أغسطس 2009 في 11:33

#7

أظن (لم اجرب بعد)

نستخدم RecoundCount و

وب For Loop مع

Field(Index)

؟؟؟

وَمِنَ النَّاسِ مَن يُعْجِبُكَ قَوْلُهُ فِي الْحَيَاةِ الدُّنْيَا وَيُشْهِدُ الله عَلَى مَا فِي قَلْبِهِ وَهُوَ أَلَدُّ الْخِصَامِ

مواضيعي ومشاركاتي

#8

أخي الكريم أستاذ محمد فؤاد...

هل ينفع مثل النموذج المرفق للمطلوب؟ نفس الفكرة المطروحة من الإخوان...

Example.rar

#9

أخي الفاضل

أحمد مبارك

فعلا هذا هو المطلوب بالضبط مع اني جربت هذا الحل بنفسي اكثر من مرة ولم يعمل :lol: هههه ربما ايديك فيها البركة :rolleyes:

لكن ماذا لو اردنا استخراج هذه البيانات في تقرير ؟؟؟؟

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#10

اخي الفاضل // محمد فؤاد

هل هذا هو المطلوب ؟؟؟؟؟

حسب علمي ان الاستعلام الجدولي يقوم بتجميع البيانات وهو خاص باعطاء دلالات احصائية

لكن في استعلامنا هذا نرى كمية كبيرة من السجلات و الحقول ، فكيف سيضمها تقرير ؟؟؟

خاصة و ان كمية البيانات تتضاعف كلما زادت المسافة بين التاريخين ؟؟؟

عموما

هو اجتهاد منى حبث تم تحويل نتيجة الاستعلام لجدول ثم عمل تقرير يستند لهذا الجدول

و كل مرة يتم مسح البيانات من الجدول و اضافة النتيجة الجديدة

هي محاولة

Example.rar

تم تعديل هذه المشاركة بواسطة tbazh في 5 أغسطس 2009 في 22:51

#11

أخي الفاضل tbazh

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

اقتباس
حسب علمي ان الاستعلام الجدولي يقوم بتجميع البيانات وهو خاص باعطاء دلالات احصائية

بالفعل التقرير المطلوب لعمل تقرير احصائي لذلك لجأت لعمل استعلامات بطريقة CrossTab

اقتباس
لكن في استعلامنا هذا نرى كمية كبيرة من السجلات و الحقول ، فكيف سيضمها تقرير ؟؟؟

خاصة و ان كمية البيانات تتضاعف كلما زادت المسافة بين التاريخين ؟؟؟

بالفعل هذا ما يشغل بالي الان وهذه الفكرة هي بالقعل الذي اريد الوصول اليها

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

مثال سيارة رقم كذا == خط كذا

في تاريخ 01/01/2009 وصلت مقر الشركة الساعة 7.35

وفي تاريخ 02/01/2009 وصلت الشركة الساعة 7.45

وهكذا

لذلك استعنت بهذا الاستعلام لعرض البيانات بطريقة افقية لسببين

السبب الاول

لو تم عرض البيانات بشكل رأسي سيتهلك هذا التقرير عند الطباعة كمية مهولة من الاوراق

اما اذا تم عرض التقرير بشكل افقي سيتم ضغط هذه البيانات في صفحات معدوده

عموما الصورتين الموضحين بالاسفل توضح لك الفرق بين الطريقتين في طريقة عرض البيانات اما بخصوص تصدير البيانات لجدول مؤقت لعرضها بتقرير لا تفي بالغرض لاننا سنعرض التقرير بطريقة الاستعلامات العادية اقصد رأسياً وليس افقيا ولو كان هذا ما اقصدة لما لجأت من الاساس للاستعلامات CrossTab

post-46243-1249538853_thumb.jpg

post-46243-1249538845_thumb.jpg

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#12

أخي محمد....

أنصحك أن تعكس الوضع

أي ضع ارقام السيارات كأعمدة والأيام كصفوف لأن عدد الأيام سيكون كبيراً جداً كلما زادت فترة الاستعلام أما السيارات مهما بلغت فهي محدودة العدد

طبتم واهتديتم :)

===================================

إقرأ معي

رابط متجدد لكتاب أقرؤه فشاركني فيه

======

فضائح الرافضة ومخازيهم حين يكتب عنها أحد خصومهم فهذا شيء متوقع ،فإن كتب عنها أحدهم فهو شيء غير مألوف ، وإن كان الكاتب أحد مراجعهم وأخص خواصهم فهذا شيء متناهي الغرابة ، وإن علمت أن الكاتب قد قتل بعد نشر الكتاب فقد حان وقت قراءة الكتاب

الكتاب :

حسين الموسوي - لله تم للتاريخ ، كشف الأسرار وتبرئة الأئمة الأطهار

اضغط على الصورة لتحميل الكتاب

%E1%E1%E5%20%CB%E3%20%E1%E1%CA%C7%D1%ED%CE.jpg

-----------

كتب سابقة

سعد الدين الشاذلي - مذكرات حرب أكنتوبر

#13
اقتباس
لأن عدد الأيام سيكون كبيراً جداً كلما زادت فترة الاستعلام

أعتقد أن عدد الايام لن يزيد عن 364 يوم دي اذا كانت سنة بسيطة أما اذا كانت سنة كبيسة أي 365 ههه ربنا يسترها علينا كلنا

طيب شيل ايام السبت والجمعة من السنة

يعني 365 يوم في السنة - 48 جمعة في السنة - 48 يوم سبت في السنة يعني صافي ايام العمل الحقيقي = 269 يوم عمل فعلي يعني 269 عمود

والاستعلام ده غالبا هيشتغل شهري فقط يعني 31 يوم - 8 ايام (سبت وجمعة خلال الشهر) = 23 يوم عمل في الشهر يعني 23 عمود

اقتباس
أما السيارات مهما بلغت فهي محدودة العدد

حاول أن تعمل استعلام عن عدد السيارات الموجوده في الداتا بيز المرفقة ستجدها بعد ازالة الفراغات والتكرارات 1667 سيارة وهذه السيارات يتم تسجيلها يوميا بمقر الشركة ههههه

يعني قدامك 1667 عمود يا بوب ايه رأيك بأه

certifiedj.jpg

 

 

Image Hosted by ImageShack.us
#14

اعتقد اخي / محمد فؤاد تركي

انه من الافضل البحث عن حل اخر افضل او تجميع البيانات بطريقة ما (اختصارها و تقليلها)

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

لاحظ ان التقرير عندما يزداد حجمه من حيث عدد الصفحات او كمية البيانات يصبح عديم الجدوى

السبب الحقيقي فى المشكلة ان البيانات المطلوب الاستعلام عنها غير تجميعية اي انه لا يمكن تجميعها فى مجموعات بسهولة

حاول اخي استخدام طرق احصائية لتقليل كم البيانات او ركز على حساب ما يريده الزبون ، او اطلعنا على ما تريد معرفته بالضبط علنا نستطيع مساعدتك

تم تعديل هذه المشاركة بواسطة tbazh في 6 أغسطس 2009 في 22:39

#15

اخي الكريم

ساحاول لك فى طريقة برمجية بالكود / لاستخلاص بيانات الاستعلام الجدولى من الجدول الاصلي الحركة

على ان يتم تخزين البيانات فى جدول مؤقت يعتمد عليه التقرير

سيكون التقرير بالعرض شهري طبعا و اكثر من ذلك لا ينفع

و سيتكون من حوالى 30 عمود وهي تواريخ الشهر + رقم الخط و رقم السيارة ( وهو نفس الشكل للصورة الاولى التى وضعتها ) شكل مخرجات الاستعلام الجدولى

هل ينفع معك ذلك حتى اشتغل عليه ؟؟؟

ارجو الرد

#16

اخي لقد واجهت مشكلة جديدة

وهي ان ورقة A4 لا يمكن ان تتسع ل 30 عمود طبعا بالعرض لذلك سيمتد التقرير على صفحتين متجاورتين

؟؟؟

ربما من الافضل تحويل النتيجة لرسم بياني / او اتخاذ نقطة و قاعدة معينة و التعامل مع القيم الشاذة عن القاعدة فقط

مثلا نعتبر وصول السيارة الساعة 7:45 طبيعيا و نتعامل مع السيارات التي تتاخر فقط حتى تكون البيانات اقل و اسهل

تم تعديل هذه المشاركة بواسطة tbazh في 7 أغسطس 2009 في 08:59

#17
اقتباس
مثلا نعتبر وصول السيارة الساعة 7:45 طبيعيا و نتعامل مع السيارات التي تتاخر فقط حتى تكون البيانات اقل و اسهل

لكن المطلوب كافة البيانات وليس بعضها

عموما مبدأيا خرجت من هذا المأزق لحين ايجاد حل بتصدير بيانات الاستعلام الي الاكسل ومن خلال الاكسل استطيع طباعة ما اريد

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

certifiedj.jpg

 

 

Image Hosted by ImageShack.us

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…