jjafferr قام بنشر مايو 30, 2015 قام بنشر مايو 30, 2015 السلام عليكم ورحمة الله وبركاته وبعد سنين من العمل في كود الأكسس ، لازلت الى الأمس القريب كنت اعاني من عدم حصولي على النتائج المطلوبة من الجدول (بدون مجموعة محاولات) ، اذا كان المعيار هو حقل تاريخ الى ان حصلت على الكود التالي ، والذي اصبح التعامل فيه مع التاريخ سهلا انا احفظ هذه الوحدة النمطية بإسم fDateFormat: Function DateFormat(varDate As Variant) As String 'Purpose: Return a delimited string in the date format used natively by JET SQL. 'Argument: A date/time value. 'Note: Returns just the date format if the argument has no time component, ' or a date/time format if it does. 'Author: Allen Browne. allen@allenbrowne.com, June 2006. ' 'calling the Function: DateFormat(The_Date_Field) 'a = dlookup("[some field]","some table","[id]=" & me.id & " And [Date_Field]=" & DateFormat(The_Date_Field)) ' If IsDate(varDate) Then If DateValue(varDate) = varDate Then DateFormat = Format$(varDate, "\#mm\/dd\/yyyy\#") Else DateFormat = Format$(varDate, "\#mm\/dd\/yyyy hh\:nn\:ss\#") End If End If End Function وطريقة استعمال الكود كالأمثلة التالية: a = dlookup("[some field]","some table","[id]=" & me.id & " And [Date_Field]=" & DateFormat(The_Date_Field)) او ("Select DISTINCT cen, [Date] From TTTT Where [Date]=" & DateFormat(Me.Idate)) او عدة طرق اخرى اليكم مثالين في البرنامج المرفق ، كيف ان الدالة DateFormat تعطيني نتائج صحيحة مباشرة ، بينما استخدام الطريقة التقليدية للتاريخ لا تعطيني النتيجة مباشرة: الجدول يحتوي على تاريخين ، 1-5-2015 و 2-5-2015 ، وهنا سنقوم بالتجربة على التاريخ 1-5-2015 (ويمكنكم استخدام التاريخ التاثي 2-5-2015) ، وللتأكد من نتائجنا ، عملنا استعلامين : و استخدام الكود في Recordset 1. مع استعمال الدالة DateFormate Set rst = CurrentDb.OpenRecordset("Select DISTINCT cen, [Date] From tbl_T Where [Date]=" & DateFormat(Me.idate)) rst.MoveLast: rst.MoveFirst RC1 = rst.RecordCount والنتيجة صحيحة ، كما تدل عليه نتيجة الاستعلام في الاسفل: 2. مع عدم استعمال الدالة DateFromat ، وانما استخدام الطريقة التقليدية للتاريخ: Set rst = CurrentDb.OpenRecordset("Select DISTINCT cen, [Date] From tbl_T Where [Date]=#" & Me.idate & "#") rst.MoveLast: rst.MoveFirst RC2 = rst.RecordCount والنتيجة خطأ ، كما تدل عليه نتيجة الاستعلام في الاسفل: استخدام الدالة Dcount 3. مع استعمال الدالة DateFormat RC3 = DCount("*", "tbl_T", "[Date]=" & DateFormat(Me.idate)) والنتيجة صحيحة ، كما تدل عليه نتيجة الاستعلام في الاسفل: 4. مع عدم استعمال الدالة DateFormat ، ، وانما استخدام الطريقة التقليدية للتاريخ: RC4 = DCount("*", "tbl_T", "[Date]=#" & Me.idate & "#") والنتيجة خطأ ، كما تدل عليه نتيجة الاستعلام في الاسفل: جعفر 84.DateFormat_Examples.mdb.zip 7 3
راعي الغنم قام بنشر مايو 31, 2015 قام بنشر مايو 31, 2015 اولا: جزاك الله خير ع ماتقدمه ثانيا: مش كان افضل تحسب حساب المبتدئين زي كذا وتشرح لنا ايش طبيعة المعاناة اللي كنت تعانيها وايش اللي توصلت له وماذا يعني الكود اللي فوق بالدور الثاني^_^ واين يكون؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ معليش ومنتظر توضيحك ياجعفر افندي والا نعتبر المقال خاص بالمحتفرين, اقصد المحترفين.. هههههههههههههههههههه 2
ابوخليل قام بنشر مايو 31, 2015 قام بنشر مايو 31, 2015 موضوع جميل جدا وجديد هدية مقبولة ... تستحق التثبيت
jjafferr قام بنشر مايو 31, 2015 الكاتب قام بنشر مايو 31, 2015 موضوع جميل جدا وجديد هدية مقبولة ... تستحق التثبيت انت الجميل أخونا العود أبوخليل ، ولك الشكر المتواصل على مساعداتك المتواصلة ورحم الله والديك دنيا وآخرة إن شاء الله جعفر
رمهان قام بنشر يونيو 1, 2015 قام بنشر يونيو 1, 2015 مرحبا اخي جعفر اريدك ان تعمل المعيار التالي وبعدين اقول لك ايش الهرجة !! Set rst = CurrentDb.OpenRecordset("Select DISTINCT cen, [Date] From tbl_T Where [Date]=#" & Format(Me.idate, "m/d/yy") & "#") RC4 = DCount("*", "tbl_T", "[Date]=#" & Format(Me.idate, "m/d/yy") & "#") تحياتي 3
jjafferr قام بنشر يونيو 1, 2015 الكاتب قام بنشر يونيو 1, 2015 السلام عليكم أخوي رمهان انا قلت في اول الموضوع: لازلت الى الأمس القريب كنت اعاني من عدم حصولي على النتائج المطلوبة من الجدول (بدون مجموعة محاولات) يعني كنت اتوصل للمطلوب ، ولكن وللأسف بعد مجموعة محاولات !! وانا فاهم قصدك ، وطريقتك بتعطي الاجابة الصحيحة ، ولكن ، مو دائما انت محتاج تستعمل Format ، فمرة تحتاج ومرة لا ، ومرة M/D/YY ومرة dd/mm/yyyy ، وهكذا ، وصدقني لما عندك برنامج مستعجل وتشتغل عليه ليل نهار والزبون على راسك ، فما دائما تنتبه لـ Format ، إسألني وانا اخبرك كم مرة صارت معي ، الى ان انتبه لها بعد ما احك راسي واطيّح الشعرتين الباقيات على راسي الدالة هذه ، ومن اول مرة وتعطينا النتيجة الصحيحة ، ولأني استفدت منها ، حبيت الكل يستفيد منها جعفر 2
رمهان قام بنشر يونيو 1, 2015 قام بنشر يونيو 1, 2015 اخي جعفر ! اسمحو لي ان اقول انكم ظلمتم الاكسس هنا ! وانا راح اقول لكم ايش السالفة وانه ليس هناك مشكلة ! يمكن تطفل زائد ! ولكن كما عودتنا بسعة صدرك والاهم عندك الاستفادة للجميع ووضع معلومة صحيحة يستند عليها ولكل من سيمر بها ويقرؤها ! سأعود !! تحياتي
Elsayed Bn Gemy قام بنشر يونيو 1, 2015 قام بنشر يونيو 1, 2015 جزاك الله فى كل حرف كتبته مثل جبل احد حسنات
jjafferr قام بنشر يونيو 1, 2015 الكاتب قام بنشر يونيو 1, 2015 جزاك الله فى كل حرف كتبته مثل جبل احد حسنات انا او الاستاذ رمهان جميعا إن شاء الله جعفر
رمهان قام بنشر يونيو 1, 2015 قام بنشر يونيو 1, 2015 (معدل) اخي جعفر طبعا فكرة ادخال الدالة format في الطرفين : طرف المعيار وطرف القيمة المعلمة ! ليست جديدة عليكم ولكن قد يكون تطبيقها هو الذي جعلكم تبحثون عن فكرة وهي ابسط حقوق المبرمج ! الآن راح نشوف الاكسس لضمان تساوي التنسيق ! في ال sql Set rst = CurrentDb.OpenRecordset("Select DISTINCT cen, [Date] From tbl_T Where format([date],'dd/mm/yyyy')='" & Format(idate, "dd/mm/yyyy") & "'") هنا نلاحظ ان السر في عدم استخدام # واستبدالها ب ' لانه اصبحت المقارنة نصية ! والافضل وضع تنسيق التاريخ بهذا الشكل mmddyyyy في دالة ال dcocunt RC4 = DCount("*", "tbl_T", "format([Date],""ddmmyyyy"") =Format(idate, ""ddmmyyyy"")") بالتوفيق تم تعديل يونيو 1, 2015 بواسطه رمهان 7
jjafferr قام بنشر يونيو 1, 2015 الكاتب قام بنشر يونيو 1, 2015 هنا نلاحظ ان السر في عدم استخدام # واستبدالها ب ' لانه اصبحت المقارنة نصية ! هذا ما كنت اعرفه ، فجزاك الله خيرا على هذه المعلومة ولكن نرجع لأصل الموضوع اللي بسببه انا وضعت الكود ، فنرى مدى ما يمكن ان يصل اليه التعقيد عن طريق الداله Format ، وانا على يقين بأنك لم تصل للطريقة الصحيحة للكود من اول مرة او مرتين لهذا السبب ، اعتقد بأن الدالة DateFormat تسهل الكود كثيرا جعفر 3
أبوبسمله قام بنشر مارس 9, 2020 قام بنشر مارس 9, 2020 جزاكم الله خيرا اخى واستاذى جعفر واستاذنا العزيز رمهان بارك الله فيكم وزادكم الله من فضله وعلمه
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.