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

Foksh

الخبراء
  • Posts

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

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

  • Days Won

    128

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

  1. في نموذجك ،، اجعل مصدر سجلاته استعلام يضم الحقول التي تريدها ، وفي الحقل الفريد المشترك بينهم وافترض انه رقم الموظف ، اجعل شرطه الكومبوبوكس الذي تريد منه اختيار الموظف ، واجعل مصدر صفه = حقلين من جدول الموظفين ، الأول رقم الموظف والثاني اسم الموظف . ثم في حدث بعض التحديث اجعله يقوم بتحديث النموذج.. لم أكتب لك ولاااا اي كود 😅
  2. رغم أنك في قسم الآكسيس ، والمفترض ان تطرح سؤالك في قسم الويندوز والبرامج على ما اعتقد ، إلا أنه قد يكون هناك فرصة باستخدام الـ PowerShell كالآتي كمحاولة :- Get-ChildItem -File | Group-Object { $_.BaseName } | ForEach-Object { Compress-Archive -Path $_.Group.FullName -DestinationPath "$($_.Name).zip" } في داخل المجلد الذي يحتوي ملفاتك ، اضغط مفتاح Shift داخل المجلد والزر الأيمن للماوس اختر Open PowerShell window here من القائمة . ثم الصق السطر السابق .
  3. استاذنا @AbuuAhmed ، يسعدنا دائما زياراتكم في قسمنا 🤗 . بالنسبة لي اعتمدت هذه الفكرة التي طرحتها وتم تعديلها سابقاً ، كونها لا تؤثر على مجرى العمليات الحسابية ( اذا اعتمدنا على مساواة القيمة الحقيقية والظاهرة من خلال التنسيقات ) . لذا ذهبت الى تحويل الكود الى دالة عامة كالآتي :- Public Function RoundCustom(ByVal inputValue As Double) As Double Dim absValue As Double absValue = Abs(inputValue) RoundCustom = Sgn(inputValue) * (Int(absValue) + IIf(absValue - Int(absValue) <= 0.5, 0.5, 1)) End Function وللإستدعاء بشكل منفرد لكل عنصر نصي ( مربع نص ) في حدث بعد التحديث مثلاً :- Private Sub Text0_AfterUpdate() Text0 = RoundCustom(Text0) End Sub أما من خلال الإستعلام ، فلنا حاجة للإستدعاء كالآتي :- SELECT RoundCustom([اسم_الحقل]) AS RoundedValue FROM اسم الجدول; كمثال للتوضيح :- SELECT RoundCustom([Salary]) AS RoundedSalary FROM Employees; التعليق هو أطراف أفكار ليس إلا .. 😅 رغم ان الموضوع قد تم حسمه وإغلاقه بأفضل إجابة 😁 .
  4. لا اعلم طريقة وبنية الملف الاصلي .. اذا كان بنائه بنفس الاسلوب فحتما ستواجه مشكلة .. هل انتبهت للحدث عند النقر التالي :- Private Sub اقسام_العمل_Click() [Forms]![اقسام العمل]![اقسام العمل] = [اقسام العمل] End Sub
  5. بإذن الله ، قريباً جداً مهندسنا الغالي
  6. لم تقم بالتوضيح اخي الكريم ، الاحصاء يجب ان يكون مستندا الى شروط واضحة ، فالقيم في الجداول مبهمة وقد لا يعرف معناها إلا إنت ، وتحتاج تتبع حتى تتوضح الصورة لمن يقرأ ويطلع على المرفق .. في التقرير مثلاً :- ما النتيجة التي من المفترض ان تكون فيه ؟؟
  7. السلام عليكم ورحمة الله وبركاته ، أخواني وأساتذتي ومعلمينا ( دون استثناء ) سأقدم لكم فيما بعد ( مرحلة التطوير والتعديل الأخيرة ) فكرة لتنفيذ عملية التحديث الهوائي ( Online ) . فيما يلي صورة لفكرة التحديث من مشروع قيد التحضير لصديق لي .. انتظرونا
  8. وعليكم السلام اخي @عمار العبيدي ,, سأقدم لك طريقتين ، ولكن أولاً علينا تصحيح الأخطاء التي في النموذج "استعلام6" وهي انك جعلت مصدر البيانات للكومبوبوكس "السنة و الشهر" من نفس الاستعلام . على العموم ، الطريقتين تعتمدان على تغيير مصدر بيانات الكومبوبوكسين . مع تغيير مصدر السجلات لهما بحيث يجلبان فقط رقم السنة ورقم الشهر حسب الكومبوبوكس الآن من خلال الـ VBA وهي الطريقة الأولى قمت بادخال الاستعلام في الدالة التالية :- Private Sub MonthCounter() Dim db As DAO.Database Dim rst As DAO.Recordset Dim strSQL As String Dim MonthNum As Long If IsNull(Me.السنة) Or IsNull(Me.الشهر) Then Me.عدد_الأشهر_المتجاوزة = Null Exit Sub End If strSQL = "SELECT Count(*) AS عدد_الأشهر_المتجاوزة " & _ "FROM جدول2 " & _ "WHERE Year([بداية الاجازة]) = " & Me.السنة & " " & _ "AND Month([بداية الاجازة]) = " & Me.الشهر & " " & _ "AND ((DateDiff('d',[بداية الاجازة],[نهاية الاجازة])+1)>3 " & _ "OR (DateDiff('m',[بداية الاجازة],[نهاية الاجازة])+1)>0)" Set db = CurrentDb Set rst = db.OpenRecordset(strSQL, dbOpenSnapshot) If Not rst.EOF Then MonthNum = rst!عدد_الأشهر_المتجاوزة Else MonthNum = 0 End If Me.عدد_الأشهر_المتجاوزة = MonthNum rst.Close Set rst = Nothing Set db = Nothing End Sub ويتم استدعائها في حدث بعد التحديث للكومبوبوكس ( السنة و الشهر ) Private Sub السنة_AfterUpdate() Call MonthCounter End Sub Private Sub الشهر_AfterUpdate() Call MonthCounter End Sub والنتيجة في النموذج "استعلام6" أما الطريقة الثانية ، فتعتمد على الدالة DCount باستعلام داخلي داخل مصدر بيانات مربع النص "عدد_الأشهر_المتجاوزة" . بحيث يكون مصدر بياناته هذه الجملة الاستعلامية :- =IIf(IsNull([السنة]) Or IsNull([الشهر]),0,Nz(DCount("*","جدول2","Year([بداية الاجازة]) = " & [السنة] & " AND Month([بداية الاجازة]) = " & [الشهر] & " AND ((DateDiff('d',[بداية الاجازة],[نهاية الاجازة])+1)>3 OR (DateDiff('m',[بداية الاجازة],[نهاية الاجازة]) وهي تقوم بحساب عدد السجلات التي تتطابق مع الشرط . ولسلامة القيمة الظاهرة في مربع النص "عدد_الأشهر_المتجاوزة" قمت باستعمال الدالة الشرطية IIF مع IsNull حتى لا تعود لك النتيجة في المربع بالقيمة Error بل بالقيمة 0 . الملف بعد التعديل ( Database2.accdb )
  9. بناءً على ما تفضلتم به أستاذنا الكبير @AbuuAhmed ، فأنه وجب تعديل اقتراحي ليصبح كالآتي :- Private Sub Text0_AfterUpdate() Dim absValue As Double absValue = Abs(Text0) Text0 = Sgn(Text0) * (Int(absValue) + IIf(absValue - Int(absValue) <= 0.5, 0.5, 1)) End Sub
  10. نعم صحيح كلامك معلمي الفاضل @ابوخليل ، ما تفضلت به صحيح 100% . فإنه مع تحديثات ويندوز الجديدة تم تلافي وحل مشاكل لم تكن ظاهرة بشكل واضح لمستخدمي الويندوز . فمثلاً انا عندي نسخة ويندوز بتحديثات 2020 وتتعارض مع بعض تعريفات الأجهزة لدي عند توصيلها بالـ USB بينما مع ويندوز بتحديثات 2024 لم تظهر هذه المشكلة وتم علاجها . وما قصدته بالتعارض ليس بالتعارض الكامل بعدم قبول التثبيت مثلاً ؛ بل كما حدث مع الترقية لويندوز 10 الى 11 ونفس اصدار الاوفيس قد قامت هذه الحركة من ويندوز بإتلاف خصائص الكومبوبوكس ( في مشاركة سابقة ) . هذا والله اعلم
  11. وعليكم السلام ورحمة الله وبركاته .. بما أنك قمت بإعادة تنصيب أوفيس مرة أخرى لي سؤال مهم .. هل قمت بتنصيب نفس النسخة السابقة ؟؟؟ اذا كان نعم فحاول أن تقوم باستخدام برامج لحذف البرامج من الجذور مع جميع ملفاتها من ويندوز . ثم اعد تنصيب نسخة مختلفة من اوفيس ( حدّث لأحدث إن كنت تستعمل إصدار قديم ) اذا استمرت المشكلة فقط يكون لديك مشكلة في الويندوز !!! ونقطة مهمة تذكرتها أيضاً ، هل إصدار الويندوز لديك 64 ، وإصدار الأوفيس 32 فقط !!!!! هذا قد يحدث تعارض وتضارب في ملفات التشغيل المشتركة بين أوفيس و ويندوز .
  12. وعليكم السلام ورحمة الله وبركاته .. أخي @عمار العبيدي ، بما أنك في بداية الطريق في طريقة تصميم قواعد البيانات ,, انصحك :- أولاً ودائماً أن تبتعد على الأسماء العربية للجداول والحقول والنماذج ... إلخ . ثانياً والمهم أن تهتم بسلامة تصميم الجداول وبناءها بشكل متين لأنها أهم ما في المشروع . ثالثاً فيما يتعلق في مشكلتك بما ان زر الحذف في النموذج الرئيسي ، فوجب عليك أن تحدد له السجل في النموذج الرئيسي أيضاً . وهذا لن يمنع أنه يوجد عدة طرق للحذف حتى لو السجل في نموذج فرعي . الفكرة التي تمت هي تحديد السجل بنقل قيمته عند النقر على حقل اقسام العمل في الفرعي لنقلها لمربع النص اقسام العمل . ثم سيتم الحذف دون اي مشاكل . test.accdb
  13. اهلا صديقنا @الدكتور جمال راجح ، مشكور ومأجور على البرنامج وجعله الله في ميزان حسناتك .. نرجو منك الشرح المدعوم بالصور للبرنامج وطريقة العمل عليه
  14. جميل جداً مهندسنا الغالي بالنسبة لي قمت بتجربة الفكرة من خلال زر بأن يقوم بجعل القيمة في مربع نص منضم لحقل رقمي في الجدول = "A250" كمثال ، لكن لم تنجح محاولتي ، ولكن عند كتابة قيمة رقمية في المربع = " 250 " ظهرت النتيجة = "A250" لكنها ليست قيمة حقيقية قابلة للحفظ في حقل رقمي . لكن السؤال اللي أحدث ثغرة في تفكيري هو ، هل يتم حفظ القيمة الناتجة في الجدول في الحقل الرقمي هكذا = "A250" !!!!!!!!!
  15. وعليكم السلام ورحمة الله وبركاته ،، بدلاً من التحايل على آكسيس ، اعتقد أن أفضل وأسلم طريق لك هو جعل الحقل نصي بدلاً من رقمي إذا كنت ذا حاجة لإضافة قيمة نصية و قيمة رقمية في حقل واحد . هذا والله أعلم
  16. مشاركة مع الاساتذة ومعلمنا الفاضل .. Private Sub Text0_AfterUpdate() Text0 = Int(Text0) + IIf(Text0 - Int(Text0) <= 0.5, 0.5, 1) End Sub وهذه الفكرة من خلا الاستعلام :- RoundedValue: Int([اسم الحقل]) + IIf([اسم الحقل] - Int([اسم الحقل]) <= 0.5, 0.5, 1)
  17. مشاركة مع الأستاذ خليفة ، في مصدر سجلات النموذج الفرعي ، وعند حقل التاريخ ، اجعل الفرز تصاعدي .
  18. ما شاء الله ، عمل جميل أستاذنا الكبير @kkhalifa1960 ، لكن لسوء حظي ، لم أتمكن من رؤية النتيجة ، وظهر الخطأ التالي :- عند السطر :- If OleCreatePictureIndirect(PicDesc, IID_IPicture, True, IPic) = 0 Then مع العلم انني استخدم اصدار أوفيس 2019 - 64 بت
  19. اسمحوا لي مشاركتكم ،، فقد أعجبت بالفكرة استناداً إلى ملف الأستاذ @Moosak ، وإن سمح لي بالتعديل عليه لتوليفه حسب حاجة أخونا @Mr-X التعديلات بسيطة الى حد ما ، ولكنها لبت المطلوب في المرفق التالي DBSize.accdb
  20. مشاركة في النقاش مع الأخوة الأفاضل والأساتذة الكرام .. غالباً قد تحدث المشكلة بسبب عدم تسجيل مكتبات ActiveX التي يعتمد عليها الـ ComboBox جرب هذه الفكرة .. 1. افتح CMD في وضع التشغيل كمسؤول . 2. اذا كان لديك :- اصدار 32-Windows : اكتب هذين السطرين كل سطر في أمر مستقل regsvr32 C:\Windows\System32\mscomctl.ocx regsvr32 C:\Windows\System32\comctl32.ocx اصدار 64-Windows : اكتب هذين السطرين كل سطر في أمر مستقل regsvr32 C:\Windows\SysWOW64\mscomctl.ocx regsvr32 C:\Windows\SysWOW64\comctl32.ocx 3. أعادة تشغيل الويندوز مرة أخرى . * قد يعمل معك سطر واحد من إعادة تسجيل هذه الملفات ، ولا يشترط أن يتم تسجيل الملفين معاً . وفي بعض الإصدارات في اوفيس التي تتعارض مع الويندوز 11 بعد الترقية لا التثبيت الجديد ، قد تضطر لإعادة تثبيت أوفيس مرة أخرى .
  21. عند حفظ الملف بصيغة accde لا أعتقد أنك بحاجة لهذه النقطة ، حتى لو لم تقم بقفل محرر الأكواد VBA بكلمة مرور .
  22. وعليكم السلام ورحمة الله وبركاته.. اخي @الحلبي ، أسعد الله اوقاتك .. سابقاً كان لنا نقاش في هذا الموضوع ، وكان ردي لك ملف في هذه المشاركة . أتمنى أنك تستطيع استغلاله جيداً وتوظيفه حسب رغبتك 😇 .
  23. يوجد فكرة في جمجمتي 😅 ، لكنها قيد التحضير والتنفيذ. إلا أن ضيق الوقت في العمل ما يشغلني عنها ..
  24. مشاركة جانبية مع الأستاذ خليفة .. جرب هذا الاستعلام ، وأدخل كلمة = إيليزي كما هو في مثالك في الصورة SELECT الولاية AS Expr1, الإجمالية.البلدية, الإجمالية.الجنس, Sum(IIf([نوع الإعاقة]='حركي',1,0)) AS حركي, Sum(IIf([نوع الإعاقة]='ذهني',1,0)) AS ذهني, Sum(IIf([نوع الإعاقة]='بصري',1,0)) AS بصري, Sum(IIf([نوع الإعاقة]='سمعي',1,0)) AS سمعي, Sum(IIf([نوع الإعاقة]='متعدد الإعاقة',1,0)) AS [متعدد الإعاقة], Count(*) AS [de CountC] FROM الإجمالية WHERE (((الإجمالية.[نسبة الإعاقة])='% 100')) GROUP BY الولاية, الإجمالية.البلدية, الإجمالية.الجنس ORDER BY الولاية, الإجمالية.البلدية, الإجمالية.الجنس;
×
×
  • اضف...

Important Information