اذهب الي المحتوي
أوفيسنا

الدالة () DLookup والدالة () ELookup


zahrah2016

الردود الموصى بها

الدالة الغبية والدالة العبقرية
الدالة () DLookup والدالة () ELookup


هل تصدق ان هناك دالة غبيه قد تستغرب ان اقول لك انها دالة () DLookup والكل منا يعرفها ويعرف استخداماتها فهي ببساطة تعيد او تسترجع قيمه واحدة من الجدول .
عيوبها :
1. تعيد اول قيمة فقط تم وضعها في الدالة في عملية البحث .
2. لا تستطيع بإي حال من الاحوال اعادة الحقل المفهرس .
3. قد تحصل على نتائج متناقضة ومتقلبة حتى من نفس نوع البيانات التي تبحث عنها اذا كان لا يوجد مفتاح اساسي في الجدول وقمت بعملية ضغط قاعدة البيانات . ( جرب بنفسك وأنظر النتائج الغبية التي تعطيك هذه الدالة ) .
4. اداء هذه الدالة سيئ للغاية فهو لا يقوم بمسح ما تم البحث عنه سابقا ويفترض ان تكون القيم خالية بعد عملية كل بحث .
5. ظهور العديد من الاخطاء والرسائل من الاكسيس عندما تكون القيم خاليه .

الدالة () ELookup العبقرية
هل احد منكم سمع عن هذه الدالة ( دالة جديده تم اختراعها )
لنرى إمكانات هذه الدالة
1. قمة في الاداء والابهار والقوة والمتانة والمرونه .
2. تسمح لك بتحديد اي نوع من البيانات ولا تتقيد يحقول معينه .
3. تسمح لك بإستخدام الاقل MIN والاعلى MAX من القيم .
4. بعد عملية البحث والبدء بعملية استخدام جديده تجد القيم خالية وجاهزة لتقبل اي امر .
5. اسرع من الدالة () DLookup بعشر مرات .
6. قد ترغب في تعديل مسار البحث قبل استعمال الدالة فتستطيع ذلك بدون ظهور رسائل MsgBox لكل صف .
7. تقوم هذه الدالة بتمييز وتحسس ومعرفة ان هذا الحقل Zzero-length( طول صفري ) او خالي من البيانات Null .
8. اذا استخدمت في الاستعلامات فأنظر الى النتائج الباهره حتى لو استخدمت معها اربعة معايير مختلفه .
قد يكون عيبها الوحيد انها تحتاج الى مكتبة DAO وهذا ليس بعيب ولكن لانها ليست من دوال برنامج الاكسيس .

امثلة على طريقة استخدامها
1. ايجاد القيمة الاخيرة متضمنة الـ DESC
ELookup("[Surname] & [FirstName]", "tblClient", , "ClientID DESC")
اذا رغبت في اضافة حقول اضافية قم بالاضافة فهي تقبل جميع الحقول ولا تقتصر على حقل معين 2. ايجاد القيم الاقل الغير خالية Null بإستعمال المعايير
ELookup("ClientID", "tblClient", "Surname Is Not Null" , "Surname")
واليكم الدالة الجباره بكل معنى الكلمة ويفضل مقارنة نفس النتائج مع الدالة السابقة لتروا الفرق كل ما عليك هو وضعها في وحدة نمطية ومن ثم استخدامها سواء في النماذج او الاستعلامات او التقارير او الماكرو .
Function ELookup(Expr As String, Domain As String, Optional Criteria, Optional OrderClause)
On Error GoTo Err_ELookup
    '   DAO  ملاحظة: تحتاج الى مرجع مكتبة 
   Dim db As DAO.Database
   Dim rs As DAO.Recordset
   Dim strSql As String

   'بناء جملة الاستعلام
   strSql = "SELECT TOP 1 " & Expr & " FROM " & Domain
   If Not IsMissing(Criteria) Then
       strSql = strSql & " WHERE " & Criteria
   End If
   If Not IsMissing(OrderClause) Then
       strSql = strSql & " ORDER BY " & OrderClause
   End If
   strSql = strSql & ";"

   'البحث عن القيم
   Set db = DBEngine(0)(0)
   Set rs = db.OpenRecordset(strSql, dbOpenForwardOnly)
   If rs.RecordCount = 0 Then
       ELookup = Null
   Else
       ELookup = rs(0)
   End If
   rs.Close

Exit_ELookup:
   Set rs = Nothing
   Set db = Nothing
   Exit Function
 'zahrah
Err_ELookup:
   MsgBox Err.Description, vbExclamation, "ELookup Error " & Err.Number
   Resume Exit_ELookup
   End Function

  • Like 2
  • Thanks 4
رابط هذا التعليق
شارك

  • 3 months later...
  • 3 weeks later...
  • 12 years later...

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

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

1.rar

  • Thanks 1
رابط هذا التعليق
شارك

  • 6 months later...
في ٢٣‏/١‏/٢٠٠٦ at 22:52, zahrah2016 said:
الدالة الغبية والدالة العبقرية
الدالة () DLookup والدالة () ELookup

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

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

واصابنى الهلع قراتى للموضوع ولم استطع لا الفهم ولا التطبيق

هل من متصدق يتصدق علينا بالشرح والمثال 

واتمنى على الله تعالى ان يكون المثال جامع
-بدون شروط واخر بشرط واخر بأكثر من شرط
-ومرة يكون التطبيق على استعلام مباشرة وتارة داخل نموذج بالاكواد

وجزاكم الله خيرا مقدما :fff::fff::fff:

رابط هذا التعليق
شارك

  • 2 years later...

السلام عليكم

جزاكم الله خيرا

بس محتاجين تطبيق بمثال عملى من أحد المتطوعين بالخير

 

اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وآلِ مُحَمَّد

اللّـهُمَّ اِنّي أَسْأَلُكَ بِرَحْمَتِكَ الَّتي وَسِعَتْ كُلَّ شَيْء، وَبِقُوَّتِكَ الَّتي قَهَرْتَ بِها كُلَّ شَيْء،وَخَضَعَ لَها كُلُّ شَيء، وَذَلَّ لَها كُلُّ شَيء، وَبِجَبَرُوتِكَ الَّتي غَلَبْتَ بِها كُلَّ شَيء،وَبِعِزَّتِكَ الَّتي لا يَقُومُ لَها شَيءٌ، وَبِعَظَمَتِكَ الَّتي مَلاَتْ كُلَّ شَيء،وَبِسُلْطانِكَ الَّذي عَلا كُلَّ شَيء، وَبِوَجْهِكَ الْباقي بَعْدَ فَناءِ كُلِّ شَيء، وَبِأَسْمائِكَ الَّتي مَلاَتْ اَرْكانَ كُلِّ شَيء، وَبِعِلْمِكَ الَّذي اَحاطَ بِكُلِّ شَيء، وَبِنُورِ وَجْهِكَ الَّذي اَضاءَ لَهُ كُلُّ شيء، يا نُورُ يا قُدُّوسُ، يا اَوَّلَ الاَْوَّلِينَ وَيا آخِرَ الاْخِرينَ، اَللّهُمَّ اغْفِرْ لِي الذُّنُوبَ الَّتي تَهْتِكُ الْعِصَمَ،اَللّـهُمَّ اغْفِـرْ لِي الذُّنُوبَ الَّتي تُنْزِلُ النِّقَمَ، اَللّهُمَّ اغْفِرْ لِي الذُّنُوبَ الَّتي تُغَيِّـرُ النِّعَمَ،اَللّـهُمَّ اغْفِرْ لي الذُّنُوبَ الَّتي تَحْبِسُ الدُّعاءَ، اَللّـهُمَّ اغْفِرْ لِي الذُّنُوبَ الَّتي تُنْزِلُ الْبَلاءَ، اَللّهُمَّ اغْفِرْ لي كُلَّ ذَنْب اَذْنَبْتُهُ، وَكُلَّ خَطيئَة اَخْطَأتُها

 

رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information