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

Moosak

أوفيسنا
  • Posts

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

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

  • Days Won

    55

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

  1. أهلا بك عمي خالد @مبرمج متقاعد 🙂 .. طبعا ذكرت ذلك بناءً على ما اطلعت عليه من وصايا بعض الخبراء أمثالكم .. والعلة من كراهة ذلك هو التوصية بإبعاد الجداول عن أية عمليات حسابية وتخصيصها لحفظ البيانات فقط .. وذلك لتجنب البطء في جلب البيانات .. ومع إمكانية عمل مثل هذه الحقول ( أقصد المحسوبة ) إلا أن حالها مثل حال حقول المرفقات والقيم المتعددة وحقل الروابط التشعبية .. لها سلبيات أضنك تعلمها 🙂 ولهذه الأسباب لا ينصح به .. والله أعلم
  2. طبق هذه الإعدادات هذه أخي : وأخبرنا بالنتيجة 🙂
  3. نعم أخي العزيز .. 🙂 يمكن تطبيقها على النموذج مباشرة .. أو في الاستعلام ( نفس الملف المرفق - الاستعلام هنا مصدر بيانات النموذج ) .. أو عملها كحقل محسوب في الجدول ( لا ينصح به ) .. الدرجة الأعلى.rar
  4. وعليكم السلام ورحمة الله وبركاته 🙂 لن تحتاج إلى دالة DMax فقط أكتب هذا السطر في مصدر بيانات [الدرجة الأعلى] : =IIf([الدرجة1]>=[الدرجة2];[الدرجة1];[الدرجة2]) والنتيجة : 🙂
  5. وذلك لتلافي إدخال الأسماء بشكل خاطئ 👍🌹
  6. وهذه هي الدالة التي ذكرتها لك بشكل مبدأي : 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)
  7. وعليكم السلام ورحمة الله وبركاته أخي محمود 🙂 يمكن عمل ذلك بدالة برمجية بكل سهولة ... ولكن قبل ذلك وجب معرفة بُـنية قاعدة البيانات لديك لمعرفة كيفية التطبيق الأنسب لها .. وأفضل حل لعمل ذلك هو إرفاق نموذج ( ملف أكسس ) ببيانات واقعية نفس التي ستعمل عليها .. 🙂 وهذا يختصر الوقت والجهد والأخذ والرد 😉👌
  8. وعليكم السلام ورحمة الله وبركاته أخي هاني 🙂 أنظر هنا :
  9. وعليكم السلام ورحمة الله وبركاته أخي TQTHAMI 🙂 اطلعت على المرفق وقرأت المطلوب عدة مرات .. ولكن عجزت عن فهم ماتريده بالضبط 😅 تختار من القائمة فتتغير صور الأزرار ؟ وعند الاختيار من القائمة أي زر الذي تريد تتغيير صورته ؟ أم تضغط الزر فتتغير صور الأزرار الأخرى ؟ أم ماذا بالضبط ؟! لديك 6 أزرار .. والصور عددها 5 .. !! 🙃
  10. ما أدري أيش اللي يصير هنا 😅 بس العنوان ذكرني بهذا الموضوع : 🙂
  11. شكرا لك أخي أبو أحمد .. إبداع 🙂🌹
  12. شوف هذا الموضوع مثلا : https://www.officena.net/ib/topic/76910-نقل-فلترة-النموذج-إلى-التقرير-عند-الفتح-شرح-فيديو/
  13. تستطيع التحكم بجميع ذلك من الاستعلام .. بحيث تضع فيه المعايير التي تريد الطباعة عليها .. 🙂 فلو كان عندك في الجدول حقل تاريخ الإجازة [من - إلى ] مثلا فتكتب في معايير التاريخ في الاستعلام : < [FromDate] or > [ToDate]
  14. وعليكم السلام ورحمة الله وبركاته 🙂 أخي @أبو ماجد الغامدي أنا لي رأي بخصوص عملية نقل السجلات من جدول إلى جدول آخر .. لاحظت من خلال مواضيعك في المنتدى تفعل ذلك كثيرا .. 🙂 أقترح عليك أن تغير هذه الطريقة إلى طريقة أكثر أمانا وأقل عبئا على قاعدة البيانات .. وهي : بما أن البيانات هي نفسها فقط تريد أن تستدعيها كل مرة بطريقة مختلفة ،، فأقترح عليك أن تكتفي بجدول واحد فقط .. بحيث أنك تضع جميع الحقول التي تريدها في نفس الجدول وتضع من ضمن الحقول التصنيفات المختلفة لكل سجل وذلك لكي تستدعي السجلات المطلوبة فقط عن طريق الاستعلامات .. فمثلا تضيف خانة عبارة عن حقل ( نعم / لا ) وتستخدمه لفرز موظفين معينين ، وحقل ( نعم / لا ) آخر لفرز فئات أخرى .. وهكذا .. وتطبيقا على مثالك الحالي (لم أشاهد المرفق بعد 🙂 ) .. أضف في نفس الجدول حقل ( نعم / لا ) وباستعلام تحديث يعمل صح إذا كان التاريخ متحقق .. واستعلام تحديث ثاني يشيل الصح إذا بترجعهم من جديد .. هذا وسلامتك 🙂🖐
  15. لأن العلم معينه لا ينضب هذي إضافة جديدة أخرى 😊 ماذا لو أردنا منه تلوين الخلايا الفارغة باللون الأصفر مثلا 😏 : 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 بس المشكلة أنه يلون العمود كاملا وليس السطر الحالي فقط 😅
  16. بارك الله فيك أستاذنا العزيز @ابوبسمله 🙂 فعلا كود رائع ويحل معضلة عويصة 😅 وأستأذنك في وضع الكود هنا ليسهل البحث عنه واستخدامه .. 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
  17. ملاحظة عمي خالد : الكود للحبيب @ابوبسمله 🙂
  18. الله .. الله .. ما أجمل هذي المدارسة بين الفطاحل 😄 وهذه إضافة من عندي 😁 يمكن الخروج من الكود أيضا بكتابة كلمة 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
  19. شكرا لك أخي أبو بسملة 🙂 وهذي إضافة بسيطة لنفس الكود في حال أردت ألا تلتغي البيانات .. وإنما يعطيك رسالة تنبيه لإكمال الحقول الناقصة 🙂 Private Sub Form_BeforeUpdate(Cancel As Integer) Dim ctl As Control For Each ctl In Me.Controls If ctl.ControlType = acTextBox Then If Len(ctl.Value & "") = 0 Then MsgBox "كمل شغلك :)" Cancel = True End If End If Next ctl End Sub
  20. أخي @TQTHAMI مبارك عليك حصولك على الحل الصحيح .. 🙂 وتنبيه بسيط جدا : خيار أفضل إجابة يوضع على مشاركة الشخص التي حققت المطلوب ، تعبيرا عن شكرك له .. وتسهيلا للوصول إليها لاحقا 🙂🌹
  21. وهذي لها حل بدون ما تعمل تقرير ثاني أخي علي 😉 كتبت معيار البحث في الاستعلام بهذي الطريقة : Like "*" & Nz([Forms]![نموذج1]![txt];"*") & "*" بمعنى : أنه يحضر السجلات التي بها كلمة البحث .. وإذا مربع البحث فاضي ( يحط مكانه * ) ويجيب كل السجلات .. Search in MultiValue Feild.rar
  22. وعليكم السلام ورحمة الله وبركاته 🙂 تفضل أخي علي .. التعديل في مصدر بيانات التقرير . Search in MultiValue Feild.rar
  23. اللهم آمين .. يارب العالمين .. 🙂🤲 وإياكم جميعا أخي أبو ماجد 😊🌹
  24. الموضوع الذي أشار له أخي محمد احمد لطفى يقوم بحذف الجداول المرتبطة بشكل كامل .. ولمزيد فائدة .. هذا الكود يقوم بإلغاء ارتباط الجداول ( بدون حذفها من البرنامج ) : Public Function DeleteLinks() As Boolean On Error GoTo Err_Handler Dim dbs As DAO.Database Dim lng As Long Set dbs = CurrentDb With dbs.TableDefs For lng = .Count - 1 To 0 Step -1 If (.Item(lng).Attributes And dbAttachedTable) <> 0 Then .Delete .Item(lng).Name End If Next lng End With DeleteLinks = True Exit_Handler: On Error Resume Next Set dbs = Nothing Exit Function Err_Handler: MsgBox Err.Description, vbExclamation, "Error No: " & Err.Number Resume Exit_Handler End Function 🙂
  25. وعليكم السلام ورحمة الله وبركاته أخي ahmedsaadzeed 🙂 ننتظر إبداعاتك أخي العزيز .. أعرض الموضوع كما تحب .. وكما تراه مناسبا .. ولا نستغني عن أفكاركم الرائعة 👍🏼 😉🌹
×
×
  • اضف...

Important Information