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

jjafferr

أوفيسنا
  • Posts

    9980
  • تاريخ الانضمام

  • تاريخ اخر زياره

  • Days Won

    406

كل منشورات العضو jjafferr

  1. أخي محمد اعتذر منك ، ولكن طريقتك في عرض الموضوع غير صحيحة ، فانت ترفق رسالة خطأ وبدون ان توضح لنا كيف حصلت عليها !! يجب عليك ان تخبرنا الكود الذي استعملته ، والمتغيرات التي ادخلتها في النموذج ، حتى نعرف وين الخطأ !! والشيء الآخر ، انت تنتقل من شيء الى آخر ، والى شيء آخر ، وتطلب كود لشيء معين ، ثم تنتقل لشيء آخر ، وبطريقة اخرى ، فلا انت تستطيع التركيز ، ولا المتابع يمكنه المتابعة بتسلسل ، ولا انا استطيع المواصلة بهذه الطريقة !! رجاء خذ من وقتك ، وخطط تخطيطا دقيقا ، واكتب مالذي تريد الوصول اليه جعفر
  2. تفضل بدون سجلات التاريخ الفارغة 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 جعفر
  3. أخي محمد الربكة عندك في And و Or ، فرجاء مراجعة عملهم بالضبط. رجاء عمل التالي: 1. وانت في النموذج ، اضغط على زرّي لوحة المفاتيح: Ctrl + G 2. وسيأخذك الى صفحة الكود ، وستلاحظ نافذة صغيرة في اسفل صفحة الكود ، 3. السطر التالي ، احذف اول اشارة من سطره ، الاشارة: ' 'Debug.Print myCriteria' 4. اذهب للنموذج واعمل التصفية التي تريدها 5. ارجع لصفحة الكود ، وستلاحظ في النافذة الصغيرة وجود كود التصفية 6. انسخ هذا الكود 7. اعمل استعلام فارغ 8. بالزر اليمين في الاستعلام ، غيّر الاستعلام من تصميم الى SQL 9. احذف الكلمات الموجودة في الاستعلام ، والصق كود النموذج 10. شغّل الاستعلام ، وشوف نتائجه 11. ضع الاستعلام في وضع تصميم ، وشوف تفاصيله ، وهي التفاصيل التي قمت بها انت لتصفية النموذج. 12. العب في And و Or للحقول التي تريدها ، وسوف تعرف ايهم تستعمل والانسب لعملك ، وعليه ترجع لكود تصفية النموذج وتغيّر فيه حسب طلبك ************************* هذا الموضوع هو انشاء تصفية ولعدة حقول ، والحمدلله استطعت انت ان تجرب النتائج جعفر
  4. وعليكم السلام انت طلبت معرفة الفرق ، ولكنك انت الذي تحدد اهمية الكود من عدمه هذا الكود: لإنشاء فاتورة جديدة ، وهي الجزئية التي لا تزال موجودة ولم تحذفها انت ، اما الجزء الذي حذفته فهو لعمل سجل في النموذج الفرعي اذا بعد الحذف كل شيء كان تمام ، فتوكل على الله واستمر ******************* اعمل ضغط واصلاح لبرنامجك حتى تصغر حجمه جعفر
  5. اذا ممكن تنزل المرفق في مشاركتي الاولى ، وشوف اذا تطلع لك نفس المشاكل
  6. وحده وحده يا محمد 1. اذن الخطأ هذا كان بسبب انك ما ادخلت تاريخ ، ولأن الكود محتاج التاريخ في حقل DateX ، لهذا السبب حصلت على الخطأ: 2. خلينا نشوف الكود لوسمحت ، لأن الكود عندي شغال تمام بالنتائج الصحيحة ، فيمكن انت عملت تغيير في الكود وحصلت لك المشكلة جعفر شوف المرفق في مشاركتي الاولى
  7. أخي محمد هل ادخلت التاريخ في الحقل DateX جعفر
  8. وعليكم السلام اجلب بيانات النموذج من جديد، بالتحديثات 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 جعفر
  9. وعليكم السلام المفروض ان الاكسس يعطيك كود مثل هذا: ([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 جعفر
  10. أخي محمد رجاء استخدام الاداة التالية لعرض الكود ، حتى يظهر بالطريقة الصحيحة: جعفر
  11. أخي طارق رجاء اتباع الخطوات في الرابط التالي: جعفر
  12. رجاء مراجعة الموضوع في هذا الرابط لتوضيح اي الخيارين تستعمل ولكن عودة للبرنامج الذي لا يعمل ، السؤال هو: ما الذي لا يعمل في البرنامج؟ جعفر
  13. الذي فهمته صح ، ولكن ، بما انه كل جدول يمكنه ان يحتوي على مفتاح اساسي واحد فقط ، ولكنه يمكنك ان تجعل اكثر من حقل لا يقبل التكرار ، والطريقة هي ان تجعل هذه الحقول مفهرسة وان تجعلها لا تقبل التكرار (Indexed : Yes (No Duplicates) جعفر
  14. عفوا أخي عبدالله انت قصدك: جعفر
  15. نعم ، هذه مشكلة معروفة في الاكسس 2016 يجب ان تكون الصور بصيغة bmp يجب عليك ان تحدث نسخة الاكسس ، والرابط التالي فيه تحديث لهذه الفقرة فقط: https://support.microsoft.com/en-us/kb/3114379 جعفر
  16. وعليكم السلام الاكسس 2007 فما فوق ، فيه حماية ، لذلك فاول ما تفتح اي برنامج من مجلد غير موثوق به ، يظهر لك شريط وفي منتصفه مربع اصفر ، هنا تستطيع ان تنقر على المربع الاصفر (تمكين) لتخبر الاكسس انك تثق في البرنامج ، فعليه سيمكنك من العمل بالطريقة العادية ، وتشغيل الاوامر خلف الازرار اما اذا تجاهلت النقر على هذا المربع الاصفر ، فالنتيجة ستكون كما حصل لك ، انه لا شيء يعمل في الاكسس جعفر
  17. سأفرد موضوع لهذا السؤال ، فقد تكرر هذا السؤال في عدة مواضيع 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 جعفر
  18. وعليكم السلام واهلا وسهلا بك في المنتدى هذا له علاقة باعدادات الوندوز ، حيث انك لم تقم بإختيار دولة عربية لحروف Unicode ، رجاء التاكد اختيار لغة الدولة في رقم 4 من الرابط المرفق جعفر
  19. اذا اردت استبعاد معلومة مثل "الاسكندرية" مثلا من قائمة Country . فيصبح الكود . بينما اذا اردنا فرز بين التاريخين ، ونتيجته هكذا . ثم اردنا اضافة تصفية بإستبعاد الاسكندرية ، فيصبح كود التصفية هكذا . جعفر
  20. أخي محمد هذا الشرح تم لك جعفر
  21. السلام عليكم تم طرح عدة اسئلة عن طريقة فرز او تصفية بيانات النموذج ، وسأقوم هنا بشرح الطريقتين: 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
  22. أخي محمد وبدل ان اعطيك سمكة ، ما رأيك ان اعلمك الصيد فبدل ان اعطيك الكود ، سأشرح لك كيف تحصل على الكود الصحيح ولكن ، اسمح لي استعين بمرفقك ، وسأعمل موضوع مستقل اشرح بالتفصيل عن طريقة فرز وتصفية البيانات في النموذج جعفر
  23. وعليكم السلام معظم الاخطاء التي تأتي بإسم ActiveX مصدرها الاعدادات الاقليمية للوندوز ، رجاء التاكد اختيار لغة الدولة في رقم 4 من الرابط المرفق جعفر
  24. وعليكم السلام اخي طارق المصطلح "محي" غير متعارف عليه ، ولا اعرف معناه في الاكسس رجاء توضيح طلبك بالتفصيل جعفر
  25. وعليكم السلام في النموذج اعمل حقل التاريخ من ، والتاريخ الى ، ثم في الاستعلام في حقل التاريخ استعمل هذا الكود between [Forms]![main]![Datamasterform]![From_Date] and [Forms]![main]![Datamasterform]![To_Date] في الكود اعلاه ، لا تستطيع ان تُدخل Date() ، وانما يجب ان يكون تاريخ ، اما اذا اردت ادخال Date() ، فيكون ثابت هكذا ، ولا تستطيع اختيار تواريخ اخرى Between Date() And Date()-14 جعفر
×
×
  • اضف...

Important Information