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

ابوخليل

أوفيسنا
  • Posts

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

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

  • Days Won

    299

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

  1. انا جربت المثال : يعمل على أكمل وجه وبدون أخطاء العمل جميل واحترافي وفيه الكثير من الافكار والفوائد ولكن لي وجهة نظر .. حول الحاجة الفعلية العملية لمثل هذه الأفكار . بعيدا عن الكثير من الادوات ارى لو تم تصميم المثال على النحو التالي : - استبعاد الكثير من الادوات غير الضرورية من نماذج وغيرها والاكتفاء بنموذج واحد هو نموذج البداية ( الدخول ) فقط فقط على اساس ان الامثلة تعليمة ميسرة - الاكتفاء بقاعدة بيانت خلفية واحدة تكون بجانب الواجهات ويتم الارتباط بها آليا عند تشغيل البرنامج كل مرة يقلع فيها البرنامج - تعديل النسخة الاحتياطية بحيث تكون عبارة عن تاريخ وووقت ( Now ) فقط كرقم مثل هذا التنسيق : 202607080253 .. السنة والشهر واليوم والساعة والدقيقة ... ويمكن تركها كتاريخ صريح على نموذج البداية اربعة ازرار : النسخة الاحتياطية / الارتباط بآخر نسخة / الارتباط بنسخة محددة / العودة أو الارتباط بالنسخة الاساسية عند اختيار الارتباط بآخر نسخة يبحث اكسس في مجلد النسخ عن آخر تاريخ ويرتبط بها عند اختيار الارتباط بنسخة محددة يفتح مربع الحوار على مجلد النسخ لاختيار القاعدة المناسبة عند اختيار العودة يرتبط اكسسس بالقاعدة الاساسية التي بجانبه هذه الازرار يمكن نقلها لأي مكان يراه المبرمج .. ولكني في البداية قلت انه مجرد مثال تعليمي مبسط .. وعلى اعتبار غالب برامج اكسس تعتمد على قاعدة جداول واحدة
  2. اهلا بك اخونا السيد اولا لابد تتعلم الطرق الصحيحة لاستخدام وبرمجة اكسس .. مثلا جداولك ليست حسب الطريقة العلمية التي ينصح بها .. حيث ينقصها الكثير اما بالنسبة للنماذج فلا تحمل همها .. اكسس هو الذي يعملها لك .. عبر المعالج .. وكذلك الاستعلامات .. وانت فقط تعدل على التصميم بما يناسب ذوقك وامامك طريق طويل .. اما اذا اردت اختصار المسافات والوقت والجهد فاستفد من مواضيع والدروس التي تناولت هذا الموضوع على سبيل المثال .. اخونا سعد @2saad .. من فترة ليست بالقصيرة وهو يعمل على برنامج للمدارس يمكنك زيارة صفحته وقراءة مواضيعه .. اعتقد مشاركاته الحديثة فقط تصل الى اكثر من 50 صفحة اقرأ الاسئلة والاجابات .. واطلع على الامثلة المرفقة وادرسها وتعلم وطبق
  3. بحول الله وقوته ولطفه .. تروح وترجع بالسلامة .. وبعيون زرقاء اليمامة
  4. ابشر معلمنا العزيز هذا مثالك الأصلي والتعديل بسيط لا يخطر على البال فقط توسيع التقرير .. في عرض التصميم وبزر الفأرة فقط نسحب طرف التقرير ونوسعه الى الضعف emad5.rar
  5. شكرا لك استاذنا ومعلمنا القدير ولكننا نريد حلا نموذجيا افضل .. والتعديل على عملك الأول الجميل .. بدون الاستعانة بالتقارير الفرعية
  6. مشاركة مع اخي ابو البشر تفضل تم التعديل وتحقيق مطلبك Database2.rar
  7. جزاك الله خيرا .. جبرت بخاطر اخيك
  8. أدبا .. العمل لك ؟ ومن اناملك يكون اجمل
  9. الاستاذ سعد يسعى للتنسيق الأجمل .. هو يريد مثل هذا .. ولا بأس ان يكون الشعار في الوسط
  10. في مقطع الجنس اليست هي التي تفصل الذكر عن الأنثى ؟ ( بحكم ان العمود صفحة مستقلة ) هذا ما لفت انتباهي ام ان المسؤول غير ذلك ؟
  11. do not keep Group togther
  12. تم معالجة المسألة بحيلة ارجاع مقطع التفصيل الى = صفر rpt.Section(acDetail).Height = 0 المرفق ادناه تطبيق للكود اعلاه تم ايقاف الاجراء الخاص بالتعديل على النموذج والاكتفاء بما يخص التقارير استخدمت مكتبة وورد من اجل جلب جميع خطوط النظام لذا نلاحظ بطأ قليلا عند فتح الفورم ... وعلاجه هو في عمل دالة خاصة يتم فيها انتقاء خطوط حسب الرغبة وقابلة للاضافة والحذف xsaadx4.rar
  13. نعم استاذي هو ما تفضلت به ولكن باستبعاد استخدام 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
  14. طلبي منه المثال من اجل اجعل نقل الفكرة الى مشروعه يسيرا اما اذا تسألني عن رأيي فما دام ان الكود نجح عنده .. فأقرب وأسهل طريقة هو استبدال المتغيرات الثابتة في الكود وجعلها متغيرة عامة فقط ومناداتها من الفورم .. اقصد هذه : Const MY_FONT As String = "Arial" ' اسم الخط Const MY_SIZE As Integer = 12 ' حجم الخط Const ROW_HEIGHT As Integer = 450 ' ارتفاع الصف (بالتويت Twips: كل 1 سم تقريباً 567 تويت)
  15. ليس من عاداتك عدم رفع مثال للتطبيق لو ارفقت مثالا يشتمل على جدول به بعض البيانات ... ونموذج مستمر وتقرير مصدرهما الجدول لكان افضل لك قلت مستمر .. لأن الحاجة فيها فعلا وخاصة التقرير من اجل احتواء البيانات
  16. سألت الذكاء الاصطناعي فاعطاني الاجابة التالية : ... وعذرا لتقدم الكلمات وتأخرها لوجود كلمات انجليزية بين العبارات العربية محتاج آلية 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 الموجودة في الكود تعطي ارتفاعاً مناسباً ومريحاً للعين، ويمكنك زيادتها أو نقصها حسب رغبتك. النماذج المفتوحة: تأكد من إغلاق جميع النماذج والتقارير قبل تشغيل الكود حتى لا يحدث تعارض أثناء محاولة الكود فتحها وتعديلها في وضع التصميم.
  17. المهم هو مصدر هذه الرسائل .. وهل هذا المصدر يدعم api? انت اذا ارسلت من هاتفك يظهر لدى الطرف الآخر هاتفك كاسم مرسل .. صحيح .. ولكن الرصيد مرتبط بقاعدة بيانات المصدر
  18. عليكم السلام ورحمة الله وبركاته الطريقة في اكسس وعندنا في السعودية : 1- الاشتراك في اي بوابة تقدم خدمة الرسائل 2- معظم هذه البوابات بل كلها تدعم api 3- تمنحك هذه الخدمة رقما خاصا فريدا Token تدرجه مع اليوزر والباسوورد في اكسس مع اسم مرسل خاص 4- عندنا يلزم موافقة هيئة الاتصالات على منح اسم مرسل (يخصك) .. واجراءاته يسيرة يمكن لأي شخص الحصول عليه هذا كل شيء نأتي لاستفسارك اذا كان مصدر هذه الرسائل بوابة من هذه البوابات يمكنك الاشتراك معهم وبمعلومية هاتفك يمكنك التواصل مع الدعم الفني لا ضافتها الى حسابك
  19. وحيث اشارك اخي العزيز ابو البشر هذا حل لجعل ايام الاختبارات جزئين كل جزء يمكن طباعنه بورقة مستقلة .. حيث جعلت الورقة تشتمل على اربعة ايام فقط افتح النموذج واكتب التاريخ اولا أو اختر من التقويم .. سيقوم اكسس بكتابة اليوم نيابة عنك واكتب في المربعات ماتريد ثم افتح التقرير .. ستظهر بياناتك في التقرير بالترتيب نفسه xsaadx.rar
  20. طيب سوف اعمل لك شيئا حسب طلبك
  21. طيب انا شرحت لك تصور ان الكشاف يومي ويحمل بيانات اليوم فقط ولا يمنع انك تطبع الايام كلها مرة وحدة وترسل كشاف يوم محدد هذا رأيي .. ولم توضح وجهة نظرك
  22. اقصد الكشاف يحتوي على : تاريخ اليوم واسمه /وفترة اولى /وثانية / والصف او الصفوف فقط يعني كل يوم بيومه بكذا يمكنك من خلال الفورم طباعة كشوف بعدد الايام فقط تغير تاريخ اليوم يعني اليوم الواحد سيحتوي على فترتين و 8 اعمدة كل فترة 4 اعمدة .. وعند الطباعة العمود الخالي سوف يتم تظليله آليا
  23. هل الطباعة هذه يومية ام اسبوعية ام تطبع مرة واحدة لجميع ايام الاختبار ؟ اجابتك تحدد الطريقة الصحيحة للتنفيذ من الاقتتباس اعلاه يبدو انها يوميا لذا ليش ما يكون العرض ليوم واحد فقط؟
  24. العرض في المثال غير مفهوم 1- ما فائدة الاعمدة المضللة .. اذا كل يوم يحتوي على بيانات عمودين 2- ترتيب الأيام غير مفهوم احاول اجد طريقة لمفهومي لما تريد على النحو التالي : يعني افكر : ليه ما يتم توزيع اللجان ايضا ضمن الأعمدة .. بحيث العمود يحتوي على : اليوم والتاريخ / الفترة / اللجنة / الصف او الصفوف داخل اللجنة فقط بعد الطباعة وفي المربع امام المعلم تضع علامة صح بدلا من رقم اللجنة اعتقد كذا اسرع للفهم من نظرة واحدة للكشاف يمكن جعل الكشاف اسبوعي ويمكن جعله يحتوي على جميع ايام الامتحان اذا راق لك يلزم جداول خدمية بالصفوف واللجان والفترات
  25. اسمحوا لي احبتي المفروض لا ابحث عن سبل لتحقيق نتيجة حسب الاعجاب بالشكل ابحث عن اقرب واقصر واخصر واصح طريقة تؤدي المطلوب البرمجة وخاصة اذا كان العمل والبيانات مهمة ليست مثل برمجة الألعاب وبرامج العرض مع كل احترامي كل المحاولات هي خارج منهج المعلم ليش استخدم اذن جحا والتعديل في الاصل متاح واعرف ان تعديلي البسيط هذا لن يعجب صاحب الموضوع JO_Lab9.rar
×
×
  • اضف...

Important Information