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

ابوخليل

أوفيسنا
  • Posts

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

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

  • Days Won

    301

كل منشورات العضو ابوخليل

  1. نعم استاذي هو ما تفضلت به ولكن باستبعاد استخدام 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
  2. طلبي منه المثال من اجل اجعل نقل الفكرة الى مشروعه يسيرا اما اذا تسألني عن رأيي فما دام ان الكود نجح عنده .. فأقرب وأسهل طريقة هو استبدال المتغيرات الثابتة في الكود وجعلها متغيرة عامة فقط ومناداتها من الفورم .. اقصد هذه : Const MY_FONT As String = "Arial" ' اسم الخط Const MY_SIZE As Integer = 12 ' حجم الخط Const ROW_HEIGHT As Integer = 450 ' ارتفاع الصف (بالتويت Twips: كل 1 سم تقريباً 567 تويت)
  3. ليس من عاداتك عدم رفع مثال للتطبيق لو ارفقت مثالا يشتمل على جدول به بعض البيانات ... ونموذج مستمر وتقرير مصدرهما الجدول لكان افضل لك قلت مستمر .. لأن الحاجة فيها فعلا وخاصة التقرير من اجل احتواء البيانات
  4. سألت الذكاء الاصطناعي فاعطاني الاجابة التالية : ... وعذرا لتقدم الكلمات وتأخرها لوجود كلمات انجليزية بين العبارات العربية محتاج آلية 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 الموجودة في الكود تعطي ارتفاعاً مناسباً ومريحاً للعين، ويمكنك زيادتها أو نقصها حسب رغبتك. النماذج المفتوحة: تأكد من إغلاق جميع النماذج والتقارير قبل تشغيل الكود حتى لا يحدث تعارض أثناء محاولة الكود فتحها وتعديلها في وضع التصميم.
  5. المهم هو مصدر هذه الرسائل .. وهل هذا المصدر يدعم api? انت اذا ارسلت من هاتفك يظهر لدى الطرف الآخر هاتفك كاسم مرسل .. صحيح .. ولكن الرصيد مرتبط بقاعدة بيانات المصدر
  6. عليكم السلام ورحمة الله وبركاته الطريقة في اكسس وعندنا في السعودية : 1- الاشتراك في اي بوابة تقدم خدمة الرسائل 2- معظم هذه البوابات بل كلها تدعم api 3- تمنحك هذه الخدمة رقما خاصا فريدا Token تدرجه مع اليوزر والباسوورد في اكسس مع اسم مرسل خاص 4- عندنا يلزم موافقة هيئة الاتصالات على منح اسم مرسل (يخصك) .. واجراءاته يسيرة يمكن لأي شخص الحصول عليه هذا كل شيء نأتي لاستفسارك اذا كان مصدر هذه الرسائل بوابة من هذه البوابات يمكنك الاشتراك معهم وبمعلومية هاتفك يمكنك التواصل مع الدعم الفني لا ضافتها الى حسابك
  7. وحيث اشارك اخي العزيز ابو البشر هذا حل لجعل ايام الاختبارات جزئين كل جزء يمكن طباعنه بورقة مستقلة .. حيث جعلت الورقة تشتمل على اربعة ايام فقط افتح النموذج واكتب التاريخ اولا أو اختر من التقويم .. سيقوم اكسس بكتابة اليوم نيابة عنك واكتب في المربعات ماتريد ثم افتح التقرير .. ستظهر بياناتك في التقرير بالترتيب نفسه xsaadx.rar
  8. طيب سوف اعمل لك شيئا حسب طلبك
  9. طيب انا شرحت لك تصور ان الكشاف يومي ويحمل بيانات اليوم فقط ولا يمنع انك تطبع الايام كلها مرة وحدة وترسل كشاف يوم محدد هذا رأيي .. ولم توضح وجهة نظرك
  10. اقصد الكشاف يحتوي على : تاريخ اليوم واسمه /وفترة اولى /وثانية / والصف او الصفوف فقط يعني كل يوم بيومه بكذا يمكنك من خلال الفورم طباعة كشوف بعدد الايام فقط تغير تاريخ اليوم يعني اليوم الواحد سيحتوي على فترتين و 8 اعمدة كل فترة 4 اعمدة .. وعند الطباعة العمود الخالي سوف يتم تظليله آليا
  11. هل الطباعة هذه يومية ام اسبوعية ام تطبع مرة واحدة لجميع ايام الاختبار ؟ اجابتك تحدد الطريقة الصحيحة للتنفيذ من الاقتتباس اعلاه يبدو انها يوميا لذا ليش ما يكون العرض ليوم واحد فقط؟
  12. العرض في المثال غير مفهوم 1- ما فائدة الاعمدة المضللة .. اذا كل يوم يحتوي على بيانات عمودين 2- ترتيب الأيام غير مفهوم احاول اجد طريقة لمفهومي لما تريد على النحو التالي : يعني افكر : ليه ما يتم توزيع اللجان ايضا ضمن الأعمدة .. بحيث العمود يحتوي على : اليوم والتاريخ / الفترة / اللجنة / الصف او الصفوف داخل اللجنة فقط بعد الطباعة وفي المربع امام المعلم تضع علامة صح بدلا من رقم اللجنة اعتقد كذا اسرع للفهم من نظرة واحدة للكشاف يمكن جعل الكشاف اسبوعي ويمكن جعله يحتوي على جميع ايام الامتحان اذا راق لك يلزم جداول خدمية بالصفوف واللجان والفترات
  13. اسمحوا لي احبتي المفروض لا ابحث عن سبل لتحقيق نتيجة حسب الاعجاب بالشكل ابحث عن اقرب واقصر واخصر واصح طريقة تؤدي المطلوب البرمجة وخاصة اذا كان العمل والبيانات مهمة ليست مثل برمجة الألعاب وبرامج العرض مع كل احترامي كل المحاولات هي خارج منهج المعلم ليش استخدم اذن جحا والتعديل في الاصل متاح واعرف ان تعديلي البسيط هذا لن يعجب صاحب الموضوع JO_Lab9.rar
  14. مشاركة مع استاذنا منتصر ملحوظة صغيرة : NO و Yes كلمتان محجوزتان وايضا رأيي ليش الدوشة وتشغيل ادوات لها اول وليس لها آخر افتح حقل الرمز للتحرير واجعل قيمته الافتراضية تتغير بعد كل تحديث عندما تختار سجل جديد ستظهر القيمة الافتراضية الجديدة .. او حتى تم اغلاق وفتح النموذج سيظهر آخر قيمة افتراضية مع ملاحظة حذف وازالة القيمة الافتراضية من الجدول هذا كل ما تحتاجه فقط Private Sub NO1_AfterUpdate() Me.NO1.DefaultValue = Me.NO1.Value End Sub
  15. إذا مات ابن آدم انقطع عمله إلا من ثلاث: صدقة جارية، أو علم ينتفع به، أو ولد صالح يدعو له
  16. هذا بيت القصيد استاذنا العزيز الفائدة من استخدام الكود هو عند عدم الرغبة في اضافة القائمة الى القاعدة .. ويكون ظهور القائمة مؤقتا فقط عند الحاجة بارك الله لك في علمك ووقتك
  17. سألت الذكاء الاكتروني فأعطاني هذا الكود .. واعتبره هندسة عكسية لم اجربه بعد على اعتبار اسم الدالة المضافة : SCM_Copy Sub ExportMyCustomMenu() Dim cmb As CommandBar Dim ctrl As CommandBarControl Dim fileName As String Dim fileNo As Integer ' تحديد مسار حفظ الملف النصي الذي سيحتوي على تفاصيل القائمة fileName = CurrentProject.Path & "\SCM_Copy_Structure.txt" fileNo = FreeFile Open fileName For Output As #fileNo On Error Resume Next ' محاولة الوصول للقائمة المخصصة التي أنشأتها Set cmb = CommandBars("SCM_Copy") If cmb Is Nothing Then MsgBox "لم يتم العثور على القائمة المعنية!", vbCritical Close #fileNo Exit Sub End If ' كتابة تفاصيل القائمة الرئيسية Print #fileNo, "=== Custom Menu: " & cmb.Name & " ===" Print #fileNo, "Type: msoBarPopup" Print #fileNo, "-----------------------------------" ' المرور على كافة الأزرار والخيارات داخل القائمة واستخراج خصائصها For Each ctrl In cmb.Controls Print #fileNo, "Control Caption: " & ctrl.Caption Print #fileNo, "Control Type: " & ctrl.Type Print #fileNo, "On Action (الوظيفة المرتبطة): " & ctrl.OnAction Print #fileNo, "FaceID (أيقونة الزر): " & ctrl.FaceId Print #fileNo, "-----------------------------------" Next ctrl Close #fileNo MsgBox "تم استخراج هيكل الدالة والقائمة بنجاح في ملف نصي بجانب قاعدة البيانات!", vbInformation End Sub
  18. سبق وان اهديتنا هذه الدوال .. وعن نفسي هي جزء اساسي لأي عمل اقوم به الا هذه الاخيرة .. انا اعلم ان اي دالة منهن يمكن تحويرها والاضافة اليها او اختصارها .. بما يتوافق والحاجة سؤالي اخي العزيز جعفر هل يمكنني ان استل الدالة واستخرجها كوحدة نمطية او حتى تصديرها كملف نصي صحيح ان النقل من قاعدة لأخرى ايسر بكثير .. ولكن لنفترض اني عملت دالة خاصة على هذه الصفة .. وضاع مني الأصل .. واريد التعديل عليها
  19. عمل رائع محكم شكرا لك استاذ امين
  20. وهذه مساهمة مني بادراج الوحدة النمطية الموجودة في الملف St.Sys2.rar
  21. نعم .. طبعت ملف الـــ pdf على ورقة وهذه هي النتيجة .. احببت ان اسجلها مرئية ولكن من خارج الحاسوب من اجل تكتمل الرؤية ملف فيديو : WAM.rar
  22. طيب انت لديك في النموذج هذا الكود خلف زر وظيفته التحكم بالتعديل من عدمه : Private Sub أمر85_Click() If MsgBox("هـــــل تريــــد تحرير السجل الحالي ؟ ", vbInformation + vbYesNo + vbMsgBoxRight + 256, "تنبيـــــه") = vbYes Then AllowEdits = True DoCmd.CancelEvent Else AllowEdits = False End If End Sub لو اضفت اليه خاصية الاضافة لأصبح التحكم بيدك Private Sub أمر85_Click() If MsgBox("هـــــل تريــــد تحرير السجل الحالي ؟ ", vbInformation + vbYesNo + vbMsgBoxRight + 256, "تنبيـــــه") = vbYes Then AllowEdits = True AllowAdditions = True DoCmd.CancelEvent Else AllowEdits = False AllowAdditions = False End If End Sub
  23. عليكم السلام اكسس هذا عمله .. وينصح دوما بحفظ الصور بمجلد خارج قاعدة البيانات المنتدى مليء بأمثلة ومرفقات .. فقط عليك البحث وستجد الكثير واذا لديك فورم جاهز وتريد المساعدة على التنفيذ فقط ارفق مثالك .. وستجد اخوتك هنا يبادرون بمساعدتك
  24. ما هذا ما شاء الله النموذج الفرعي وعرفناه ولكن العجب في الصورة كيف خرقتها وجعلت جزأ منها شفافا
×
×
  • اضف...

Important Information