-
Posts
3,015 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
4
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
مشاركات المكتوبه بواسطه عبد الفتاح كيرة
-
-
أتابع
-
1
-
-
للخروج من هذا المأزق
أقوم بإنشاء استعلام إنشاء جدول من استعلام التجميع
و من الجدول المنشأ نعمل ما نريد
و تكون البيانات محدثة فى الجدول المنشأ بالاستعلام لأنه ينشأ كل مرة بعد حذف القديم
عملية ديناميكية رائعة
-
-
الحمد لله
قمت بحل المشكلة
فوجدت لزاما أن أنشر الطريقة
للنفع العام
دالة dlookup المستخدمة فيها 3 شروط
رقم الموظف
تاريخ بداية
تاريخ نهاية
قمت بعمل استعلام لشرط التاريخ
و بعد ذلك استخدمت نفس الدالة للبحث فى هذا الاستعلام بشرط واحد هو رقم الموظف
وجاءت النتائج سليمة
-
شكرا لكم
جزاكم الله خيرا
-
1
-
-
2 ساعات مضت, jjafferr said:
يعني مجرد ارفاقك صورة للكود لا يعطينا بيانات كفاية للتفكير معك 😁
تمام
أنا أراسلكم من الهاتف لأن جهازى عطلان
ومثال على تاريخ يعطى خطأ
15/2/2018
و هو تاريخ الجزاء محل البحث
Gazadate
وشكرا
-
6 ساعات مضت, husamwahab said:
السلام عليكم استاذنا العزيز
تفصل هذه الصيغة ارجو ان تكون صحيحة
شكرا لك
لكن ما الفارق بينها و بين الأصل؟
-
نفكر شوية و نساعد بعض 😴
هل لصيغة التاريخ علاقة بهذا الخطأ؟
أقصد تنسيق التاريخ
ممكن نستخدم دالة formate قبل حقل التاريخ؟
أدلو بدلوكم...جزاكم الله خيرا
-
-
3 دقائق مضت, عبد الفتاح كيرة said:
Me.Text49 = DSum("[debit]", "t")
غير هذا السطر حسبما تريد
-
2 ساعات مضت, romeo4 said:
ارغب في ايجاد اجمالي مجموع القيم السابقة من التقرير في اخر صفحة
Private Sub GroupHeader0_Format(Cancel As Integer, FormatCount As Integer) On Error Resume Next Dim old As Integer Me.textold = 0 olld = DSum("[debit]", "t", "[id-client]=" & [id] & " and [date] < from ") - DSum("[Credit]", "t", "[id-client]=" & [id] & " and [date] < from ") If IsNull(olld) Then Me.textold = 0 Else Me.textold = Me.textold + olld Me.Text49 = DSum("[debit]", "t") End If End Sub
لاحظ السطر الأخير
-
في ٦/١/٢٠٢٠ at 07:11, النسر المصرى said:
عدم اختيار تاريخ قبل تاريخ اليوم
Private Sub mdate_BeforeUpdate(Cancel As Integer) Dim myletter As String myletter = "غير مسموح بتاريخ غير تاريخ اليوم" If Me.mdate < Date Then MsgBox myletter Cancel = True End If End Sub
في ٦/١/٢٠٢٠ at 07:11, النسر المصرى said:عدم اضافة أكثر من اربع سجلات بالشهر الواحد
هل هناك حقل للشهر؟
-
1
-
-
30 دقائق مضت, jjafferr said:
شكرا اخوي عبدالفتاح على مشاركتك 🙂
وكلما ابتعدت عن استعلام المجاميع ، كلما كان استعلامك اسرع 🙂
جعفر
فعلا
شكرا لك
لاحظت بعض البطء فى التنفيذ
-
شكرا جزيلا أخانا الأستاذ @jjafferr و النتائج صحيحة لكن الطرق مختلفة
سأشرح - لمن يريد - خطوات أخرى أوصلتنى للناتج و سأرفق ملفا إن شاء الله
أولا : نصمم استعلاما للحصول على أعلى تاريخ ( الأحدث) من الجدول t1 باسم مستعار ss و هو استعلام 2 و ذلك باستخدام top1
و نرتب حسب حقل التاريخ taqfrom تنازليا ليكون أحدث تاريخ بالأعلى .
و نحصل على جملة sql التالية
SELECT TOP 1 ss.taqFrom
FROM t1 AS ss
ORDER BY ss.taqFrom DESC;
ثانيا نأخذ جملة ال sql السابقة و نضعها كمعيار فى حقل taqfrom للاستعلام الجديد و هو استعلام 1و هنا نرتب جملة sql كالتالى
SELECT t1.taqemp, t1.taqFrom, t1.taqTo, t1.taq_deg FROM t1 WHERE (((t1.taqFrom) In (SELECT TOP 1 ss.taqFrom FROM t1 AS ss where ss.taqemp = t1.taqemp and ss.taqfrom <> (SELECT TOP 1 ss.taqFrom FROM t1 AS ss where ss.taqemp = t1.taqemp ORDER BY ss.taqFrom DESC) ORDER BY ss.taqFrom DESC; )));
الشرح قدر الإمكان
SELECT t1.taqemp, t1.taqFrom, t1.taqTo, t1.taq_deg
FROM t1أدرج الحقول السابقة فى الاستعلام بصورة عادية من جدول ف1 و من بينها طبعا حقل taqfrom الخاص بتاريخ بداية تقرير الموظف ( التقرير هو تقرير الكفاءة السنوى للموظف يؤخذ كل عام من 1 سبتمبر حتى 31 أغسطس )
WHERE (((t1.taqFrom) In
بشرط أن تكون قيمة حقل التاريخ ضمن مايلى :
(SELECT TOP 1 ss.taqFrom FROM t1 AS ss
و هو جملة sql الخاصة باستعلام 2 و التى استخرجنا بها أعلى قيمة للتاريخ كما سبق
where ss.taqemp = t1.taqemp and ss.taqfrom <>
بشرطين هامين
الأول تساوى حقل رقم الموظف
الثانى أن يكون حقل التاريخ لا يساوى ما يلى
(SELECT TOP 1 ss.taqFrom FROM t1 AS ss where ss.taqemp = t1.taqemp
استعلام فرعى آخر
وهنا تحتاج مثلى لقدرة عظيمة على التخيل للاستعلامات الفرعية المركبة
يعنى ( حقل التاريخ يكون مثل أعلى قيمة التى بدورها لا تساوى ؟أعلى قيمة ..)
و ORDER BY ss.taqFrom DESC) ORDER BY ss.taqFrom DESC;
الترتيب تنازليا مرتين
مرة لكل استعلام فرعى
لاحظ النتيجة
التاريخ الثانى لكل موظف
ثم سجل واحد لكل موظف هو الثانى
هذا هو الملف أرجو أن أكون وفقت فى الشرح و أن يكون فيه النفع لمن يريد و شكرا مرة أخرى لمساعدة الأخ @jjafferr
3 دقائق مضت, عبد الفتاح كيرة said:ss.taqemp = t1.taqemp
نسيت هذه الجزئية و هى هامة لربط الاستعلام الفرعى بالرئيسى
-
2
-
-
شكرا
جارى الفحص
-
أريد استخراج السجل الذي يكون فيه حقل taqfrom
هو رقم 2 من حيث التاريخ الأحدث
يعنى فى الصورة
1/9/2014
للموظف رقم 1
و
1/9/2017
للموظف رقم 5
-
السلام عليكم
المطلوب الحصول على تاريخ التقرير رقم 2 حسب حقل التاريخ taqfrom
يعنى التاريخ التالى لأحدث تاريخ وذلك باستخدام الاستعلام الفرعى
-
إن شاء الله أفعل
-
1 دقيقه مضت, jjafferr said:
الحمدلله 🙂
وشكرا على المعلومة 🙂جعفر
شكرا لك أنت
يا ليت نكمل المعلومة
بمثال لاستعلام فرعى لاستخراج القيمة رقم 2 فى حقل التاريخ
أو القيمة رقم 3 .....أو أيا كانت
مع جزيل شكرى
-
5 دقائق مضت, jjafferr said:
عفوا ، انا لم افهم شيء !!
😅😅استخدمت مثالك الذى أرفقته منذ قليل للاستعلام الفرعى للحصول على أعلى قيمة
وعدلته للحصول على أحدث 3 تواريخ
باستخدام top3
-
17 ساعات مضت, jjafferr said:
استعمل TOP 3 بدلا عن TOP 1
بارك الله فيك أستاذ جعفر
هذه هى النتيجة
آخر 3 تقارير لكل موظف
و هذا هو ال sql
SELECT qq1.TaqEmp, qq1.taqFrom, qq1.taqTo, qq1.taq_number FROM qq1 WHERE (((qq1.taqFrom) In (SELECT TOP 3 ss.taqFrom FROM qq1 AS ss where ss.taqemp = qq1.taqemp ORDER BY ss.taqFrom DESC; ))) ORDER BY qq1.TaqEmp, qq1.taqFrom DESC;
-
1
-
-
الان, jjafferr said:
استعمل TOP 3 بدلا عن TOP 1
جعفر
إن شاء الله
-
4 دقائق مضت, jjafferr said:
وللتجربة
شكرا لك
جارى الفحص
هل يوجد مثال للحصول على أحدث 3 تواريخ من حقل تاريخ فى جدول باستخدام استعلام فرعى؟
-
أشكرك أخى @rey360
موقع رهيب فعلا
-
2
-
اقتراحاتكم بشأن صلاحيات المشرفين
في قسم الأكسيس Access
قام بنشر
وفقكم الله