-
Posts
9980 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
406
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو jjafferr
-
طرق فرز وتصفية البيانات للنماذج ، وتصفية التقارير
jjafferr replied to jjafferr's topic in قسم الأكسيس Access
أخي محمد اعتذر منك ، ولكن طريقتك في عرض الموضوع غير صحيحة ، فانت ترفق رسالة خطأ وبدون ان توضح لنا كيف حصلت عليها !! يجب عليك ان تخبرنا الكود الذي استعملته ، والمتغيرات التي ادخلتها في النموذج ، حتى نعرف وين الخطأ !! والشيء الآخر ، انت تنتقل من شيء الى آخر ، والى شيء آخر ، وتطلب كود لشيء معين ، ثم تنتقل لشيء آخر ، وبطريقة اخرى ، فلا انت تستطيع التركيز ، ولا المتابع يمكنه المتابعة بتسلسل ، ولا انا استطيع المواصلة بهذه الطريقة !! رجاء خذ من وقتك ، وخطط تخطيطا دقيقا ، واكتب مالذي تريد الوصول اليه جعفر -
طرق فرز وتصفية البيانات للنماذج ، وتصفية التقارير
jjafferr replied to jjafferr's topic in قسم الأكسيس Access
تفضل بدون سجلات التاريخ الفارغة Between (IIf(Len([Forms]![main]![Datamasterform]![DateX] & "")=0,#01-Jan-1900#,[Forms]![main]![Datamasterform]![DateX])) And (IIf(Len([Forms]![main]![Datamasterform]![DateX] & "")=0,#01-Jan-2900#,[Forms]![main]![Datamasterform]![DateX]+65)) والشرح Between (IIf(Len([Forms]![main]![Datamasterform]![DateX] & "")=0,#01-Jan-1900#,[Forms]![main]![Datamasterform]![DateX])) And (IIf(Len([Forms]![main]![Datamasterform]![DateX] & "")=0,#01-Jan-2900#,[Forms]![main]![Datamasterform]![DateX]+65)) مع سجلات التاريخ الفارغة Between (IIf(Len([Forms]![main]![Datamasterform]![DateX] & "")=0,#01-Jan-1900#,[Forms]![main]![Datamasterform]![DateX])) And (IIf(Len([Forms]![main]![Datamasterform]![DateX] & "")=0,#01-Jan-2900#,[Forms]![main]![Datamasterform]![DateX]+65)) Or [DateX] Is Null والشرح Between (IIf(Len([Forms]![main]![Datamasterform]![DateX] & "")=0,#01-Jan-1900#,[Forms]![main]![Datamasterform]![DateX])) And (IIf(Len([Forms]![main]![Datamasterform]![DateX] & "")=0,#01-Jan-2900#,[Forms]![main]![Datamasterform]![DateX]+65)) Or [DateX] Is Null جعفر -
طرق فرز وتصفية البيانات للنماذج ، وتصفية التقارير
jjafferr replied to jjafferr's topic in قسم الأكسيس Access
أخي محمد الربكة عندك في And و Or ، فرجاء مراجعة عملهم بالضبط. رجاء عمل التالي: 1. وانت في النموذج ، اضغط على زرّي لوحة المفاتيح: Ctrl + G 2. وسيأخذك الى صفحة الكود ، وستلاحظ نافذة صغيرة في اسفل صفحة الكود ، 3. السطر التالي ، احذف اول اشارة من سطره ، الاشارة: ' 'Debug.Print myCriteria' 4. اذهب للنموذج واعمل التصفية التي تريدها 5. ارجع لصفحة الكود ، وستلاحظ في النافذة الصغيرة وجود كود التصفية 6. انسخ هذا الكود 7. اعمل استعلام فارغ 8. بالزر اليمين في الاستعلام ، غيّر الاستعلام من تصميم الى SQL 9. احذف الكلمات الموجودة في الاستعلام ، والصق كود النموذج 10. شغّل الاستعلام ، وشوف نتائجه 11. ضع الاستعلام في وضع تصميم ، وشوف تفاصيله ، وهي التفاصيل التي قمت بها انت لتصفية النموذج. 12. العب في And و Or للحقول التي تريدها ، وسوف تعرف ايهم تستعمل والانسب لعملك ، وعليه ترجع لكود تصفية النموذج وتغيّر فيه حسب طلبك ************************* هذا الموضوع هو انشاء تصفية ولعدة حقول ، والحمدلله استطعت انت ان تجرب النتائج جعفر -
وعليكم السلام انت طلبت معرفة الفرق ، ولكنك انت الذي تحدد اهمية الكود من عدمه هذا الكود: لإنشاء فاتورة جديدة ، وهي الجزئية التي لا تزال موجودة ولم تحذفها انت ، اما الجزء الذي حذفته فهو لعمل سجل في النموذج الفرعي اذا بعد الحذف كل شيء كان تمام ، فتوكل على الله واستمر ******************* اعمل ضغط واصلاح لبرنامجك حتى تصغر حجمه جعفر
-
طرق فرز وتصفية البيانات للنماذج ، وتصفية التقارير
jjafferr replied to jjafferr's topic in قسم الأكسيس Access
اذا ممكن تنزل المرفق في مشاركتي الاولى ، وشوف اذا تطلع لك نفس المشاكل -
طرق فرز وتصفية البيانات للنماذج ، وتصفية التقارير
jjafferr replied to jjafferr's topic in قسم الأكسيس Access
وحده وحده يا محمد 1. اذن الخطأ هذا كان بسبب انك ما ادخلت تاريخ ، ولأن الكود محتاج التاريخ في حقل DateX ، لهذا السبب حصلت على الخطأ: 2. خلينا نشوف الكود لوسمحت ، لأن الكود عندي شغال تمام بالنتائج الصحيحة ، فيمكن انت عملت تغيير في الكود وحصلت لك المشكلة جعفر شوف المرفق في مشاركتي الاولى -
طرق فرز وتصفية البيانات للنماذج ، وتصفية التقارير
jjafferr replied to jjafferr's topic in قسم الأكسيس Access
أخي محمد هل ادخلت التاريخ في الحقل DateX جعفر -
وعليكم السلام اجلب بيانات النموذج من جديد، بالتحديثات DoCmd.Requery اذهب الى السجل الاخير DoCmd.GoToRecord , , acLast اضف سجل فارغ في الجدول Sales_Invoice_sub Set Rs = CurrentDb.OpenRecordset("Sales_Invoice_sub") Rs.AddNew Rs.Update Rs.Close Set Rs = Nothing اجلب بيانات النموذج الفرعي من جديد، بالتحديثات Me.[Sales_Invoice_sub_Subform].Requery جعفر
-
طرق فرز وتصفية البيانات للنماذج ، وتصفية التقارير
jjafferr replied to jjafferr's topic in قسم الأكسيس Access
وعليكم السلام المفروض ان الاكسس يعطيك كود مثل هذا: ([testQ].[datex] between #01-Jul-17# and #27-Apr-17#) AND ([testQ].[country1]= 'اسكندرية' or [testQ].[country1]= 'الدقهلية' or [testQ].[country1] is null) اليك الكود ، وقد فككته الى اصغر مكوناته وانت اعمل المدرسة Dim City As String City = "اسكندرية" City2 = "الدقهلية" 'مجموعة اوامر الحقل الاول 'للتاريخ myCriteria = "(" myCriteria = myCriteria & "[testQ].[datex] between #" & Me.DateX & "# and #" & Me.DateX - 65 & "#" myCriteria = myCriteria & ")" 'مجموعة اوامر الحقل الثاني myCriteria = myCriteria & " AND " myCriteria = myCriteria & "(" 'للنص myCriteria = myCriteria & "[testQ].[country1]= '" & City & "'" myCriteria = myCriteria & " or " myCriteria = myCriteria & "[testQ].[country1]= '" & City2 & "'" myCriteria = myCriteria & " or " myCriteria = myCriteria & "[testQ].[country1] is null" myCriteria = myCriteria & ")" 'للرقم 'myCriteria = myCriteria & " AND " 'myCriteria = myCriteria & "[testQ].[ID]<> " & Me.ID 'Debug.Print myCriteria Me.TestF.Form.Filter = myCriteria Me.TestF.Form.FilterOn = True جعفر -
طرق فرز وتصفية البيانات للنماذج ، وتصفية التقارير
jjafferr replied to jjafferr's topic in قسم الأكسيس Access
-
أخي طارق رجاء اتباع الخطوات في الرابط التالي: جعفر
-
رجاء مراجعة الموضوع في هذا الرابط لتوضيح اي الخيارين تستعمل ولكن عودة للبرنامج الذي لا يعمل ، السؤال هو: ما الذي لا يعمل في البرنامج؟ جعفر
-
الذي فهمته صح ، ولكن ، بما انه كل جدول يمكنه ان يحتوي على مفتاح اساسي واحد فقط ، ولكنه يمكنك ان تجعل اكثر من حقل لا يقبل التكرار ، والطريقة هي ان تجعل هذه الحقول مفهرسة وان تجعلها لا تقبل التكرار (Indexed : Yes (No Duplicates) جعفر
-
عفوا أخي عبدالله انت قصدك: جعفر
-
مشكلة حدثت بعد ترقية الاكسيس من 2003 الى 2016
jjafferr replied to محمد احمد لطفى's topic in قسم الأكسيس Access
نعم ، هذه مشكلة معروفة في الاكسس 2016 يجب ان تكون الصور بصيغة bmp يجب عليك ان تحدث نسخة الاكسس ، والرابط التالي فيه تحديث لهذه الفقرة فقط: https://support.microsoft.com/en-us/kb/3114379 جعفر -
مشكلة حدثت بعد ترقية الاكسيس من 2003 الى 2016
jjafferr replied to محمد احمد لطفى's topic in قسم الأكسيس Access
وعليكم السلام الاكسس 2007 فما فوق ، فيه حماية ، لذلك فاول ما تفتح اي برنامج من مجلد غير موثوق به ، يظهر لك شريط وفي منتصفه مربع اصفر ، هنا تستطيع ان تنقر على المربع الاصفر (تمكين) لتخبر الاكسس انك تثق في البرنامج ، فعليه سيمكنك من العمل بالطريقة العادية ، وتشغيل الاوامر خلف الازرار اما اذا تجاهلت النقر على هذا المربع الاصفر ، فالنتيجة ستكون كما حصل لك ، انه لا شيء يعمل في الاكسس جعفر -
طرق فرز وتصفية البيانات للنماذج ، وتصفية التقارير
jjafferr replied to jjafferr's topic in قسم الأكسيس Access
سأفرد موضوع لهذا السؤال ، فقد تكرر هذا السؤال في عدة مواضيع 1. نحن نحتاج الى Requery ، اذا اردنا قراءة البيانات من جديد من الجدول او الاستعلام ، بينما في الطريقة اعلاه التصفية (me.Filter) تكون في بيانات النموذج مباشرة ، ولا تحتاج الى Requery ، حيث (me.FilterOn = True) يقوم بمقام Requery ، 2. اذا اردت عمل تصفية لأكثر من حقل ، يعني اكثر من شرط واحد ، فأنا لا احبذ ان اضع جميع الشروط في صف واحد ، فهذا يسبب خطأ ، وليس من السهولة معرفة اين الخطأ ، لذا انا استخدم كما في الرابط وعليه ، يصبح الكود هكذا: myCriteria = "([testQ].[datex] between #5/1/2017# and #7/1/2017#)" myCriteria = myCriteria & " AND ([testQ].[country1]<> " & Chr(34) & "اسكندرية" & Chr(34) myCriteria = myCriteria & " or [testQ].[country1] is null)" Me.TestF.Form.Filter = myCriteria Me.TestF.Form.FilterOn = True 3. عند عمل التصفية في النموذج (وليس من الاستعلام) ، ستلاحظ ان النموذج يخبرك انك عملت تصفية ، هكذا بالتظليل الاصفر: . 4. ولإزالة التصفية ، يجب عليك النقر على احد هذين المكانين المظللين بالاصفر ، او عمل زر: . والكود على نقر الزر سيكون: Me.TestF.Form.Filter = "" Me.TestF.Form.FilterOn = False جعفر -
وعليكم السلام واهلا وسهلا بك في المنتدى هذا له علاقة باعدادات الوندوز ، حيث انك لم تقم بإختيار دولة عربية لحروف Unicode ، رجاء التاكد اختيار لغة الدولة في رقم 4 من الرابط المرفق جعفر
-
طرق فرز وتصفية البيانات للنماذج ، وتصفية التقارير
jjafferr replied to jjafferr's topic in قسم الأكسيس Access
اذا اردت استبعاد معلومة مثل "الاسكندرية" مثلا من قائمة Country . فيصبح الكود . بينما اذا اردنا فرز بين التاريخين ، ونتيجته هكذا . ثم اردنا اضافة تصفية بإستبعاد الاسكندرية ، فيصبح كود التصفية هكذا . جعفر -
أخي محمد هذا الشرح تم لك جعفر
-
السلام عليكم تم طرح عدة اسئلة عن طريقة فرز او تصفية بيانات النموذج ، وسأقوم هنا بشرح الطريقتين: 1. إما عن طريق الاستعلام ، وهذا الرابط يعطينا المثال (والرجاء قراءته بتريث وتمعن وبالتفصيل) : 2. وإما عن طريق النموذج ، فميزتها: أ- انك تستطيع عمل تصفيه/تصفيات اضافية على النموذج او التقرير ، بعد تصفية الاستعلام ، ب- الاكسس سيعطيك الكود وسأشرح هنا كيفية عمل تصفية بيانات النموذج (وبنفس الطريقة يمكن عمل اكثر من تصفية ، وعمل فرز كذلك) : سأستعين بمرفق السؤال التالي للأخ محمد ، وبعد طلبت إذنه 1. قاعدة البيانات يجب ان تسمح لها ان تكون في وضع Layout View (هذا فقط حتى نتعلم الطريقة ، ويمكن الغاءه فيما بعد) ، . 2. النموذج يجب ان يكون غير منبثق . 3. هذا النموذج الذي نريد ان نعمل له تصفية بين تاريخين للحقل Date . 4. الهدف النهائي هو استخدام هذا الحقل لإدخال تاريخ معين ، ثم الضغط على زر "تصفية بين تاريحين" للقيام بالتصفية . 5. طريقة العمل: أ. بزر الفأرة اليمين نضغط في بيانات حقل التاريخ Date ، ب. ونختار تصفية التاريخ (السبب ان الاكسس اعطانا تصفية التاريخ هو لأن الحقل حقل تاريخ ، فلو كان الحقل نص او رقم لأعطانا الاكسس خيارات اخرى) ، ج. ونختار بين تاريخين (طبعا يمكنك اختيار اي من الاختيارات الاخرى ، وهذا يعتمد على التصفية التي تريد القيام بها) . د. تخرج لنا نافذة تطلب إدخال التاريخين (ويمكننا ادخال التاريخ بعدة طرق) ، وحسب اختيارنا ، والنتيجة المفروض ان نراها بعد التصفية هي السجلات بالاسهم الحمراء فقط . هـ. وهذه نتيجة التصفية اعلاه بين تاريخين . ح. والآن الى شرح كيفية الاستفادة مما عملناه اعلاه وتطبيقه في كود ، ننتقل بالنموذج الى وضع Layout View . ط. ونضغط بالفأرة اليسار على النموذج الفرعي الذي عملنا عليه التصفية ، ي. ثم ننظر في اعدادات النموذج ، الى ان نصل الى التصفية ، فنرى الكود الذي استعمله الاكسس للقيام بالتصفية ، فنعمل له نسخ ، ومثل ما اشرت اعلاه ، يمكننا اضافة اكثر من تصفية لأكثر من حقل ، ويمكن عمل فرز لحقل آخر ، ثم نرى الكود جاهزا هنا . ك. هذا الزر الذي سننقر عليه للقيام بالتصفية . ل. فنعمل الحدث على نقر الزر ، ثم نلصق الكود السابق ، ونقوم بتعديل التواريخ بما يناسب طلبنا ، وهو التصفية بين: تاريخ الحقل DateX و تاريخ الحقل DateX ناقصا 65 يوم ، او كما بالتواريخ في الملاحظات (باللون الاخضر في الكود) (ملاحظة مهمة للعلم: الاكسس يستخدم نظام التاريخ الامريكي في جميع عملياته ، والتاريخ الامريكي هو شهر/يوم/سنة ، كما نرى في كود التصفية) . م. وهنا نرى نتيجة النقر على زر "تصفية بين تاريخين" ، والذي يستعمل الكود اعلاه . ****************************************** اما اذا اردنا عمل استبعاد معلومة مثل "الاسكندرية" من قائمة Country . فيصبح الكود . ************************** الآن سنقوم بعمل اكثر من تصفية ، فرز بين تاريخين واستبعاد "الاسكندرية" فرزنا بين التاريخين ، وكانت نتيجته هكذا . واستبعاد معلومة مثل "الاسكندرية" من قائمة Country . فيصبح كود التصفية هكذا . والآن الى الكود الذي يضم هذه التصفيات: يجب ان نعرف اننا نتعامل مع مجموعة مختلفة من انواع الحقول ، وكل نوع له طريقة في عمل الكود ، فالسطر الاول هو تاريخ ، والسطر الثاني للنص ، ووضعت مثال في آخر سطر لحقل الرقم Dim City As String City = "اسكندرية" 'للتاريخ myCriteria = "([testQ].[datex] between #" & Me.DateX & "# and #" & Me.DateX - 65 & "#)" 'للنص myCriteria = myCriteria & " AND ([testQ].[country1]<> '" & City & "'" myCriteria = myCriteria & " or [testQ].[country1] is null)" 'للرقم 'myCriteria = myCriteria & " AND [testQ].[ID]<> " & Me.ID Me.TestF.Form.Filter = myCriteria Me.TestF.Form.FilterOn = True *********************************** كيف نعرف ان النموذج به تصفية: عند عمل التصفية في النموذج (وليس من الاستعلام) ، ستلاحظ ان النموذج يخبرك انك عملت تصفية ، هكذا بالتظليل الاصفر: . ولإزالة التصفية ، يجب عليك النقر على احد هذين المكانين المظللين بالاصفر ، او عمل زر: . والكود على نقر الزر سيكون: Me.TestF.Form.Filter = "" Me.TestF.Form.FilterOn = False جعفر 660.2.Test2006.mdb.zip
-
أخي محمد وبدل ان اعطيك سمكة ، ما رأيك ان اعلمك الصيد فبدل ان اعطيك الكود ، سأشرح لك كيف تحصل على الكود الصحيح ولكن ، اسمح لي استعين بمرفقك ، وسأعمل موضوع مستقل اشرح بالتفصيل عن طريقة فرز وتصفية البيانات في النموذج جعفر
-
النماذج ماتفتح وتظهر رسالة خطأ مكتوب بها راجع ActiveX (معدل)
jjafferr replied to فارس النجرس's topic in قسم الأكسيس Access
وعليكم السلام معظم الاخطاء التي تأتي بإسم ActiveX مصدرها الاعدادات الاقليمية للوندوز ، رجاء التاكد اختيار لغة الدولة في رقم 4 من الرابط المرفق جعفر -
وعليكم السلام اخي طارق المصطلح "محي" غير متعارف عليه ، ولا اعرف معناه في الاكسس رجاء توضيح طلبك بالتفصيل جعفر
-
وعليكم السلام في النموذج اعمل حقل التاريخ من ، والتاريخ الى ، ثم في الاستعلام في حقل التاريخ استعمل هذا الكود between [Forms]![main]![Datamasterform]![From_Date] and [Forms]![main]![Datamasterform]![To_Date] في الكود اعلاه ، لا تستطيع ان تُدخل Date() ، وانما يجب ان يكون تاريخ ، اما اذا اردت ادخال Date() ، فيكون ثابت هكذا ، ولا تستطيع اختيار تواريخ اخرى Between Date() And Date()-14 جعفر