jo_2010 قام بنشر يناير 6 مشاركة قام بنشر يناير 6 (معدل) الخبراء الافاضل فى الإصدارة 2.0 المطورة 🧮 الكاتب الذكي لدوال المجال |::| 📜 نسخة مطورة ومحدثة |::| 😊 الإصدار الثاني 2.0 للاخ الافاضل Moosak اليكم نموذج للتعديل علية JO_2024.accdb تم تعديل يناير 6 بواسطه jo_2010 رابط هذا التعليق شارك More sharing options...
شايب قام بنشر يناير 6 مشاركة قام بنشر يناير 6 32 دقائق مضت, jo_2010 said: فى الإصدارة 2.0 المطورة 🧮 الكاتب الذكي لدوال المجال دالة DLookup لابد للحصول على نتيجة صحيحة ان نستخدم معها معيار فريد وبالتالي عند استخدام between فسوف تعود الدالة باول سجل مطابق فقط لذا فمن الافضل التفكير باستخدام معيار اخر اما اذا كنت مصمم على هذا الاستخدام الغير صحيح DLookup("[pcode]", "lab_all", "[pcode]between 2 and 6 ") اخونا الشايب 2 1 رابط هذا التعليق شارك More sharing options...
Moosak قام بنشر يناير 6 مشاركة قام بنشر يناير 6 41 دقائق مضت, jo_2010 said: في نفس المكان أكتب : 50 and 80 مع الأخذ في الإعتبار نصيحة شايبنا الكريم @شايب 🙂 1 رابط هذا التعليق شارك More sharing options...
ابو جودي قام بنشر يناير 6 مشاركة قام بنشر يناير 6 وبناء على قول استاذى الجليل ومعلمى القدير الاستاذ @شايب استخدم هذه الطريقة افضل من خلال استعلام SELECT * FROM TableName WHERE FieldName BETWEEN 50 AND 80; 1 1 رابط هذا التعليق شارك More sharing options...
ابو جودي قام بنشر يناير 6 مشاركة قام بنشر يناير 6 ولو الحقل كان نصى وانت كاتب فيه ارقام استخدم الاستعلام بالشكل التالى SELECT CLng([FieldName]) AS clngFieldName, * FROM TableName WHERE (((CLng([FieldName])) Between CLng(50) And CLng(80))); رابط هذا التعليق شارك More sharing options...
أفضل إجابة ابو جودي قام بنشر يناير 6 أفضل إجابة مشاركة قام بنشر يناير 6 وممكن SELECT VAL([ID]) AS valID, * FROM tblEmployees WHERE VAL([ID]) BETWEEN 50 AND 80; وممكن استخدام دالة CDBL لتحويل إلى رقم مزدوج (Double): SELECT CDBL([ID]) AS cdblID, * FROM tblEmployees WHERE CDBL([ID]) BETWEEN 50 AND 80; وممكن استخدام دالة CDATE للتحويل إلى تاريخ (إذا كان يمكن تفسير القيم كتواريخ) SELECT CDATE([FieldName]) AS cdateFieldName, * FROM TableName WHERE CDATE([FieldName]) Between #50# And #80#; رابط هذا التعليق شارك More sharing options...
شايب قام بنشر يناير 6 مشاركة قام بنشر يناير 6 3 ساعات مضت, ابو جودي said: وممكن ماشاء الله عليك اخي محمد كفيت ووفيت 🌹 1 رابط هذا التعليق شارك More sharing options...
ابو جودي قام بنشر يناير 6 مشاركة قام بنشر يناير 6 19 دقائق مضت, شايب said: ماشاء الله عليك اخي محمد كفيت ووفيت 🌹 منكم نتعلم استاذى الجليل ومعلمى القدير هذا من فضل الله سبحانه وتعالى ثم لكلم ولكل اساتذتى العظماء تعرف يا استاذى انا تقريبا بطلت ستخدم DLookup الا فى اضيق الحالات كل ما اجى استخدمها افتكر كلمة استاذ @jjafferr سر قوة الاكسس فى الاستعلامات الان تقريبا اعيد ما اريد من خلال الاستعلامات بدلا من DLookup فعلا الاستعلامات رهيبة جدا جدا جدا جدا 1 رابط هذا التعليق شارك More sharing options...
شايب قام بنشر يناير 6 مشاركة قام بنشر يناير 6 4 دقائق مضت, ابو جودي said: لان تقريبا اعيد ما اريد من خلال الاستعلامات بدلا من DLookup فعلا الاستعلامات رهيبة جدا جدا جدا جدا اتفق معك واغلب دوال التجميع يمكن الاستغناء عنها في حالات كثر باستخدام الاستعلامات رابط هذا التعليق شارك More sharing options...
Moosak قام بنشر يناير 6 مشاركة قام بنشر يناير 6 55 دقائق مضت, ابو جودي said: منكم نتعلم استاذى الجليل ومعلمى القدير هذا من فضل الله سبحانه وتعالى ثم لكلم ولكل اساتذتى العظماء تعرف يا استاذى انا تقريبا بطلت ستخدم DLookup الا فى اضيق الحالات كل ما اجى استخدمها افتكر كلمة استاذ @jjafferr سر قوة الاكسس فى الاستعلامات الان تقريبا اعيد ما اريد من خلال الاستعلامات بدلا من DLookup فعلا الاستعلامات رهيبة جدا جدا جدا جدا 5 ساعات مضت, ابو جودي said: وممكن SELECT VAL([ID]) AS valID, * FROM tblEmployees WHERE VAL([ID]) BETWEEN 50 AND 80; وممكن استخدام دالة CDBL لتحويل إلى رقم مزدوج (Double): SELECT CDBL([ID]) AS cdblID, * FROM tblEmployees WHERE CDBL([ID]) BETWEEN 50 AND 80; وممكن استخدام دالة CDATE للتحويل إلى تاريخ (إذا كان يمكن تفسير القيم كتواريخ) SELECT CDATE([FieldName]) AS cdateFieldName, * FROM TableName WHERE CDATE([FieldName]) Between #50# And #80#; حبيبنا @ابو جودي شكرا لك على هذا التنبيه .. 🙂🌹 ولزيادة الإفادة : كيف تستخدم جمل SQL كمصدر لحقل غير منظم في النموذج ؟ ..... أو كحقل محسوب في الاستعلام ؟ أليست دوال DLookup وأخواتها عبارة عن جمل SQL مبسطة على شكل Function في الواقع ؟ رابط هذا التعليق شارك More sharing options...
شايب قام بنشر يناير 6 مشاركة قام بنشر يناير 6 21 دقائق مضت, Moosak said: أليست دوال DLookup وأخواتها عبارة عن جمل SQL مبسطة على شكل Function في الواقع ؟ مع ان السؤال للاستاذ محمد لكن نعم هي استعلام ولها استخداماتها كما اشرتم منذ ساعه, شايب said: اتفق معك واغلب دوال التجميع يمكن الاستغناء عنها في حالات كثر باستخدام الاستعلامات وهنا اقصد يمكن الاستغناء عنها في الاستعلامات لما تسببه من تاخير في تنفيذ الاستعلام وبالذات عندما يكون لدينا عدد كبير من البيانات واستخدام اكثر من استعلام يمكن الاستغناء عن بعض دوال تجميع المجال المايك للاستاذ محمد للاجابة عن السؤال 1 1 رابط هذا التعليق شارك More sharing options...
jo_2010 قام بنشر يناير 6 الكاتب مشاركة قام بنشر يناير 6 (معدل) خالص الشكر لكل الخبراء المبدعين على هذة المعلومات الجديدة بالنسبة لى والمفيدة ايضا شكرا لكم ولكن من باب العلم بالشى كيف اكتب الدالة من خلال البرنامج المرفق الخاص بالمعلم الجليل Moosak تم تعديل يناير 6 بواسطه jo_2010 رابط هذا التعليق شارك More sharing options...
ابو جودي قام بنشر يناير 6 مشاركة قام بنشر يناير 6 منذ ساعه, شايب said: المايك للاستاذ محمد للاجابة عن السؤال طبعا لا يفتى ومالك فى المدينة 1 ساعه مضت, Moosak said: أليست دوال DLookup وأخواتها عبارة عن جمل SQL مبسطة على شكل Function في الواقع ؟ اممم تصدق مش عارف اقول اه واللا لاء بس بعد الشرح ده انت قول الاجابة دوال المجـــــــ(Domain Functions)ـــــــــال جزءا من مجموعة من الدوال التي تستخدم للتلاعب بالبيانات في قاعدة البيانات وهى ليست استعلامات هذه الدوال تعتبر جزءا من استعلامات SQL (Structured Query Language) التي تستخدم لاسترجاع وتحديث البيانات دوال المجال تسمح لك بتنفيذ عمليات معينة على البيانات في حقل معين من جدول معين على سبيل المثال : - يمكن استخدام دالة المجال Dlookup للبحث عن قيمة في حقل محدد بناء على شرط معين او عدة شروط هذه الدوال تستخدم ضمن تعبيرات SQL داخل استعلامات يعنى خى ليست استعلامات انما هى تستخدم كجزء داخل الاستعلامات Dlookup >>----> للبحث عن قيمة في حقل معين DCount >>----> لحساب عدد السجلات التي تستوفي شرط محدد DSum >>----> لحساب مجموع قيم حقل معين بناءً على شرط يبقى الاجابة ايه 1 رابط هذا التعليق شارك More sharing options...
Moosak قام بنشر يناير 7 مشاركة قام بنشر يناير 7 15 ساعات مضت, Moosak said: كيف تستخدم جمل SQL كمصدر لحقل غير منظم في النموذج ؟ ..... أو كحقل محسوب في الاستعلام ؟ طيب يا عم @ابو جودي الجميل .. 🙂 .. السؤال الأهم كان هو ذا 😁☝ إجابتك على هذا السؤال أهم من السؤال السابق 😄🌼 رابط هذا التعليق شارك More sharing options...
شايب قام بنشر يناير 7 مشاركة قام بنشر يناير 7 1 ساعه مضت, Moosak said: كيف تستخدم جمل SQL كمصدر لحقل غير منظم في النموذج ؟ ..... أو كحقل محسوب في الاستعلام ؟ السؤال ايضا لابي جودي ولكن الاخ شايب ملقوف بعض الشيء هناك البعض للاسف يستخدم نماذج فرعية بشكل مخفي ويقوم باسناد قيمة الحقل غير المنظم الى احد حقول النموذج المخفي وكل ذلك لعدم معرفته بكتابة معايير دوال تجميع المجال وبالذات عندما يكون لدينا اكثر من معيار اقتباس اخير اضافة ثلاث نماذج فرعية في الرئيسي بشكل مخفي لغرض الحصول على قيمة بعض الحقول امر غير عملي ويمكن بدلا من ذلك استخدام دالة dsum وبالشروط التي تحقق لنا الحصول على القيمة المطلوبة لكل حقل وحينها نسنغني عن ثلاث نماذج وثلاث استعلامات الخلاصة دوال D تسهل العمل وتحقق المطلوب باسهل الطرق وسواء كانت استعلام او جزء من استعلام فان الافضل استخدامها يكون وفقا لمتطلبات العمل والاخ شايب يعتقد ان البعض يفرط في استخدامها للحصول على قيمة حقول ليست ذات فائدة او ليست مطلوبة قي النموذج مرفق صورة لاستخدام ثلاث نماذج فرعية مبني كل نموذج منهم على استعلام بينما دالة DSUM تغني عنها اخيرا لا ننتقد عمل اي من الزملاء ولكن نحاول تصحيح بعض المفاهيم وتبقى وجهة نظر غير ملزمة الشايب 1 رابط هذا التعليق شارك More sharing options...
ابوخليل قام بنشر يناير 7 مشاركة قام بنشر يناير 7 2 ساعات مضت, شايب said: هناك البعض للاسف يستخدم نماذج فرعية بشكل مخفي ويقوم باسناد قيمة الحقل غير المنظم الى احد حقول النموذج المخفي الملاحظات الاملائية او اللغوية في هذا المنتدى لا تعني لي شيئا ولا تستحق التعقيب الا اذا تكرر استخدامها كثيرا .. اما لو حدثت من استاذك في اللغة والبيان فمؤكد انها سقطت سهوا . لذا وللفائدة العامة احببت ان ابين الفرق بين كلمة ( منظم ) وكلمة ( منضم ) عند استخدامها للتعبير عن نوع الحقل او النموذج منظم : من التنظيم والتنسيق وتنطق بضم الميم وفتح النون وتشديد الظاء مع الفتح منضم : من الانضمام والارتباط وتنطق بضم الميم وتسكين النون وفتح الضاد بدون تشديد والاخيرة هذه هي التي نعبر بها عن الحقول والنماذج ان كانت منضمة اي مرتبطة ام لا 1 رابط هذا التعليق شارك More sharing options...
شايب قام بنشر يناير 7 مشاركة قام بنشر يناير 7 16 دقائق مضت, ابوخليل said: منضم : من الانضمام والارتباط وتنطق بضم الميم وتسكين النون وفتح الضاد بدون تشديد نعم احسنت وغلطة الشايب بعشرة 🌹 1 رابط هذا التعليق شارك More sharing options...
ابو جودي قام بنشر يناير 7 مشاركة قام بنشر يناير 7 5 ساعات مضت, Moosak said: كيف تستخدم جمل SQL كمصدر لحقل غير منظم في النموذج ؟ على طريقة المعقدين امثالى اعمل مديول ضع الوظيفة الاتية Enum TypeWHERE asString asDate asNumeric End Enum Dim rsArryFieldName As Variant Function RetrieveData(ByRef tableName As String, _ ByRef fieldName As String, _ Optional varMyWHERE As Variant = "", _ Optional TypeMyWHERE As TypeWHERE = TypeWHERE.asString, _ Optional LinkCriteria As String = "") As Variant ' This function retrieves data from the specified table and field based on the provided criteria. ' Translate the criteria type to the appropriate SQL syntax Select Case TypeMyWHERE Case TypeWHERE.asDate LinkCriteria = "[" & fieldName & "] = #" & varMyWHERE & "#" '| Date Case TypeWHERE.asNumeric LinkCriteria = "[" & fieldName & "] = " & varMyWHERE '| Numeric Case TypeWHERE.asString LinkCriteria = "[" & fieldName & "] = '" & varMyWHERE & "'" '| String End Select ' Declare a DAO Recordset variable Dim rs As DAO.Recordset ' Open a recordset based on the provided table and field names Set rs = CurrentDb.OpenRecordset("SELECT * FROM " & tableName & " WHERE " & LinkCriteria) ' Check if the recordset is not empty If Not rs.EOF Then ' Create an array to hold values of all fields in the record Dim fieldValues() As Variant ReDim fieldValues(1 To rs.fields.Count) Dim i As Integer ' Populate the array with values from all fields For i = 1 To rs.fields.Count fieldValues(i) = rs.fields(i - 1).Value Next i ' Return the array containing values of all fields RetrieveData = fieldValues Else ' Return an empty string if no matching record is found RetrieveData = "" End If ' Close the recordset rs.Close Set rs = Nothing End Function وشوف التجربة من خلال هذا الروتين Sub ExampleUsage() ' Set the table name and field name Dim tableName As String Dim fieldName As String Dim criteriaValue As Variant Dim criteriaType As TypeWHERE ' Set default values tableName = "YourTableName" ' | << Set the table name fieldName = "YourFieldName" ' | << Set the field name criteriaValue = "YourCriteriaValue" ' | << Set Your Criteria Value criteriaType = TypeWHERE.asString ' | << Set the type of criteria and You can change it based on the case type of criteria ' Call the RetrieveData procedure Dim result As Variant result = RetrieveData(tableName, fieldName, criteriaValue, criteriaType) ' Display values of all fields in the array If IsArray(result) Then Dim i As Integer For i = 1 To UBound(result) Debug.Print i & ": " & result(i) Next i ' Display the value of field number 3 (For example, EmployeeName) Debug.Print result(3) Else ' If no matching record is found, show an appropriate message MsgBox "No matching record found for the specified criteria." End If End Sub وعيش مع الكود ومع بنات افكارك رابط هذا التعليق شارك More sharing options...
Moosak قام بنشر يناير 7 مشاركة قام بنشر يناير 7 3 ساعات مضت, ابو جودي said: على طريقة المعقدين امثالى اعمل مديول شكرا لك يا عمي المعقد 😅✋🏻 يعني في كل مكان أريد فيه استجلاب قيمة من الجداول ( في الحقول الغير منضمة) كبديل لدالة DSum مثلا يحتاج أعمل له دالة خاصة بيه بالشكل ذا !!!!؟؟؟ ليه كل التعقيد ده يا عم الناس 😅🌼 1 رابط هذا التعليق شارك More sharing options...
ابو جودي قام بنشر يناير 7 مشاركة قام بنشر يناير 7 لو لاحظت انا كتبت الدالة الاولى وحتكون ثابته على طول لاى جدول ولاى معايير الدالة التانية بس للاستدعاء كل ما عليك تكتب اسم الجدول والحقل والمعيار وتختار ان كان رقمى او نصى او تاريخ واللذيذ ان فى مصفوفة بتجيب لك كل الحقول يعنى تعرف متغير result ويكون مصدر بيانات الحقل result(i) طبعا لو فى عمليات حسابية معقدة داخل الكود تكون اسرع من الاستعلام لو استخدمت فيه دوال المجال وفى الاخير انت الان معاك اكثر من طريقة 1 رابط هذا التعليق شارك More sharing options...
Moosak قام بنشر يناير 7 مشاركة قام بنشر يناير 7 21 دقائق مضت, ابو جودي said: طبعا لو فى عمليات حسابية معقدة داخل الكود تكون اسرع من الاستعلام لو استخدمت فيه دوال المجال وفى الاخير انت الان معاك اكثر من طريقة شكرا لك عمي @ابو جودي على الفكرة والطرح .. 🙂 أنا فعلا عندي معاناة في السرعة حتى لما أعمل دالة وأدخل فيها عائلة ال D .. فبجرب نفس الدوال بس بال Recordset وأشوف الفرق .. في 6/1/2024 at 12:33, Moosak said: في نفس المكان أكتب : 50 and 80 مع الأخذ في الإعتبار نصيحة شايبنا الكريم @شايب 🙂 على فكرة أستاذ @jo_2010 الإجابة المباشرة على سؤالك كانت في هذا الرد 😅☝ رابط هذا التعليق شارك More sharing options...
محمد القدسي قام بنشر يناير 9 مشاركة قام بنشر يناير 9 طيب استاذي ومعلمي @ابو جودي لو تتحفنا بمثال بسيط من شان نعرف نعيش مع الكود ومع بنات افكارك 🌷 رابط هذا التعليق شارك More sharing options...
الردود الموصى بها
من فضلك سجل دخول لتتمكن من التعليق
ستتمكن من اضافه تعليقات بعد التسجيل
سجل دخولك الان