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

ابوخليل

أوفيسنا
  • Posts

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

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

  • Days Won

    298

ابوخليل last won the day on يونيو 19

ابوخليل had the most liked content!

السمعه بالموقع

7160 Excellent

عن العضو ابوخليل

البيانات الشخصية

  • Gender (Ar)
    ذكر
  • Job Title
    طالب علم
  • الإهتمامات
    تحليل البيانات والتصميم

اخر الزوار

29755 زياره للملف الشخصي
  1. تم معالجة المسألة بحيلة ارجاع مقطع التفصيل الى = صفر rpt.Section(acDetail).Height = 0 المرفق ادناه تطبيق للكود اعلاه تم ايقاف الاجراء الخاص بالتعديل على النموذج والاكتفاء بما يخص التقارير استخدمت مكتبة وورد من اجل جلب جميع خطوط النظام لذا نلاحظ بطأ قليلا عند فتح الفورم ... وعلاجه هو في عمل دالة خاصة يتم فيها انتقاء خطوط حسب الرغبة وقابلة للاضافة والحذف xsaadx4.rar
  2. نعم استاذي هو ما تفضلت به ولكن باستبعاد استخدام Api ودوشة 32 و 64 حتى لو اردنا عرض جميع خطوط النظام فمكتبة وورد تفي بالغرض هذه الدالة لوحدها تكفي على النحو التالي .. ولكن مسألة ارتفاع الحقل بحاجة الى اعادة نظر حسب تصوري لمراعاة مقطع التفصيل عند التصغير والتكبير يعني اعتقد يجب ان يكون هناك توافق طردي بينهما Sub ApplyGlobalFormatting(ByVal MyFont As String, ByVal MySize As Integer, ByVal RowHeight As Integer) Dim db As DAO.Database Dim doc As DAO.Document Dim frm As Form Dim rpt As Report Dim ctl As Control Set db = CurrentDb On Error Resume Next '---------------------------------------------------- For Each doc In db.Containers("Forms").Documents DoCmd.OpenForm doc.Name, acDesign, , , , acHidden Set frm = Forms(doc.Name) For Each ctl In frm.Controls If ctl.ControlType = acTextBox Or ctl.ControlType = acComboBox Or ctl.ControlType = acListBox Or ctl.ControlType = acLabel Then ctl.FontName = MyFont ctl.FontSize = MySize End If ctl.Height = RowHeight Next ctl DoCmd.Close acForm, doc.Name, acSaveYes Next doc '------------------------------------------------------- For Each doc In db.Containers("Reports").Documents DoCmd.OpenReport doc.Name, acDesign, , , acHidden Set rpt = Reports(doc.Name) For Each ctl In rpt.Controls If ctl.ControlType = acTextBox Or ctl.ControlType = acComboBox Or ctl.ControlType = acLabel Then ctl.FontName = MyFont ctl.FontSize = MySize End If ctl.Height = RowHeight Next ctl DoCmd.Close acReport, doc.Name, acSaveYes Next doc Set db = Nothing End Sub '---------------------------------------------------- Private Sub btnApply_Click() Call ApplyGlobalFormatting(Me.cmbFonts.Value, Me.txtSize.Value, Me.txtHeight.Value * 567) MsgBox "تم تطبيق التنسيقات بنجاح!", vbInformation End Sub
  3. طلبي منه المثال من اجل اجعل نقل الفكرة الى مشروعه يسيرا اما اذا تسألني عن رأيي فما دام ان الكود نجح عنده .. فأقرب وأسهل طريقة هو استبدال المتغيرات الثابتة في الكود وجعلها متغيرة عامة فقط ومناداتها من الفورم .. اقصد هذه : Const MY_FONT As String = "Arial" ' اسم الخط Const MY_SIZE As Integer = 12 ' حجم الخط Const ROW_HEIGHT As Integer = 450 ' ارتفاع الصف (بالتويت Twips: كل 1 سم تقريباً 567 تويت)
  4. ليس من عاداتك عدم رفع مثال للتطبيق لو ارفقت مثالا يشتمل على جدول به بعض البيانات ... ونموذج مستمر وتقرير مصدرهما الجدول لكان افضل لك قلت مستمر .. لأن الحاجة فيها فعلا وخاصة التقرير من اجل احتواء البيانات
  5. سألت الذكاء الاصطناعي فاعطاني الاجابة التالية : ... وعذرا لتقدم الكلمات وتأخرها لوجود كلمات انجليزية بين العبارات العربية محتاج آلية vba اختار منها الخط وحجمه وارتفاع الصف بحيث تطبق علي كل النملذج والتقارير بقاعدة البيانات اكسس _____________________________________________________________________________________________________________________________ لتطبيق آلية موحدة لتغيير الخط، حجمه، وارتفاع الصفوف في جميع النماذج والتقارير داخل قاعدة بيانات Microsoft Access، فإن أفضل وأسرع طريقة هي استخدام كود VBA يمر على كافة عناصر قاعدة البيانات (Forms & Reports) ويعدل خصائصها برمجياً دفعة واحدة، بدلاً من تعديلها يدوياً نموذجاً تلو الآخر. إليك الطريقة بالتفصيل مع الكود الجاهز: 1. كود الـ VBA الموحد قم بفتح محرر الـ VBA (بالضغط على Alt + F11)، ثم اختر Insert -> Module وانصخ الكود التالي بداخله. ملاحظة: تم تعيين قيم افتراضية في أعلى الكود (اسم الخط، الحجم، وارتفاع الصف)، يمكنك تغييرها مباشرة من الكود بما يناسبك. VBA Sub ApplyGlobalFormatting() Dim db As DAO.Database Dim doc As DAO.Document Dim frm As Form Dim rpt As Report Dim ctl As Control ' ---- حدد الإعدادات المطلوبة هنا ---- Const MY_FONT As String = "Arial" ' اسم الخط Const MY_SIZE As Integer = 12 ' حجم الخط Const ROW_HEIGHT As Integer = 450 ' ارتفاع الصف (بالتويت Twips: كل 1 سم تقريباً 567 تويت) ' ---------------------------------- Set db = CurrentDb ' أولاً: تطبيق الإعدادات على جميع النماذج (Forms) On Error Resume Next ' لتجنب الأخطاء في حال كان العنصر لا يدعم الخاصية For Each doc In db.Containers("Forms").Documents ' فتح النموذج في وضع التصميم وخفي DoCmd.OpenForm doc.Name, acDesign, , , , acHidden Set frm = Forms(doc.Name) ' المرور على كل العناصر داخل النموذج For Each ctl In frm.Controls ' تعديل الخط والحجم لعناصر النصوص والتسميات If ctl.ControlType = acTextBox Or ctl.ControlType = acComboBox Or ctl.ControlType = acListBox Or ctl.ControlType = acLabel Then ctl.FontName = MY_FONT ctl.FontSize = MY_SIZE End If ' تعديل ارتفاع الصف في حال كان النموذج يعرض كجدول (Datasheet) frm.DatasheetRowHeight = ROW_HEIGHT Next ctl ' إغلاق وحفظ التعديلات DoCmd.Close acForm, doc.Name, acSaveYes Next doc ' ثانياً: تطبيق الإعدادات على جميع التقارير (Reports) For Each doc In db.Containers("Reports").Documents ' فتح التقرير في وضع التصميم وخفي DoCmd.OpenReport doc.Name, acDesign, , , acHidden Set rpt = Reports(doc.Name) ' المرور على كل العناصر داخل التقرير For Each ctl In rpt.Controls If ctl.ControlType = acTextBox Or ctl.ControlType = acComboBox Or ctl.ControlType = acLabel Then ctl.FontName = MY_FONT ctl.FontSize = MY_SIZE End If Next ctl ' إغلاق وحفظ التعديلات DoCmd.Close acReport, doc.Name, acSaveYes Next doc ' تنظيف الذاكرة Set db = Nothing MsgBox "تم تطبيق الخط الجديد، الحجم، وارتفاع الصفوف على جميع النماذج والتقارير بنجاح!", vbInformation, "اكتملت العملية" End Sub 2. طريقة تشغيل الآلية أمامك خياران لتشغيل هذا الكود بناءً على رغبتك: الخيار أ: التشغيل المباشر والسريع (لمرة واحدة) وأنت داخل محرر الـ VBA وضمن الكود أعلاه، ضع مؤشر الماوس في أي مكان داخل الكود. اضغط على زر F5 من لوحة المفاتيح أو اضغط على زر التشغيل الأخضر (Run) في الشريطة العلوية. ستستغرق العملية ثوانٍ معدودة (تعتمد على حجم قاعدة البيانات)، ثم ستظهر لك رسالة النجاح. الخيار ب: ربط الكود بزر أمر (للتحكم المستقبلي) إذا كنت تريد إتاحة هذه الميزة للمستخدم أو لنفسك لتغيير الخطوط مستقبلاً عبر واجهة البرنامج: قم بإنشاء نموذج جديد (Form) وسمِّه مثلاً "لوحة التحكم بالخطوط". أضف زر أمر (Button). في حدث "عند النقر" (On Click) الخاص بالزر، اختر [Event Procedure] واكتب: VBA Call ApplyGlobalFormatting 💡 نصائح هامة جداً قبل التشغيل: خذ نسخة احتياطية: يرجى أخذ نسخة احتياطية من قاعدة البيانات قبل تشغيل الكود، لأن عمليات الـ VBA التي تقوم بحفظ النماذج تلقائياً لا يمكن التراجع عنها (Ctrl + Z). وحدة قياس الارتفاع (Twips): الـ Access يتعامل مع ارتفاع الصفوف بوحدة قياس تُدعى Twip. (الـ 1 بوصة = 1440 تويت، والـ 1 سم = 567 تويت تقريباً). القيمة 450 الموجودة في الكود تعطي ارتفاعاً مناسباً ومريحاً للعين، ويمكنك زيادتها أو نقصها حسب رغبتك. النماذج المفتوحة: تأكد من إغلاق جميع النماذج والتقارير قبل تشغيل الكود حتى لا يحدث تعارض أثناء محاولة الكود فتحها وتعديلها في وضع التصميم.
  6. المهم هو مصدر هذه الرسائل .. وهل هذا المصدر يدعم api? انت اذا ارسلت من هاتفك يظهر لدى الطرف الآخر هاتفك كاسم مرسل .. صحيح .. ولكن الرصيد مرتبط بقاعدة بيانات المصدر
  7. عليكم السلام ورحمة الله وبركاته الطريقة في اكسس وعندنا في السعودية : 1- الاشتراك في اي بوابة تقدم خدمة الرسائل 2- معظم هذه البوابات بل كلها تدعم api 3- تمنحك هذه الخدمة رقما خاصا فريدا Token تدرجه مع اليوزر والباسوورد في اكسس مع اسم مرسل خاص 4- عندنا يلزم موافقة هيئة الاتصالات على منح اسم مرسل (يخصك) .. واجراءاته يسيرة يمكن لأي شخص الحصول عليه هذا كل شيء نأتي لاستفسارك اذا كان مصدر هذه الرسائل بوابة من هذه البوابات يمكنك الاشتراك معهم وبمعلومية هاتفك يمكنك التواصل مع الدعم الفني لا ضافتها الى حسابك
  8. وحيث اشارك اخي العزيز ابو البشر هذا حل لجعل ايام الاختبارات جزئين كل جزء يمكن طباعنه بورقة مستقلة .. حيث جعلت الورقة تشتمل على اربعة ايام فقط افتح النموذج واكتب التاريخ اولا أو اختر من التقويم .. سيقوم اكسس بكتابة اليوم نيابة عنك واكتب في المربعات ماتريد ثم افتح التقرير .. ستظهر بياناتك في التقرير بالترتيب نفسه xsaadx.rar
  9. طيب سوف اعمل لك شيئا حسب طلبك
  10. طيب انا شرحت لك تصور ان الكشاف يومي ويحمل بيانات اليوم فقط ولا يمنع انك تطبع الايام كلها مرة وحدة وترسل كشاف يوم محدد هذا رأيي .. ولم توضح وجهة نظرك
  11. اقصد الكشاف يحتوي على : تاريخ اليوم واسمه /وفترة اولى /وثانية / والصف او الصفوف فقط يعني كل يوم بيومه بكذا يمكنك من خلال الفورم طباعة كشوف بعدد الايام فقط تغير تاريخ اليوم يعني اليوم الواحد سيحتوي على فترتين و 8 اعمدة كل فترة 4 اعمدة .. وعند الطباعة العمود الخالي سوف يتم تظليله آليا
  12. هل الطباعة هذه يومية ام اسبوعية ام تطبع مرة واحدة لجميع ايام الاختبار ؟ اجابتك تحدد الطريقة الصحيحة للتنفيذ من الاقتتباس اعلاه يبدو انها يوميا لذا ليش ما يكون العرض ليوم واحد فقط؟
  13. العرض في المثال غير مفهوم 1- ما فائدة الاعمدة المضللة .. اذا كل يوم يحتوي على بيانات عمودين 2- ترتيب الأيام غير مفهوم احاول اجد طريقة لمفهومي لما تريد على النحو التالي : يعني افكر : ليه ما يتم توزيع اللجان ايضا ضمن الأعمدة .. بحيث العمود يحتوي على : اليوم والتاريخ / الفترة / اللجنة / الصف او الصفوف داخل اللجنة فقط بعد الطباعة وفي المربع امام المعلم تضع علامة صح بدلا من رقم اللجنة اعتقد كذا اسرع للفهم من نظرة واحدة للكشاف يمكن جعل الكشاف اسبوعي ويمكن جعله يحتوي على جميع ايام الامتحان اذا راق لك يلزم جداول خدمية بالصفوف واللجان والفترات
  14. اسمحوا لي احبتي المفروض لا ابحث عن سبل لتحقيق نتيجة حسب الاعجاب بالشكل ابحث عن اقرب واقصر واخصر واصح طريقة تؤدي المطلوب البرمجة وخاصة اذا كان العمل والبيانات مهمة ليست مثل برمجة الألعاب وبرامج العرض مع كل احترامي كل المحاولات هي خارج منهج المعلم ليش استخدم اذن جحا والتعديل في الاصل متاح واعرف ان تعديلي البسيط هذا لن يعجب صاحب الموضوع JO_Lab9.rar
  15. مشاركة مع استاذنا منتصر ملحوظة صغيرة : NO و Yes كلمتان محجوزتان وايضا رأيي ليش الدوشة وتشغيل ادوات لها اول وليس لها آخر افتح حقل الرمز للتحرير واجعل قيمته الافتراضية تتغير بعد كل تحديث عندما تختار سجل جديد ستظهر القيمة الافتراضية الجديدة .. او حتى تم اغلاق وفتح النموذج سيظهر آخر قيمة افتراضية مع ملاحظة حذف وازالة القيمة الافتراضية من الجدول هذا كل ما تحتاجه فقط Private Sub NO1_AfterUpdate() Me.NO1.DefaultValue = Me.NO1.Value End Sub
×
×
  • اضف...

Important Information