اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    404

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

  1. وبعد قراءتي لطلبك بتمعن اكثر ، انت لا تريد 20 20 ، وانما تسلسل واحد ، ولكن مجموعات 🙂 هذا الكود يقوم بالعمل: Dim rst As DAO.Recordset Dim S As Integer Dim G As Integer Dim i As Integer Set rst = CurrentDb.OpenRecordset("Select * From all_data") S = 0 G = 1 'loop through the table Do Until rst.EOF S = S + 1 rst.Edit rst!OT_Seq = S rst!OT_Groups = G rst.Update 'If S = 20 Then 'Repeating 1-20 'S = 0 If Int(S / 20) = S / 20 Then 'No Repeat G = G + 1 End If rst.MoveNext Loop rst.Close: Set rst = Nothing MsgBox "Done" جعفر 1332.Report_Counter_20_ONLY.mdb.zip
  2. اضفت الحقلين OT_Groups للمجموعة ، و OT_Seq للتسلسل ، الى الجدول ، التسلسل 1-20 ويتكرر لكل مجموعة ثم استخدمت الكود التالي لهذه الارقام: Dim rst As DAO.Recordset Dim S As Integer Dim G As Integer Dim i As Integer Set rst = CurrentDb.OpenRecordset("Select * From all_data") S = 0 G = 1 'loop through the table Do Until rst.EOF S = S + 1 rst.Edit rst!OT_Seq = S rst!OT_Groups = G rst.Update If S = 20 Then S = 0 G = G + 1 End If rst.MoveNext Loop rst.Close: Set rst = Nothing MsgBox "Done" جعفر 1332.Report_Counter_20_ONLY.mdb.zip
  3. تفضل 🙂 لا تضع قيمة للحقل Counter في التقرير ، وسنعطيه القيمة من الكود: Private Sub تفصيل_Format(Cancel As Integer, FormatCount As Integer) Me.Counter = Nz(Me.Counter, 0) + 1 If Me.Counter = 21 Then Me.Counter = 0 End If End Sub هذا ليس بمعيار !! جعفر جعفر 1332.Report_Counter_20_ONLY.mdb.zip
  4. هذه مسؤولية صاحب الموضوع ، لأنه ادرى بموضوعه 🙂 ولكن ، نضطر بعض الاوقات من التدخل بعد ان ينسى صاحب الموضوع 🙂 جعفر
  5. السلام عليكم 🙂 بما ان نوع الحقل في الجدول عبارة عن رقم ، فالشيء الذي يغير شكل الرقم هو التنسيق ، . فممكن في الاستعلام ، وانت في الحقل ، افتح على الاعدادات ، وقم بتغيير التنسيق . جعفر
  6. السلام عليكم 🙂 كان المفروض اعلن عن الخطوة التالية ، بس نسيت 🙂 للمتطوعين: التقاط الصورة بكاميرا Webcam - قسم الأكسيس Access - أوفيسنا (officena.net) جعفر
  7. السلام عليكم 🙂 ومشاركة مع اخوي الدكتور حسنين 🙂 للمتطوعين: التقاط الصورة بكاميرا Webcam - قسم الأكسيس Access - أوفيسنا (officena.net) جعفر
  8. شكرا اخواني: خالد ، sandanet ، احمد ، وابو عبدالله 🙂 جعفر
  9. شكرا اخوي خالد 🙂 في مجموعة قليلة من الاعضاء اللي يعرفون فائدة هذا البرنامج 😢 اما انا ، فهذا البرنامج اضعه على سطح المكتب ، ويكون مفتوح ، وبعد الانتهاء من بعض تعديلات على اي من برامجي ، على طول استعمل البرنامج هذا ، اطمئن ان الكود نظيف ويعمل اللي كتبته (في احد البرامج في اول ايامي في الاكسس ، من كثرة ما عملت تعديل على الكود ، صار الكود ما يعطيني نتائج صحيحة ، وحينها كنت محتاج لهذا البرنامج!!) ، ويعمل لي نسخ مختلفة (وهذا شيء جدا مهم ، وهو خلال عمل او تعديل اي برنامج ، يجب عمل نسخ منه خلال العمل وليس بعده فقط ، وانا عادة يكون عندي على الاقل 10 نسخ او اكثر ، وكنت اعمل نسخ ولصق) . يا ريت تخبرنا تجربتك ويخبرنا بقية الاعضاء ، فهي الطريقة الوحيدة لنشر مفهوم هذا البرنامج 🙂 دكتور حسنين ، واخوي محمد ، شكرا لكم 🙂 جعفر
  10. السلام عليكم 🙂 النسخة 4 من البرنامج ، وفيها التعديلات المطلوبة للعمل على النواتين 32بت و 64بت ، وبميزات اخرى : عندما يعطي برنامج الاكسس اخطاء - النسخة رقم 4 + عمل نسخ احتياطية - قسم الأكسيس Access - أوفيسنا (officena.net) جعفر
  11. السلام عليكم 🙂 المرفق يحتوي على النسختين mdb و accdb ، ويعمل على النواتين 32بت و 64 بت 🙂 النسخة السابقة: عندما يعطي برنامج الاكسس اخطاء - النسخة رقم 3 - قسم الأكسيس Access - أوفيسنا (officena.net) بعض الاوقات عند تشغيل برنامج اكسس ، نجد انه يغلق بدون سبب ، بمثل هذه الرسالة: . او يُظهر اخطاء ، مثل هذه الرسائل وغيرها : . . . هذا معناه ان برنامجك يحتاج تنظيف من الاخطاء التي فيه ، او يحتاج الى استعادة حيويته مرة اخرى ، بالتنظيف والصيانة 🙂 وعادة نقوم بهذا العمل على برنامج الواجهات FE ، ولكن برنامج الجداول BE يستفيد منه كذلك. نافذة البرنامج : . 1. نختار الملف ، سواء mdb او accdb ، اما ملفات mde و accde ، فلن تستفيد من Decompile/Compile ، ولكنها ستستفيد من الضغط والاصلاح ، وعمل نسخ اضافية ، 2. اذا البرنامج فيه كلمة سر (ليس كلمة سر المستخدمين ، ولا كلمة سر الكود VBE) ، فيمكنك كتابة كلمة السر هنا ، وسيقوم البرنامج بحفظه/نسخه في ذاكرة الكمبيوتر ، وتستطيع استعمال الالصاق Ctl+v عندما يسألك البرنامج ، كما يقوم البرنامج بإستخدامه في فتح برنامجك لمراجعة الاخطاء. اذن هناك خطوة يمكن للبرنامج ان يستخدم كلمة السر مباشرة ، وهناك خطوة يجب عليك ادخال كلمة السر عن طريق اللصق Ctl+v ، تم إضافة ميزة عمل النسخ الاحتياطية لبرنامجك ، بحيث تحفظ نسخة من برنامجك بعد التنظيف ، في المجلد الذي تختاره ، ويكون الحفظ المسلسل هكذا : . يعني بدل ان تحفظ نسخة من برنامجك بطرقك الخاصة ، تستطيع وبعد تعديل برنامجك ، ان تتأكد انه خالي من الشوائب ، ويعمل نسخه منه تلقائيا 🙂 وهناك عدة طرق لإختيار مجلد الحفظ: 3. حفظ الملف في نفس مجلد البرنامج ، 4. اختار المجلد ، وبعد اختياره ، تستطيع ان تنقر على الزر 9 ليقوم البرنامج بحفظ هذا المجلد/المسار في البرنامج للمرات القادمة ، 5. اول مسار تريد حفظه هو: استعمل الخطوة 4 في فتح المجلد الرئيسي لحفظ النسخ الاحتياطية (واذا ما كان عندك ، فقم بعمله من الآن) ، ثم احفظ المجلد/المسار بالزر 9. وبعدها ، البرنامج تلقائيا يختار هذا المجلد (اذا قمت بحفظه بواسطة الزر 9) كلما فتحت البرنامج ، اي انه اول سجل في الجدول ، 6. عن طريق الخطوة 4 ، تستطيع حفظ اي عدد من المجلدات ، ولاحقا تستطيع ان تختار هذا المجلد لحفظ النسخة الاحتياطية فيه ، 7. عدم عمل نسخ احتياطية ، للأسف الشديد 😞 8. عند اختيار اي من الاختيارات اعلاه ، سيضع البرنامج مسار مجلد النسخ الاحتياطية هنا ، 11. الآن نطلب من البرنامج ان يقوم بعمله ، بالخطوات التالية : أ. يحفظ نسخة من البرنامج وقبل مساسه (حتى اذا لا قدر الله وحصلت مشكلة في العمل ، يمكنك الرجوع لهذه النسخة) ، ويقوم البرنامج بعمل النسخة في مجلد برنامجك ، بإضافة bak_ في نهاية اسم الملف ، كما في الصورة ، واذا احتجت لإستعمال الملف لاحقا ، فقط قم بحذف bak_ وسيعمل البرنامج : ب. ضغط واصلاح : لما تحذف سجلات من برنامجك ، فإن البرنامج يعطي اشارة الى الجدول بإخفائه ، ولا يقوم بحذفه إلا بعد الضغط والاصلاح ، عند عمل فهرسة لحقول في الجدول ، فإن البرنامج يحتاج الى ضغط واصلاح حتى يقوم بترتيب اعدادات الفهرسة ، عند العمل على البرنامج لفترة طويلة بإضافات وتعديل وحذف ، فالبرنامج يحتاج الى ضغط واصلاح لإعادة ترتيب الفهرسة لسرعة عمل البرنامج ، قد يتم خطأ في تسجيل سجل ، ربما بسبب انطفاء الكهرباء ، او اغلاق الكمبيوتر وبدون اغلاق البرنامج ، وهذا السجل يجعل الجدول لا يعمل بطريقة صحيحة ، والضغط والاصلاح يحل هذه الاشكالية ، البرنامج عبارة عن ملف في الكمبيوتر ، ولما تعمل البرنامج ، فإن الكمبيوتر يحفظ البرنامج على المكان الفارغ من القرص الصلب ، ولما تضيف سجلات جديدة ويكبر حجم البرنامج ، فقد يحفظ الكمبيوتر الجزء الجديد في مكان آخر على القرص الصلب ، مكان غير ملاصق للجزء الاصل (وهذه طريقة حفظ الكمبيوتر للملفات) ، وبهذه الطريقة يصبح الملف موجدا على اجزاء مختلفة من القرص الصلب ، مما يجعل البرنامج ابطأ ، ولما تعمل ضغط واصلاح ، فإن الاكسس يقوم بحساب المساحة المطلوبة للبرنامج ، ثم يقوم بعمل برنامج جديد في مكان جديد على القرص الصلب ، وينسخ البرنامج اليه ، مما يجعل البرنامج اسرع ، بالاضافة الى امور اخرى لا يتم حلها إلا بالضغط والاصلاح ، الضغط والاصلاح لا علاقة له بالكود ، ولا يقوم بفحصه. ج. Decompile : لما نكتب الكود ، الاكسس يحتفظ بكل سطر بلغة P-Code الخاصة بمايكروسوفت (والتي تُستخدم لبعض البرامج الاخرى كذلك) ، وعند تنفيذ الكود ، فالاكسس ينفذ كود لغة P-Code ، وفي بعض الاحيان من كثرة التعديلات على الكود ، فإنه لا يتم تحديث P-Code بطريقة صحيحة ، فينتج عنه رسائل اخطاء اكسس ولا يعمل البرنامج بطريقة صحيحة ، وعند عمل Decompile ، فالاكسس يحذف كود P-Code القديم ، ويسجل فيه كود جديد من VBA ، مما يجعل البرنامج اصغر في الحجم زيادة في الكفائة. د. Compile : بهذه الطريقة ، نتأكد من عدم وجود اخطاء في الكود ، وبقايا ومخلفات ، مثل: لما نحذف كائنات في النموذج/التقرير ، ولا نحذف الحدث الخاص بها ، فالكود يجب حذفة ، لعدم وجود الحدث الي يستعمله ، لما نحذف كائن في النموذج/التقرير ، وفي الكود نكون قد اعطيناه قيمة ، فيجب حذف المسمى من الكود ، عند كتابة كود بطريقة غير صحيحة وغير مكتملة ، فيجب تصحيحها ، وهذه الخطوه مهم لتحويل البرنامج الى mde او accde . يحاول البرنامج القيام بهذا العمل لبرنامجك ، ولكنه اذا لم يستطيع ويحصل على اخطاء ، فإنه يخبرك بهذا ، ويخبرك مكان الخطأ في الكود ، سواء وحدة نمطية او نموذج او تقرير ، ويعطيك مثل الرسالة التالية ، والتي اذا اخترت نعم ، فيوقف البرنامج ، . ويأخذك لبرنامجك الى نافذة الكود VBE ، ثم يجب عليك ان تعمل التالي يدويا: . وتُصلح الاخطاء التي في برنامجك ، الى ان لا يعطي برنامجك اخطاء اخرى ، وبعدها تستطيع ان ترجع الى البرنامج ليقوم جميع الخطوات مرة اخرى. هـ. اذا اشتغلت خطوات البرنامج وبدون اخطاء ، فهنا يقوم البرنامج بعمل نسخة احتياطية من برنامجك ، وبالتسلسل الصحيح ، وفي المجلد الذي اخترته. 12. البرنامج يخبرك عن الخطوات التي تمت 🙂 جعفر Decompile_4.accdb..zip Decompile_4.mdb..zip Decompile_4.2.accdb.zip
  12. هنيئا لك هذا التوفيق (وَمَا يُلَقَّاهَا إِلا ذُو حَظٍّ عَظِيمٍ) 🙂 اما نحن الخطّاؤون فننتظر مغفرة من ربنا وقبول اعمالنا بقضاء هذه الصوات الفائته ، ونطلب منكم الدعاء لنا 🙂 جعفر
  13. ما كنت ادري اذا صرحت بالامر ، يمكنني قفز المتغيرات المطلوبة من الامر !! شكرا اخوي خالد على هذه المعلومة 🙂 ، وهل بإمكاننا المضي على هذا المنوال بالنسبة لبقية الاوامر كذلك؟ جعفر
  14. وعليكم السلام اخوي ابو ابراهيم 🙂 طريقه جميلة ، شكرا لك على هذه التحفة 🙂 ولكني اخاف على صاحب الموضوع منها ، لأنها بطيئة ، وسيدخل في WebBrowser وحلاوة الوانه وخصوصا في البحث ، ويضيع ، مثل اخونا وائل عبد الرحمن 🙂 جعفر
  15. وبسبب تدقيقك ، واعطائنا المعلومة الدقيقة ، والملف الصحيح ، تم التخلص من المربع 🙂 الآن تاتي هذه الرسالة: جعفر 1322.5.تحويل.accdb.zip
  16. لفتح اي ملف وبأي صيغة ، ولنفرض ان الحقل FileName يحتوي على اسم ومسار الملف في الكمبيوتر ، اكتب هذا الكود في حدث النقر على الزر : application.followhyperlink chr(34) & me.FileName & chr(34) جعفر
  17. رجاء احذف بيانات الجدول ، واستوردها من جديد ، فهذا السطر اللي انت عملته ، موجود في الكود بطريقة تختلف قليلا ، وبعدين اعمل مقارنتك
  18. وعليكم السلام 🙂 وههلا وسهلا بك في المنتدى 🙂 للإستفادة القصوى من المنتدى ، رجاء قراءة قوانين المنتدى : https://www.officena.net/Tips/Questions.htm الطرق الاسهل: 1. استخدم الامر OpenArgs لإرسال اسم النموذج ، عند فتح النموذج Z02_Load_File ، هكذا : DoCmd.OpenForm "Z02_Load_File",,,,,,me.name او لإرسال الرقم 123456 DoCmd.OpenForm "Z02_Load_File",,,,,,"123456" وفي اي من احدات النموذج Z02_Load_File ، يمكنك قراءة هذه القيمة بإستعمال me.OpenArgs ، وطبعا تقدر ترسل اي عدد من القيم بهذه الطريقة ، الشرط ان القيم تكون بين "" ، مثل : DoCmd.OpenForm "Z02_Load_File",,,,,,"123456|Finance_Department" ثم في النموذج Z02_Load_File ، تستعمل الامر Split لتفرق بين هذه القيم. 2. ان تعمل متغير في وحدة نمطية مستقلة ، هكذا : Option Compare Database option explicit Global myValue as string او public myValue2 as integer ثم لم تعطي القيمة قبل ان تفتح النموذج Z02_Load_File ، هكذا: myValue = "This is a test" DoCmd.OpenForm "Z02_Load_File" او myValue = 998877 DoCmd.OpenForm "Z02_Load_File" وفي اي من احدات النموذج Z02_Load_File ، يمكنك قراءة هذه القيمة بإستعمال اسم المتغير myValue او myValue2 ، 3. او نفس طريقة #2 ، ولكن باستعمال TempVar جعفر
  19. وعليكم السلام 🙂 تم حذف هذه الخاصية من ابتداءً من الاكسس 2007 ، واذا بحث في المنتدى ، فالاعضاء ما شاء الله عليهم ، عملوا مجموعة برامج تساعدك في هذا الموضوع 🙂 جعفر
  20. السلام عليكم 🙂 مع مراعاة نصائح اخي ابوعبدالله ، تفضل ملفك بعد التعديل 🙂 جعفر 565310943_.mdb
  21. ورجاء ، اعطنا ملفك كاملا وهذه الاحاديث الطويلة (على ملف وورد مثلا) التي تسبب لك مشكلة ، واخبرنا الخطوات التي تتبعها وتعمل لك المشكلة ، حتى نستطيع معرفة المشكلة
  22. طبيعي يكون هناك فرق بين حقل نص (عدد الحروف لا يتعدى 255 حرف) وبين حقل مذكرة (عدد الحروف لا يتعدى 65535 حرف اذا تم ادخاله يدويا ، بينما يستوعب بيانات بمقدار 1 جيجا اذا تم ادخالها برمجيا) ، ولكن هذا لا علاقة له بإغلاق الاكسس ، فالمشكلة في مكان آخر ، الفرق هو في ملف البرنامج والبرمجة جعفر
  23. السلام عليكم 🙂 1. لكل برنامج ميزاته وعيوبه ، فالافضل من الان ان توزن ميزات وعيوب اكسس ، ومنها تواصل العمل في الاكسس او تنتقل الى برنامج آخر لا يوجد به شرطي 😁 2. البرمجة مثل الطبخ ، اللحم مثلا ، كل طباخ يتفنن فيه بطريقة ويعمل طبخة تختلف عن الاخرى وعن الطباخ الآخر ، وقد تعجبك طبخة معينة من يد طباخ معين ، ولا هذا لا يعني ان طبخ الطباخين الآخرين ليس أفضل ، وانما هو قرار اتخذته انت ولأسبابك (مثل طبخ الام ، فلا طبخ يضاهي طبخها 🙂). فالمبرمجين بتجاربهم يعطوك الجواب (على قدر سؤالك) ، ولكل مبرمج طريقته في البرمجة ، وانت تتخذ القرار بإستخدام طريقة او اخرى ، لأسبابك، 3. بسبب انك تتعامل مع حقل مذكرة Memo ، والذي فيه بيانات ثقيلة ، فليست جميع الطرق مناسبة لك ، وقد تكون هناك طرق جميلة في المنظر ، ولكن فليكن عندك هدف ، المنظر او السرعة ، لآنه في الكثير من الاوقات لا تستطيع دمج الاثنين مع بعض. لهذا السبب ، وفي كل سؤال تسأله ، يجب عليك ان تخبرنا بأن السرعة/المظهر هو اهتمامك ، وعليه سيقوم الخبراء بالدلو بتجاربهم 🙂 4. النقاط اعلاه ، يجب اتخاذ القرار فيها من الآن ومن بداية مشروعك ، لأننا هنا في المنتدى رأينا الكثير ، ولما البرنامج تصبح به مشاكل ، يعود ويلقي اللوم على الخبراء. 5. معظم الأسئلة ، يحتاج المبرمج الى وقت وجهد (وفي بعض الاحيان ، البحث) وليعمل البرمجة لها ، فكلما كنت دقيقا في هدفك وغايتك ، واعطيت المعلومات بالتفصيل وبأمثلة ، كلما سهّلت على المبرمج/العضو عمله 🙂 رجاء تشرح النقطتين بالتفصيل وبأمثلة نعم ، وفكرت في استعمال التاريخ وتحوله الى رقم ، ولكن رأيت ان الترقيم العشري افضل واسهل للإستعمال على المدى البعيد ، وخصوصا ان البرامج تتعامل مع الرقم اسرع من النص والتاريخ 🙂 جعفر
×
×
  • اضف...

Important Information