بحث مخصص من جوجل فى أوفيسنا
![]()
Custom Search
|
-
Posts
3258 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
127
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو Foksh
-
اعتقد هي فعلاً السبب استخدام الدالة IIF داخل GROUP BY هو السبب الأكبر .. شو رأيك أول شي نعمل استعلام تجميعي مبسط بدون دوال ، وبعدين نعمل استعلام نهائي لحساب الدوال من الجدول المؤقت طبعاً هنا رايحين نحسب cntRsob1 , cntRsob2 , alnesbah1 , tgyeem1 , و hala1 بسرعة أكبر من خلال الجدول المؤقت 🙄 برضو ما زلت بفكر بصوت عالي ، ولكن هو احد الإحتمالات
-
نسأل الله أن يمد في عمركم ، وأن يرزقكم الصحة والعافية ، ويسعدني كثيراً أن أترك انطباعاً له دلالة كبيرة على طيبكم ومنبعكم
-
ترتيب عمود بالاستعلام حسب ترتيب عمود بالجدول
Foksh replied to محمد119900's topic in قسم الأكسيس Access
لا شكر على واجب ,, هذا أقل ما يمكنني تقديمه في هذا الصرح الكبير -
ترتيب عمود بالاستعلام حسب ترتيب عمود بالجدول
Foksh replied to محمد119900's topic in قسم الأكسيس Access
أخي الكريم ، بداية تم اضافة حقل St_Sex في جدول الطلاب ،وتمتعيين القيمة للذكور والإناث ،وعليه جرب هذا الاستعلام :- SELECT St_Code & Switch( [StudyMaterialsEng]="ARABIC","ARA", [StudyMaterialsEng]="ART","ART", [StudyMaterialsEng]="ENGLISH","ENG", [StudyMaterialsEng]="MATH","MAT", [StudyMaterialsEng]="RELIGION","REL", [StudyMaterialsEng]="SCIENCE","SCI", [StudyMaterialsEng]="SOCIAL","SOC", [StudyMaterialsEng]="SPORT","SPO" ) AS Barcode, Query1.St_Code, Query1.St_Name, Query1.St_Group, Query1.StudyMaterialsEng, Query1.St_Sex FROM Query1 ORDER BY Switch( [StudyMaterialsEng]="ARABIC",1, [StudyMaterialsEng]="ART",2, [StudyMaterialsEng]="ENGLISH",3, [StudyMaterialsEng]="MATH",4, [StudyMaterialsEng]="RELIGION",5, [StudyMaterialsEng]="SCIENCE",6, [StudyMaterialsEng]="SOCIAL",7, [StudyMaterialsEng]="SPORT",8 ), [St_Group], Switch( InStr(1, [St_Sex], "ذكر") > 0, 1, InStr(1, [St_Sex], "أنثى") > 0, 2, True, 3 ), [St_Name]; الإستعلام Query5 هل يلبي مطلبك ؟؟ باركود نهائي.accdb -
وكي لا أكون قد فهمت بشكل متسرع كعادتي في نهاية اليوم 😅 ، هل ما قمت بتوضيحه صحيح أو أنني اتحدث في الغرب وملاحظاتكم في الشرق بخصوص هذه الجزئية :-
-
العفو منك يا معلمي ،، أنا أتعلم منك ومن خطاك صدقني ،، ولكن لنفكر بصوت عالٍ قليلاً قبل خروجي من العمل ,, في الجدول المؤقت وبعد إعداد النتيجة ، سينتج تقريباً 2250 سجل ( صحيح ؟ ) لو جأنا لفلترة الحقول بحيث :- الفصل الأول ، الصفوف الدنيا ، الصف الأول ، الذكور ، الحالة = غ فأن عدد السجلات سيكون في الجدول 92 سجل ، بينما عند فتح التقرير وفي مربع الإخصاء للبنون = 93 . وكذلك الأمر بالنسبة للبنات حيث النتيجة في الجدول 89 ، وفي التقرير = 90 . وفي الجدول عند الفرز للفصل الثاني كانت النتيجة = البنون 92 في الجدول وفي التقرير = 93 ، وللبنات في الجدول = 89 وفي التقرير = 90 أي بفارق واحد لا اعلم ان كان هناك شروط أخيرى للفلترة .. وعليه نستطيع باستخدام Dcount في مصدر بيانات مربعات النص جلب العدد الذي نريده دون أي دوال في الاستعلامات .. هذه فكرتي وملاحظاتي التي لا تقلل من جهدكم وعملكم ..
-
ما شاء الله ، ما شاء الله .. فكرة جميلة جداً أبدعت مهندسنا الغالي على هذه التحفة الجميلة ، وفعلاً قد يحتاجها الكثيرين ممن لا يعرفون كيفية التعامل مع لوحة المفاتيح عند النسخ واللصق للنصوص العربية .. عندي اقتراحين لا ينقصان من قيمة العمل شيئاً .. 1. يكون في زر لمسح المربعات النصية ، وخصوصاً بعد ان تم أخذ النتيجة وطبعاً لن أحتاج إلى اغلاق وفتح النموذج مرة أخرى .. 2. توظيف htmlfile للنسخ واللصق ، هل سيدعم جميع الأنظمة من نسخ ويندوز ؟؟ أما خلاف ذلك فالفكرة جميلة جداً
-
اعتذر منك ، فلم استفهم المشكلة وليس لدي حل 😃
-
يا صديقي ، جدول الطلاب الفرز فيه حسب الـحقل ID ، صحيح ؟؟؟ لكن لاحظ ان أول طالب هو بالصف الـ 5أ !!!!!! فكيف تريد الفرز يشبه فرز الجدول !!!!!
-
يا صاحبي ، الطلاب مترتبين معك حسب الاسم الابجدي ، ولا انت قصدك حسب رقم الطالب ؟؟؟؟
-
صدقت تماماً .. لم لا نحصل على عدد ايام الحضور بطريقة تعتمد على الجدول المؤقت بدلاً من الاستعلامات !!!!! فكرة بسيطة
-
هذه لم افهمها
-
الله يعطيك العافية أستاذنا @ابوخليل ، عمل جميل جداً ومجهود واضح يستحق التقدير ,, سؤال خطر ببالي وأكيد خطر ببال أخونا أسعد ، في الزر " إعداد النتيجة " يتم استخراج البيانات من الاستعلامات الى الجدول المؤقت لكلا الفصلين صحيح ؟؟ وهذا سيجعل عدد السجلات مضاعفاً تقريباً في كل مرة ، وسؤالي هو لم لا نجعل الأمر متروك لقائمة اختيار الفصل الدراسي ، بحيث من خلالها يتم تقسيم عمل الاستعلامات وبالتالي يقل الضغط على الاستعلامات الثلاثة في الزر !! هو مجرد رأي طبعاً في النهاية .
-
بالتوفيق يا رب .. وربنا ينجحك بجد من قلبي
-
دا العشم في محبتي لك برضو .. وانت عارف الكلام الصح . ربنا يديك الصحة والعافية من كل بلاء وهم .. لو محتاج حاجة هنا أو هناك في شغلك احكيلي ، وأنا أوعدك اني مش بفهم حاجة في شغلك هههههه
-
هههههه وانا بانتظار دوري لما توزع الحلويات عندي .. ولا إحنا ملناش من الحب جانب 😛 !! على العموم يسعدني تجربتك وإعلامي بالنتيجة أيضاً 😊 .
-
اممممم ، اذا كنت تعرف خطوات اضافة استعلام SQL ، فجرب الاستعلام التالي . حيث الفرز سيكون بالمادة أولاً ، ثم بالشعبة ، ثم الفرز باسم الطالب .. SELECT St_Code & Switch( [StudyMaterialsEng] = "ARABIC", "ARA", [StudyMaterialsEng] = "ART", "ART", [StudyMaterialsEng] = "ENGLISH", "ENG", [StudyMaterialsEng] = "MATH", "MAT", [StudyMaterialsEng] = "RELIGION", "REL", [StudyMaterialsEng] = "SCIENCE", "SCI", [StudyMaterialsEng] = "SOCIAL", "SOC", [StudyMaterialsEng] = "SPORT", "SPO" ) AS Barcode, Query1.St_Code, Query1.St_Name, Query1.St_Group, Query1.StudyMaterialsEng FROM Query1 ORDER BY Switch( [StudyMaterialsEng] = "ARABIC", 1, [StudyMaterialsEng] = "ART", 2, [StudyMaterialsEng] = "ENGLISH", 3, [StudyMaterialsEng] = "MATH", 4, [StudyMaterialsEng] = "RELIGION", 5, [StudyMaterialsEng] = "SCIENCE", 6, [StudyMaterialsEng] = "SOCIAL", 7, [StudyMaterialsEng] = "SPORT", 8 ), [St_Group], [St_Name]; باركود نهائي.accdb
-
تفضل ,, افتح الاستعلام Query2 باركود نهائي.accdb
-
حاولت تصور الفكرة ولم افهم بالضبط المطلوب للإحتياط ، هل الاستعلام التالي يفي بالغرض :- SELECT St_Code & Switch([StudyMaterialsEng]="ARABIC","ARA",[StudyMaterialsEng]="ART","ART",[StudyMaterialsEng]="ENGLISH","ENG",[StudyMaterialsEng]="MATH","MAT",[StudyMaterialsEng]="RELIGION","REL",[StudyMaterialsEng]="SCIENCE","SCI",[StudyMaterialsEng]="SOCIAL","SOC",[StudyMaterialsEng]="SPORT","SPO") AS Barcode, Query1.St_Code, Query1.St_Name, Query1.St_Group, Query1.StudyMaterialsEng FROM Query1 ORDER BY Switch([StudyMaterialsEng]="ARABIC",1,[StudyMaterialsEng]="ART",2,[StudyMaterialsEng]="ENGLISH",3,[StudyMaterialsEng]="MATH",4,[StudyMaterialsEng]="RELIGION",5,[StudyMaterialsEng]="SCIENCE",6,[StudyMaterialsEng]="SOCIAL",7,[StudyMaterialsEng]="SPORT",8), Query1.St_Code; تم اضافة عمود جديد في الاستعلام لمسميات التخصص أو المواد ، وتم الفرز من خلالها ..
-
للأسف لا أعلم هذه المعلومة ، فأساليب حذف السجلات تختلف حسب فكر المبرمج وصانع الأكواد ،، ولكن تماشياً مع فكرتك ، سنقوم بجعل الكود يتأكد مما اذا كان هناك سجل بعد السجل الحالي المستهدف حذفه ، فإن كان هناك سجل فيتم الانتقال اليه ، وإذا كان السجل المطلوب حذفه هو آخر سجل فسيتم الانتقال الى سجل جديد بعد اتمام عملية الحذف .. استبدل كودك السابق بهذا الكود لزر حذف السجل :- Private Sub Cmdel_Click() On Error GoTo Err_Cmdel_Click If MsgBox(":ستقوم الآن بحذف السجل المسجل بملف رقم" & vbCrLf _ & vbCrLf _ & [Nr] & " " & vbCrLf _ & [Name_T] & vbCrLf _ & " " & vbCrLf _ & "هل أنت متأكد ؟" & vbCrLf _ & "أضغط ( نعم ) للإستمرار ، أو ( لا ) لإلغاء الأمر", _ vbQuestion + vbYesNo + vbMsgBoxRight, "تحذيـــر") = vbYes Then Dim rs As DAO.Recordset Set rs = Me.RecordsetClone rs.Bookmark = Me.Bookmark rs.Delete ' بعد الحذف ، سيتم التحقق مما اذا كان هناك سجل لا حق أم لا If Not rs.EOF Then rs.MoveNext If Not rs.EOF Then Me.Bookmark = rs.Bookmark Else ' لا يوجد سجل بعده - انتقل إلى سجل جديد DoCmd.GoToRecord , , acNewRec End If Else ' لا يوجد سجلات بعد الحذف - انتقل إلى سجل جديد DoCmd.GoToRecord , , acNewRec End If rs.Close Set rs = Nothing End If Exit_Cmdel_Click: Exit Sub Err_Cmdel_Click: MsgBox Err.Description, vbExclamation + vbMsgBoxRight, "خطأ" Resume Exit_Cmdel_Click End Sub أما بالنسبة للأسباب :- فالمشكلة التي تحصل معك سببها أنه وبعد اجراء عملية الحذف ، فإن اكسيس تلقائياً يقوم بالانتقال إلى السجل التالي ( MoveNext ) لكن !!! وبما أنه لا يوجد سجل تالي ، هنا قد يحدث خطأ أو يبقى النموذج " بدون سجل " ، مما يسبب تجميد أو ظهور نموذج فارغ أو حتى خطأ غير متوقع.
-
نرجو منك الاهتمام باختيار عنوان مناسب لمواضيعك ، بحيث يشرح المشكلة كعنوان بشكل واضح .
-
-
ومشاركة مع أخي @kkhalifa1960 ، هذه فكرتي ، بحيث من خلال دالة عامة يمكن استخدامها في أي مكان في المشروع وليس ضمن حقل معين أو نموج معين .. انشئ مديول جديد أو في مديول موجود ، وألصق الكود التالي :- Public Function CalculateTax(ByVal salary As Double) As Double Const BASE1 As Double = 750 Const BASE2 As Double = 1166.667 Const FIXED_TAX_AT_BASE2 As Double = 28.883 Select Case True Case salary < BASE1 CalculateTax = 0 Case Round(salary, 3) = BASE2 CalculateTax = FIXED_TAX_AT_BASE2 Case salary < BASE2 CalculateTax = (salary - BASE1) * 0.05 Case Else CalculateTax = FIXED_TAX_AT_BASE2 + (salary - BASE2) * 0.1 End Select End Function ثم في حدث بعد التحديث لمربع نص "الراتب" :- Me.الضريبة = CalculateTax(Me.الراتب) وكنصيحة مستقبلية من أخ لأخيه المسلم :- ابتعد عن التسميات العربية للحقول والعناصر ومكونات قاعدة البيانات ، فحتماً ستسبب لك العديد من المشاكل في المشروع والتنفيذ .