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

محمد طاهر عرفه

إدارة الموقع
  • Posts

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

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

  • Days Won

    37

كل منشورات العضو محمد طاهر عرفه

  1. هل جربت فتح الملف من مكانه او فتح برنامج الباور بوينت ، ثم اختيار فتح من قائمة ملف ، و اختيار الملف .؟؟؟ ربما أيضا يكون اصدار الاوفيس مختلف علي الجهازين فافتحه من الجهاز الذي عليه الاصدار الاعلي ( غالبا الجهاز الثاني ) ، ثم اختار حفظ باسم و اختار نوع الملفات للاصدار السابق
  2. جميل جدا :) :yess: يبدو أنه لايوجد شيء فى الاكسس الا و لو حل :lol: و انا شخصيا متشوق لمعرفة ثمرتها ، حيث أن تخيلها صعب الي حد ما :pp:
  3. هذا أفضل :yess: و سأعيد التفكير فى الموضوع بصوت عال قبل تعديل المثال: دالة الاختبار تقوم باستدعاء آخر رقم مسجل لمستخدم رقم1 فى زمن ز1 و نقارنها بما هو فى النموذج ، ثم تغير القيمة فى النموذج قبل الانتقال الي السجل التالي أو قبل الحفظ اذا لزم الامر و عملية الانتقال و الحفظ تحدث فى زمن ز2 و المشكلة لو قام مستخدم رقم 2 بعمل الاختبار و التسجيل معا فى توقيت بين ز1 و ز2 ، فلو قام بعمل الاختبار بعد ز2 فسيأخذ رقم جديد و لو قام بالتسجيل قبل ز1 فسيكون الرقم الذي سجله قد أخذ فى الاعتبار و هذا معناه تنفيذ الدالة بالكامل من قبل مستخدم 2 فى زمن تنفيذ جزء من الدالة ( ز2 - ز1 ) من قبل مستخدم رقم 1 و رغم أننا نتحدث عن أجزاء من الثانية ، الا أن وقوع الخطأ ممكن نتيجة لأي ظرف مثل اختلاف سرعة اداء الأجهزة مثلا ، فسيكون الزر الذي تفضل أبو هادي بوضع الكود الخاص باعادة الاختبار له فى وضع آمن ، حيث أن عدم التمكن من الذهاب للسجل الجديد معناه أن الرقم الحالي قد تم حجزه من قبل مستخدم آخر ، و سيتكرر الاختبار الي أن يتم حجز رقم غير متعارض . و كود الاخ أبو هادي يعتمد علي اختبار حدوث خطأعدم امكانية الذهاب الي سجل جديد (الخطأ رقم رقم 2105 ) و هذا معناه أن الرقم تم تسجيله من قبل مستخدم آخر لذا لم يمكن حفظ السجل و الذهاب الي السجل الجديد ؟؟ و لكن سيكون مازال هناك خطأ وارد فى الزر الأول ( زر الحفظ ) . و الذي قد ينتج عنه استبدال بيانات سبق تسجيلها فى الجدول أو هل يوجد اقتراح بديل بالنسبة لزر الحفظ ، و الذي حتي الآن سنضع فيه نفس الكود ثم اغلاق النموذج بعد التمكن من الذهاب الي سجل جديد دون حفظ الجديد . أم هناك اقتراحات بديلة بتنفيذ الاختبار بطريقة أخري بالنسبة لزر الحفظ ؟؟ Private Sub Command4_Click() On Error Resume Next Do Err.Clear If Me.NewRecord Then Me.id = checkid() DoCmd.GoToRecord , , acNewRec Loop Until Err.Number <> 2105 DoCmd.Close End Sub و الأن نقطة أخري للمناقشة ، هل الوضع هكذا أفضل أم أن نجعل النموذج بددون مصدر بيانات و نسجل البيانات علي الطاير ؟؟
  4. للأسف مازلت لم أعثر الا علي أن القيمة الافتراضية لخاصية الcaption لل label تكون هي اسم الكائن المرتبط متبوعة ب ":" و يمكن استغلال هذه العلاقة طالما لم نغير قيمة الcaption أو اسم الكائن . و هذا طبعا يضعفها كخاصية يمكن الاعتماد عليها ----------------- و استكمالا لموضوع القيمة الافتراضية ، فهذا كود من التعليمات عدلته قليلا الي التعامل مع مربع نص و تلوينه و جعله المربع الافتراضي ، أي أن خصائصه تصبح هي الخصائص الافتراضية لأي مربع نص فى النموذج الجديد أي تطبيق لموضوع الخصائص الافتراضية للكائنات بالكود أي الكود ينشيء نموذج جديد ، و فيه ينشيء مربع نص بخصائص معينة ، ثم يجعله مربع النص الافتراضي بعد تغيير خصائص لون الخلفية و الخط فيه فتصبح هذه الخصائص مطبقة علي كل مربعات النص التي سيتم انشاءها فى النموذج و طبعا الكود قابل للتطبيق علي باقي الكائنات Sub SetDefaultProperties() Dim frm As Form, ctlDefault As Control, ctlNew As Control ' Create new form. Set frm = CreateForm ' Return Control object representing default command button. Set ctlDefault = frm.DefaultControl(acTextBox) ' Set some default properties. With ctlDefault .BackColor = RGB(255, 255, 0) .FontWeight = 700 .FontSize = 12 End With ' Create new command button. Set ctlNew = CreateControl(frm.Name, acTextBox, , , , 500, 500) ' Set control's caption. 'ctlNew.Value = "officena" ' Restore form. DoCmd.Restore End Sub DefaultControl.rar
  5. السلام عليكم ما شاء الله ، تطبيق كامل علي الاكسيل :yess: هل هو الأخ ابو أحمد الذي يشارك هنا فى قسم الاكسيل ؟؟ مع الشكر لك و له ، و اذا لم يكن هو فلتدعوه للمشاركة معنا فى المنتدي :d مع ملاحظة أن مستوي تأمين الماكرو = متوسط ، يكفي للتشغيل ( بعد اعادة تشغيل الملف ثانية ) و اختيار تفعيل الماكرو عند السؤال . و بصفة عامة لا ينصح باختيار مستوي منخفض تحت أي ظرف تحسبا للملفات غير ملعومة المصدر ، و التي قد تكون بها اكواد ضارة ، و هذا طبعا ليس مقصود به هذا الملف ولكن بصفة عامة حيث أن الخيار سيبقي مفعلا مع كل الملفات الي ان تغيره ، و يوجد فى قسم خلاصة المشاركات مثال علي التحكم في مستوي التأمين بالكود مع تحياتي
  6. اخي أبو هادي ، أرجو التوضيح أكثر ما بنيت عليه الكود ، هو أن الرقم المحجوز علي النموذج يتم تغييره تلقائيا عند الحفظ أو الانتقال الي السجل التالي اذا كان قد تم تسجيله خلال فترة مليئ بيانات النموذج و كذلك الحال بالنسبة للمستخدمين الآخرين ، فاذا كان الرقم الظاهر علي النموذج قد تم تسجيله ، فيتم استبداله عند الحفظ أو الانتقال الي سجل آخر باستخدام الدالة . مع الشكر :d
  7. الطريقة الأولي و هي تغيير تنسيق مربع نص أو أي كائن آخر ، و من ضمن ذلك حذف تسميته ثم نختار من قائمة FORMAT SET CONTROL DEFAULTS اي ان الكائنات التي ستضاف من نوع هذا الكائن ، ستكون لها خصائص مماثلة لهذا الكائن الذي جعلناه افتراضيا فاذا حذفنا تسميت مربع نص و جعلنا لون الخلفية أصفر قبل جعله الافتراضي ، فستكون كل مربعات النص التي سننشأها بعده خلفيتها صفراء و بدون تسمية و هناك طريقة أخري من وضع التصميم لنموذج أو تقرير نضغط علي ايقونة ال CONTROL BOX رقم 3 فى الرسم ثم نختار الكائن المراد وضع خصائص افتراضية له و ليكن مربع النص مثلا (رقم 2 فى الصورة ) و نختار خصائص (رقم 1 ) فتظهر لنا لاخصائص الافتراضية لمربعات النص التي ستضيفها لاحقا و من ضمنها خاصية AUTOLABEL : أي يتم الحاق تسمية به عند اضافة كائن من هذا النوع لاحقا و يمكن تغيير أي خصائص أخري مثل التنسيق مثلا فيكون ما نختاره هنا هو الخصائص لكل مربعات النص التي سنضيفها لاحقا ، فنوفر بذلك الوقت فى تنسيقها و كذلك الحال بالنسبة لباقي الكائنات مع تحياتي
  8. اذا كانت مجموعة الاختيارات يتم تسجيل قيمتها فى حقل فى الجدول فسيمكن تغييرها تبعا لكل سجل أنشيء مجموعة الخيارات ثانية و عندما يسألك هل تريد تخزين القيمة فى الجدول ام تذكرها فقط ، اختار تسجيلها فى الحقل الذي اعددته لذلك ، علي أن تكون نوعية البيانات به مناسبة لخيارات التي اخترتها كقيم مناظر للمجموعات فى ال option group
  9. بالفعل نسيت اضافة دالة الاختبار الي الزر الآخر مثل زر الحفظ تم التعديل باضافة السطر الي كود سجل جديد ليصبح Me.id = checkid() DoCmd.GoToRecord , , acNewRec Me.id = Nz(DMax("[id]", "names") + 1) أي اضافة Me.id = checkid() و أشكرك علي التنبيه :)
  10. باختيار مقاس الصفحة = نصف الورقة
  11. مبدأيا أعتقد أن Label = تسمية فأنا أيضا أستخدم النسخة الانجليزية و صراحة لم أفكر فى هذا الموضوع لأن أول ما أفعله فى النموذج هو اختيار جميع التسميات المرتبطة بالكائنات ثم Cut paste لفصلها عن كائناتها لأنها تتعبني عند التنسيق أما عن وجود علاقة برمجية بينها فلا يخطر ببالي حاليا سوي أن القيمة الافتراضية لخاصية الcaption لل label تكون هي اسم الكائن المرتبط متبوعة ب ":" و أنه يمكن استخدام خاصية AutoLabel لتفعيل أو ابطال انشاء lable مع ال controls الجديدة ( لتفعيل او ابطال انشاء تسميات بصورة الية مرتبطة بالكائنات الجديدة ) مع تحياتي
  12. لنفرض أن لديك قيم فى الخلايات من a1:a10 تريد جمعها و كل القيم بها = 20 فيما عدا الخلية a4 بها القيمة = 10 للجمع الكامل =SUM(A1:A10) النتيجة 190 للجمع الكامل ثم طرح a4 =SUM(A1:A10)-A4 النتيجة 180 للجمع بدون a4 ثم طرح a4 =SUM(A1:A3;-A4;A5:A10) أو =SUM(A1:A3;A5:A10)-A4 النتيجة 170 و لسهولة كتابة Sum مع مجال متعدد نختار اول جزء ثم نضغط ctr و نختار التالي
  13. هذا مثال علي حساب التراكمي الكامل و التراكمي حتي القيمة السابقة فى النموذج ، ثم اضافة سجل جديد الي الجدول به القيمة و التراكمي و التراكمي حتي السجل السابق أرجو التجربة مع تحياتي PrevCum.rar
  14. هذا مثال بسيط عن استخدام الدالة dmax لعمل ترقيم مسلسل ، و نلجأ لهذه الطريقة عندما نريد السماح لنا بتعديل ترقيم المسلسل بسهولة و لأنه يمكن فى حالة تعدد المستخدمين أن يتم حجز رقم و اظهاره فى النموذج من قبل مستخدم بناء علي القيمة فى الجدول ، بينما يحجز مستخدم آخر نفس الرقم ، لذا يتم اعادة اختباره قبل التسجيل
  15. هي عندي on Change :d و انت الأدري بالنسخة العربية :pp:
  16. مع أول قراءة توقفت امام SendKeys "{BS}" و تصورت أنها خطأ :) و بعد ذلك تذكرت أن Backspace يمكن ارسالها بثلاث طرق فرجعتها من ملف التعليمات ، و الثلاث طرق هي : {BACKSPACE} {BS} {BKSP} و طبعا الأسهل هي ما ختارها الأخ أبو هادي و جميل التحذير اولا بأول ، حدث عند التغيير لمربعات النص كل يوم تظهر له استخدامات جديدة :)
  17. تم تعديل الدالة بناء علي موضوع فى قسم الأكسس ، و التعديل من أجل أخذ الأرقام السالبة فى الاعتبار Function ROUNDTO(MYNO As Double, MyFraction As Double) ' to round up or down with a certain value Dim MYBASE As Double, MYREM As Double If Abs(Round(MyFraction, 2)) <= 0 Then ROUNDTO = MYNO Exit Function End If Dim neg As Boolean neg = False If MYNO < 0 Then neg = True MYNO = Abs(MYNO * 100) MyFraction = MyFraction * 100 MYREM = MYNO Mod MyFraction 'MsgBox "rem : " & MYREM MYBASE = MYNO - MYREM 'MsgBox "Base : " & MYBASE If MYREM > 0 Then If MYREM > MyFraction / 2 Then ROUNDTO = MYBASE + MyFraction Else ROUNDTO = MYBASE End If Else ROUNDTO = MYNO End If ROUNDTO = ROUNDTO / 100 If neg = True Then ROUNDTO = -ROUNDTO End Function
  18. السلام عليكم من المفترض ان ازرار الخيار اذا كانت مبنية علي حقل معين ، فان ما يظهر بها يتغير بحسب الحقل . فهل مصدر بياناتها حقل معين ؟؟ فاذا لم يكن هذا هو الوضع فنرجو التوضيح كما ذكر الأخ أمير
  19. السلام عليكم أتصور ان المشكلة فى تعريفات الشبكة و صلاحياتها و ليس فى الاكسيس . الأخ ابو يعلي عذرا علي التأخير ، و سأضع المثال بإذن الله
  20. السؤال : كيف يمكن أن أضع قيود علي الادخال فى الخلايا مثلا ألا تزيد عن 6 أرقام الاجابة Data Validation Rules Whole Number is less than or equal to 1000000
  21. السلام عليكم الاضافة للاقسام الارشيفية ( خلاصة المشاركات ) فى كل الاقسام متاحة فقط لأعضاء الشرف و المشرفين ، و ذلك ثقة فى حسن تقديرهم لما سيضاف سواء كان جديد أو اضافة أو تعليق أو مشاركة أو مناقشة لموضوع قديم ، و ذلك متروك تماما لحسن تقديركم و شكرا لأبو هادي علي المثال المفيد مع تحياتي
  22. الحل البديل هو حساب النسب ثم الرسم أي لا نرسم النسب بناء علي جدول به القيم و انما نسحب النسب اولا ، ثم نرسمها ـ فيمكن بذلك استخدام أغلب أنواع الرسومات معها و الPivot Table هو الجدول المحوري مع تحياتي
  23. و اسمح لي أن أختلف معك من حيث أن الدمج البريدي بدائي ، بل أراه مفيد جدا ، و لكن يختلف مدي مناسبته تبعا للاحتياج و من يريد التعرف عليه من الاخوة فيوجد شرح مصور له فى قسم خلاصة مشاركات الوورد مع تحياتي
  24. هذا مثال مبسط و به الشرح لتصدير البيانات الي مكان محدد فى ملف وورد يتم انشاءه بناء علي قالب فى مكان محدد و تعتمد الفكرة علي عمل bookmark فى المكان المطلوب التصدير اليه في قالب الوورد ، و من ثم الارسال اليها و الكود أصلا من موقع أجنبي وضعه أحد الاخوة طالبا التعديل فيه ، علي برنامجه ، و هذه هي آخر نسخ التعديل علي برنامجه للتعامل مع الوورد . مع تحياتي sendtoword_abuwaleed_taher_5.rar
×
×
  • اضف...

Important Information