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

Moosak

أوفيسنا
  • Posts

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

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

  • Days Won

    57

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

  1. وعليكم السلام أخي TQTHAMI 🙂 شكرا لك على دعواتك الطيبة ، وتقبل الله منا ومنك 🤲 تم التنفيذ ولله الحمد .. (ولكن بشرط أن تكون النماذج مفتوحة أثناء التغيير ) وهذه هي الدالة المستخدمة : Public Sub ChangeBtnPic(PicNum As Integer, BtnTag As Integer) On Error Resume Next Dim Frm As Form, ctl As Control For Each Frm In Access.Forms If CurrentProject.AllForms(Frm.Name).IsLoaded Then For Each ctl In Frm.Controls If ctl.ControlType = acCommandButton Then If ctl.Tag = BtnTag Then ctl.Picture = PicBt & PicNum & ".bmp" End If End If Next ctl End If Next Frm End Sub icon - Moosak.rar
  2. وعليكم السلام ورحمة الله وبركاته أخي حمدي 🙂 تفضل هذا هو التعديل : If MsgBox("هل تريد الارسال بدون مرفق؟", vbYesNo + vbExclamation, "تنبيه!") = vbNo Then If Len(Me.attach & "") = 0 Then: MsgBox "لايمكن العثور على المرفق", vbOKOnly + vbCritical: End If Len(Dir(Me.attach, vbDirectory)) = 0 Then MsgBox "لايمكن العثور على المرفق", vbOKOnly + vbCritical: End Else .AddAttachment Me.attach End If End If
  3. طبعا يمكنك تطبيقها أينما شئت ( نموذج / استعلام / تقرير /..... ) .. الفكرة تكمن في أنك تجعل مصدر بيانات العنصر الذي تريده سواء كان ( نموذج ، تقرير ) مصدره يكون استعلام يجمع الجدولين ( جدول الفصول وجدول الصفوف ) وبهذا نستطيع الحصول على الأرقام المقابلة لحقول النصوص لأسماء الفصول أو الصفوف .. وبكود بسيط ( نفس الموجود في مربع نص الفصول بالأرقام ) تجمع الأرقام وتجعلها بين قوسين 🙂 هكذا : "(" & [FosoolCbo].[column](0) & "/" & [SofoofCbo].[column](0) & ")" وفي حالة الملف الذي أرفقته .. يجب أن تجعل للتقرير مصدر بيانات ( استعلام ) يمكنك من خلاله أن تحدد الفصول المطلوب عرضها في التقرير .. وفي التقرير تجمع الأرقام بن قوسين .. أدري أن الشرح النصي يشتت .. لكن يحتاج أن ترتب برنامجك بالأول .. وتصمم النموذج اللي يفتح التقرير ويحدد الصف اللي تريد تطبعه في التقرير ( وهذا ليس محور حديثنا الآن ) 🙂 وبعدها نضبط التقرير 🙂
  4. عذرا حصل خطأ مطبعي 😅🖐 نزله الآن من جديد من المشاركة السابقة ..
  5. الآن صار الموضوع أسهل 🙂 تحويل النصوص إلي أرقام.rar
  6. أعتقد أن الأكواد المستخدمة معقدة نوعاً ما 🙂 أنصح باستخدام أكواد أبسط منها والاستعانة بالدوال المتعارف عليها بدل دوال ال API . وجهة نظر 🙂
  7. وعليكم السلام ورحمة الله وبركاته جرب الآن حسب فهمي المتواضع للشرح : 🙂 icon - Moosak.rar
  8. أهلا بك عمي خالد @مبرمج متقاعد 🙂 .. طبعا ذكرت ذلك بناءً على ما اطلعت عليه من وصايا بعض الخبراء أمثالكم .. والعلة من كراهة ذلك هو التوصية بإبعاد الجداول عن أية عمليات حسابية وتخصيصها لحفظ البيانات فقط .. وذلك لتجنب البطء في جلب البيانات .. ومع إمكانية عمل مثل هذه الحقول ( أقصد المحسوبة ) إلا أن حالها مثل حال حقول المرفقات والقيم المتعددة وحقل الروابط التشعبية .. لها سلبيات أضنك تعلمها 🙂 ولهذه الأسباب لا ينصح به .. والله أعلم
  9. طبق هذه الإعدادات هذه أخي : وأخبرنا بالنتيجة 🙂
  10. نعم أخي العزيز .. 🙂 يمكن تطبيقها على النموذج مباشرة .. أو في الاستعلام ( نفس الملف المرفق - الاستعلام هنا مصدر بيانات النموذج ) .. أو عملها كحقل محسوب في الجدول ( لا ينصح به ) .. الدرجة الأعلى.rar
  11. وعليكم السلام ورحمة الله وبركاته 🙂 لن تحتاج إلى دالة DMax فقط أكتب هذا السطر في مصدر بيانات [الدرجة الأعلى] : =IIf([الدرجة1]>=[الدرجة2];[الدرجة1];[الدرجة2]) والنتيجة : 🙂
  12. وذلك لتلافي إدخال الأسماء بشكل خاطئ 👍🌹
  13. وهذه هي الدالة التي ذكرتها لك بشكل مبدأي : Public Function ClassAndSectionAsNumber(strClass As String, strSection As String) As String Dim ClassNumber, SectionNumber Select Case strClass Case Is = "الأول الإبتدائي": ClassNumber = 1 Case Is = "الثاني الإبتدائي": ClassNumber = 2 Case Is = "الثالث الإبتدائي": ClassNumber = 3 Case Is = "الرابع الإبتدائي": ClassNumber = 4 Case Is = "الخامس الإبتدائي": ClassNumber = 5 Case Is = "السادس الإبتدائي": ClassNumber = 6 Case Else: ClassNumber = "Undefined" End Select Select Case strSection Case Is = "أول": SectionNumber = 1 Case Is = "ثاني": SectionNumber = 2 Case Is = "ثالث": SectionNumber = 3 Case Is = "رابع": SectionNumber = 4 Case Is = "خامس": SectionNumber = 5 Case Is = "سادس": SectionNumber = 6 Case Else: SectionNumber = "Undefined" End Select ClassAndSectionAsNumber = "(" & SectionNumber & "/" & ClassNumber & ")" End Function ويمكنك تطبيقها بكتابة اسم الدالة ثم الفصل ثم الشعبة وستعطيك النتيجة النهائية هكذا : 🙂 (1): ClassAndSectionAsNumber("الثاني الإبتدائي","خامس") النتيجة: (5/2) -------------------------------------------------------------------------- أو هكذا : (2) ClassAndSectionAsNumber(Me.ClassTxt,Me.SectionTxt)
  14. وعليكم السلام ورحمة الله وبركاته أخي محمود 🙂 يمكن عمل ذلك بدالة برمجية بكل سهولة ... ولكن قبل ذلك وجب معرفة بُـنية قاعدة البيانات لديك لمعرفة كيفية التطبيق الأنسب لها .. وأفضل حل لعمل ذلك هو إرفاق نموذج ( ملف أكسس ) ببيانات واقعية نفس التي ستعمل عليها .. 🙂 وهذا يختصر الوقت والجهد والأخذ والرد 😉👌
  15. وعليكم السلام ورحمة الله وبركاته أخي هاني 🙂 أنظر هنا :
  16. وعليكم السلام ورحمة الله وبركاته أخي TQTHAMI 🙂 اطلعت على المرفق وقرأت المطلوب عدة مرات .. ولكن عجزت عن فهم ماتريده بالضبط 😅 تختار من القائمة فتتغير صور الأزرار ؟ وعند الاختيار من القائمة أي زر الذي تريد تتغيير صورته ؟ أم تضغط الزر فتتغير صور الأزرار الأخرى ؟ أم ماذا بالضبط ؟! لديك 6 أزرار .. والصور عددها 5 .. !! 🙃
  17. ما أدري أيش اللي يصير هنا 😅 بس العنوان ذكرني بهذا الموضوع : 🙂
  18. شكرا لك أخي أبو أحمد .. إبداع 🙂🌹
  19. شوف هذا الموضوع مثلا : https://www.officena.net/ib/topic/76910-نقل-فلترة-النموذج-إلى-التقرير-عند-الفتح-شرح-فيديو/
  20. تستطيع التحكم بجميع ذلك من الاستعلام .. بحيث تضع فيه المعايير التي تريد الطباعة عليها .. 🙂 فلو كان عندك في الجدول حقل تاريخ الإجازة [من - إلى ] مثلا فتكتب في معايير التاريخ في الاستعلام : < [FromDate] or > [ToDate]
  21. وعليكم السلام ورحمة الله وبركاته 🙂 أخي @أبو ماجد الغامدي أنا لي رأي بخصوص عملية نقل السجلات من جدول إلى جدول آخر .. لاحظت من خلال مواضيعك في المنتدى تفعل ذلك كثيرا .. 🙂 أقترح عليك أن تغير هذه الطريقة إلى طريقة أكثر أمانا وأقل عبئا على قاعدة البيانات .. وهي : بما أن البيانات هي نفسها فقط تريد أن تستدعيها كل مرة بطريقة مختلفة ،، فأقترح عليك أن تكتفي بجدول واحد فقط .. بحيث أنك تضع جميع الحقول التي تريدها في نفس الجدول وتضع من ضمن الحقول التصنيفات المختلفة لكل سجل وذلك لكي تستدعي السجلات المطلوبة فقط عن طريق الاستعلامات .. فمثلا تضيف خانة عبارة عن حقل ( نعم / لا ) وتستخدمه لفرز موظفين معينين ، وحقل ( نعم / لا ) آخر لفرز فئات أخرى .. وهكذا .. وتطبيقا على مثالك الحالي (لم أشاهد المرفق بعد 🙂 ) .. أضف في نفس الجدول حقل ( نعم / لا ) وباستعلام تحديث يعمل صح إذا كان التاريخ متحقق .. واستعلام تحديث ثاني يشيل الصح إذا بترجعهم من جديد .. هذا وسلامتك 🙂🖐
  22. لأن العلم معينه لا ينضب هذي إضافة جديدة أخرى 😊 ماذا لو أردنا منه تلوين الخلايا الفارغة باللون الأصفر مثلا 😏 : Private Sub Form_BeforeUpdate(Cancel As Integer) Dim I_am_Empty As String, Set_Focus_On_Me As Control Dim ctl As Control For Each ctl In Me.Controls If ctl.ControlType = acTextBox Then ctl.BackColor = vbWhite If Len(ctl.Value & "") = 0 Then I_am_Empty = I_am_Empty & vbCrLf & ctl.Name Set Set_Focus_On_Me = ctl ctl.BackColor = vbYellow End If End If Next ctl If Len(I_am_Empty & "") <> 0 Then Cancel = True MsgBox "رجاء تعبئة الحقول الفارغة التالية" & I_am_Empty Set_Focus_On_Me.SetFocus Exit Sub End If Set ctl = Nothing: Set Set_Focus_On_Me = Nothing End Sub بس المشكلة أنه يلون العمود كاملا وليس السطر الحالي فقط 😅
  23. بارك الله فيك أستاذنا العزيز @ابوبسمله 🙂 فعلا كود رائع ويحل معضلة عويصة 😅 وأستأذنك في وضع الكود هنا ليسهل البحث عنه واستخدامه .. Public Function RowNum(frm As Form) As Variant On Error GoTo Err_RowNum 'Purpose: Numbering the rows on a form. 'Usage: Text box with ControlSource of: =RowNum([Form]) With frm.RecordsetClone .Bookmark = frm.Bookmark RowNum = .AbsolutePosition + 1 End With Exit_RowNum: Exit Function Err_RowNum: If Err.Number <> 3021& Then 'Ignore "No bookmark" at new row. Debug.Print "RowNum() error " & Err.Number & " - " & Err.Description End If RowNum = Null Resume Exit_RowNum End Function
  24. ملاحظة عمي خالد : الكود للحبيب @ابوبسمله 🙂
  25. الله .. الله .. ما أجمل هذي المدارسة بين الفطاحل 😄 وهذه إضافة من عندي 😁 يمكن الخروج من الكود أيضا بكتابة كلمة End فقط والتركيز على الحقل الفارغ ( لندمج الأفكار 😉 ) فيصبح الكود هكذا : Dim ctl As Control For Each ctl In Me.Controls If ctl.ControlType = acTextBox Then If Len(ctl.Value & "") = 0 Then Cancel = True ctl.SetFocus MsgBox "رجاء تعبئة الحقل الفارغ " & ctl.name End End If End If Next ctl
×
×
  • اضف...

Important Information