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

ابو جودي

أوفيسنا
  • Posts

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

  • Days Won

    203

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

  1. الشكر والفضل كله لله سبحانه وتعالى كل عام وانتم بخير وكل عام وانتم الى اقرب وعلى طاعته ادوم
  2. اهلا اهلا استاذى الجليل واخى الحبيب دكتور @الحلبي والله اشتاقت نفسي اليكم ولقياكم كثيرا كل عام وانتم بخير وكل عام وانتم الى اقرب وعلى طاعته ادوم
  3. وبعد قليل تجدوا اخونا الغالى استاذى القدير ومعلمى الجليل الباش مهندس @Moosak يضع تلك المشاركة الله يخلى لنا اياه ولا يحرمنا منه ولا من مكتبته فننتظر منه بعد ان تمتلئ مكتبته مشاركتنا اياها مملؤه بدلا من المكتبة الخاوية التى ضحك علينا بها قبل فترة وهذا المرفق الأخير Database1011 v5.accdb
  4. انظر الى الموضوع هذا ان شاء الله تجد فيه مرادك وهذا التطبيق على قاعدتك .. اتفضل Database11 v2.accdb
  5. ماشاء الله... الله اكبر يا دكتور @د.كاف يار جزاكم الله خيـرا
  6. اتفضل اسف كنت مستعجل ولم انتبه لتلك النقطة جدول البرامج-v3.accdb
  7. اتفضل تجربة سريعة لانى مستعجل الان وقت صلاة العشاء والتروايح السلام عليكم جدول البرامج-v2.zip
  8. اتفضل ياسيدى بس انا عندى مشكلة فى ضبط اخر حالة مش قادر اعرف السبب افتح النموذج frmFilter وشوف الجزء الاول الفرز بالرتبة تمام يعمل منفردا او يتم التصفية والفرز بناء عليها مع باقى القيم الاتية فى باقى الشروط الجزء الثانى الفرز بالجنس مثل سابقه الجزء الثالث والذى يحوى المشكلة يتم الفرز ولكن تختفى البيانات انا الان رايح اصلى التراويح بعدين نكمل ان شاء الله Database1011 v4.accdb
  9. وعليكم السلام ورحمة الله تعالى وبركاته لا شكر على واجب اخى الحبيب كل عام وانتم الى الله اقرب وتقبل الله تعالى منا ومنكم ومن امة محمد الطاعات و الصيام والقيام واعاده الله علينا ان شاء الله على الخير والفلاح والايمان واليمن والبركات بالنسبة للحقلين ما هو انا بالنسبة لى كانت المشكلة فيهم لانهم غير مرتبطين بأى شئ تبعا للمرفق وكان الخطأ منهم ولو تلاحظ احنا برمضان يعنى ما ينفع نحضر عفاريت منشان تقف على الافكار والبينة اللى تخص القاعدة لنصل الى الخطأ سبب المشكلة ولذلك لو لاحظت طلبت منكم هذا الطلب
  10. بس تعلالى بقه يا سى الباش مهندس @Moosak عاوز اسألك سؤال فى سؤال تقدر تعمل اللى انت عملته ده من غير نموذج فرعى ومن غير استعلام يعنى لو عاوزين نوفر فى استخدام الكائنات شوية ونوصل لنفس النتيجة نركب ايه ونروح من فين ؟
  11. انا اتخضيت مش تخبط الاول وترمى السلام 🤭 يا هلا باش مهندس @Moosak اتفضل يا سيدى اسمح لك طبعا افعل ما تشاء كلنا ملك يمينك وتحت امرك انا كنت ناوى اربط له المرفق بالمرفق السابق لموضوعه الاخر تباعا والنهوض تدريجيا بمستوى الحلول مع التغييرات اللازمة لا احاول تقديم الحل فقط وانما احاول تقديم النصح والارشاد للبناء الصحيح
  12. وهل تاريخ يوم الأحد ثابت واللا سوف يتغير ويكون هناك الكثير من ايام الاحد بتواريخ مختلفة ؟ وهل تريد ذلك ليوم الاحد فقط ام على جميع الايام حسب اختيارك ؟ حاول تشرح شرح بسيط لما تريده اجمالا حتى تتضح الرؤية أكثر من ذلك فهى بالنسبة لى الان ضبابية ولا استطيع التفكير ولاحظ ان الاستعلام المبنى عليه العمل فى النموذج الفرعى هو كلي0 وهذا الاستعلام يتكون من ثلاث جداول 1- التنسيق_جدول_كلي 2- التنسيق_بيانات_المادة 3- ايام_الاسبوع لذلك أن اردنا نسخ الخقول المختارة وتغيير اليوم الى الاحد لابد من التغيير فى الجدول 3- ايام_الاسبوع فان اردت الحاق البيانات الى الاحد الموجود فقط فى هذا الجدول لها طريق وان اردت يوم احد اخر بتاريخ اخر سوف يكون طريق أخر فى الية العمل والتفكير ولان الجدول مرتبطة بعلاقات لابد من الحاق البيانات تبعا للجداول والعلاقات لذلك لابد من التوضيح أكثر كما أشرت إليك بعاليه
  13. طيب الاول سامحنى اانا سوف أكمل تطبيق على القاعدة المعدلة بالانجليزية لا استطيع العمل والتعامل مع اللغة العربية المرفق الاول تجهيز القاعدة للحقول الجديدة لاحظ وجود موديول جديد لحساب العمر من خلال تاريغ الميلاد وبذلك لن نحتاج الى وضع العمر فى حقل خاص به فى جدول الموظفين بل يكفينا تاريخ الميلاد فقط ... يتبع جارى العمل على باقى التعديلات Database1011 v3.accdb
  14. ممكن مرفق من القاعدة وتحديد مكان العمل فيها الذى يحوى تلك المشكلة وياريت شرح مبسط للنتيجة اللى حضرتك تحتاج الوصول اليها
  15. اتفضل يا سيدى حاول كتابة الجدول باللغة الانجليزية وكذلك الحقول ان اضطررت لكتابة كلمة مكونة من أكثر من مقطع اكتب كل الحروف صغيرة ماعدا اول حرف من كل مقطع يكون أحرف كبيرة ولا تترك مسافات بين المقاطع ولا تستخدم هذه العلامة - بين المقطاع وان اردت استخدام علامات استخدم هذه العلامة _ بدلا من السابقة كل ذلك يسهل عليك كتابة الاكواد داخل محررد الاكواد او منشئ التعبير داخل الاستعلامات مستقبلا ويجنبك اخطاء ومشاكل انت فى غنى عنها وحاول ان لا تستخدم حقل الـ ID الذى ينشئه الأكسس تبقائئيا فى تصميمك اتركه للاندكس أفضل وانظر الى الرتب الافضل عمل جدول خاص بها ونستخدم المعرف الخاص بها فى جدول الموظفين ليكون خثلا رقميا بدلا من الحقل النصى وذلك لتقليل حجم البيانات مما ينعكس عليه حجم قاعدة بيانات ذلك افضل تقبل مودتى واعتذر للاطالة وأخير القاعدة من وجهة نظرى المتواضعة كما ينبغى ان تكون Database1011 v2.accdb
  16. جزاكم الله خيــــرا استاذ @nabilalibibo لا شكر على واجب واعتذر لم انتبه لوجود نموذج يعتمد على الاستعلام ابشر جارى العمل على تعديل النموذج
  17. وإثراء للموضوع فكرتى المتواضعة على طريقة المعقدين نقسيا امثالى من بعد إذن استاذى الجليل ومعلمى القدير الاستاذ @Barna عدد 2 وظيفة ليمكن تطبيق المطلوب فى زوايا قاعدة البيانات الوظيقة الأولى حساب مدة التقاعد ولان المطلوب زيادة سنه فلقد تم التعامل مع الاكواد على ان يكون الوضع المفضل سنة واحدة بطريقة الية وفى حالة إن اراد المستخدم الزيادة عن السنة من خلال عدد الأيام من واقع ( مدة اضافية ) يتم ذلك بسهولة عند استدعاء الوظيفة بكل سهولة Public Function RetirementDate( _ ByVal dtContractDate As Date, _ Optional nDay As Integer = 0, _ Optional nYear As Integer = 1 _ ) If nDay = 0 Then RetirementDate = DateAdd("yyyy", nYear, dtContractDate) Else RetirementDate = DateAdd("yyyy", nYear, dtContractDate) RetirementDate = DateAdd("d", nDay, RetirementDate) End If RetirementDate = Format(RetirementDate, "dd/mm/yyyy") End Function طريقة استدعاء الوظيفة الاتية لحساب مدة التقاعد كالاتى RetirementDate([ContractDate],nz([addDayCont],0) ContractDate = تاريخ بدأ التعاقد ( تاريخ التعيين ) addDayCont = عدد الايام المضافة ( مدة اضافية ) ---------------------------- حساب الايام المتبقية للاحالة للتقاعد Public Function MyDayRem(GetRetirementDate) Dim EndContract As String EndContract = ChrW("1578") & ChrW("1593") & ChrW("1575") & ChrW("1602") & ChrW("1583") & ChrW("32") & ChrW("1605") & ChrW("1606") & ChrW("1578") & ChrW("1607") & ChrW("1609") MyDayRem = IIf(DateDiff("d", Now(), GetRetirementDate) <= 0, EndContract, DateDiff("d", Now(), GetRetirementDate)) End Function طريقة استدعاء الوظيفة الاتية لحساب عدد الإيام المتبقية للإحالة إلى التقاعد كالاتى MyDayRem([RetirementDateValue]) وهذا ملف التطبيق تم التطبيق فى الاستعلام qryRetirDate من خلال الاكواد فى الوحدة النمطية Database1011.accdb
  18. العفو منكم استاذى الجليل ومعلمى القدير الاستاذ @Barna صدقت اذا حضر الماء بطل التيمم لا فض فوك لذلك تتقدمون انتم استاذى الجليل ويصطف كل طلاب العلم وانا اقلهم واولهم خلفكم فنهتدى بكم ونسير على خطى دربكم لنقتدى بكم اسأل الله تعالى ان يرزقكم استاذى الجليل وكل معلمينا العظماء البركة فى العلم والعمر والعمل وان يتقبل كل اعمالكم فى موزاينكم ان شاء الله
  19. جرب كده ولو تكرمت ممكن ترفق القاعدة كاملة رسالة خطاء عند فتح سجل جديد.accdb
  20. اتفضل يا سيدى غير الاكواد داخل الموديول بتلك الاكودا التعديل يتوافق للعمل على كلتا النواتان 32 , 64 انا الان قمت بالتجربة على 64 برجاء التجربة على 32 وموافتنا بالنتيجة #If VBA7 Or Win64 Then Private Declare PtrSafe Function CallNextHookEx Lib "user32" (ByVal hHook As LongPtr, ByVal ncode As LongPtr, ByVal wParam As LongPtr, lParam As Any) As LongPtr Private Declare PtrSafe Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As LongPtr Private Declare PtrSafe Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As LongPtr, ByVal lpfn As LongPtr, ByVal hmod As LongPtr, ByVal dwThreadId As LongPtr) As LongPtr Private Declare PtrSafe Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As LongPtr) As LongPtr Private Declare PtrSafe Function SendDlgItemMessage Lib "user32" Alias "SendDlgItemMessageA" (ByVal hDlg As LongPtr, ByVal nIDDlgItem As LongPtr, ByVal wMsg As LongPtr, ByVal wParam As LongPtr, ByVal lParam As LongPtr) As LongPtr Private Declare PtrSafe Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As LongPtr, ByVal lpClassName As String, ByVal nMaxCount As LongPtr) As LongPtr Private Declare PtrSafe Function GetCurrentThreadId Lib "kernel32" () As LongPtr #Else Private Declare Function CallNextHookEx Lib "user32" (ByVal hHook as long, ByVal ncode as long, ByVal wParam as long, lParam As Any) as long Private Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) as long Private Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA"(ByVal idHook As LongPtr, ByVal lpfn As LongPtr, ByVal hmod As LongPtr, ByVal dwThreadId As LongPtr) As LongPtr Private Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook as long) as long Private Declare Function SendDlgItemMessage Lib "user32" Alias "SendDlgItemMessageA" (ByVal hDlg as long, ByVal nIDDlgItem as long, ByVal wMsg as long, ByVal wParam as long, ByVal lParam as long) as long Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd as long, ByVal lpClassName As String, ByVal nMaxCount as long) as long Private Declare Function GetCurrentThreadId Lib "kernel32" () as long #End If 'Constants to be used in our API functions Private Const EM_SETPASSWORDCHAR = &HCC Private Const WH_CBT = 5 Private Const HCBT_ACTIVATE = 5 Private Const HC_ACTION = 0 #If VBA7 Or Win64 Then Private hHook As LongPtr #Else Private hHook As Long #End If Public Function NewProc(ByVal lngCode As LongPtr, ByVal wParam As LongPtr, ByVal lParam As LongPtr) As LongPtr Dim RetVal Dim strClassName As String Dim lngBuffer As LongPtr If lngCode < HC_ACTION Then NewProc = CallNextHookEx(hHook, lngCode, wParam, lParam) Exit Function End If strClassName = String$(256, " ") lngBuffer = 255 If lngCode = HCBT_ACTIVATE Then RetVal = GetClassName(wParam, strClassName, lngBuffer) If Left$(strClassName, RetVal) = "#32770" Then SendDlgItemMessage wParam, &H1324, EM_SETPASSWORDCHAR, Asc("*"), &H0 End If End If CallNextHookEx hHook, lngCode, wParam, lParam End Function Public Function InputBoxDK(Prompt, Optional Title, Optional Default, Optional XPos, Optional YPos, Optional HelpFile, Optional Context) As String On Error GoTo ExitProperly Dim lngModHwnd As LongPtr Dim lngThreadID As LongPtr lngThreadID = GetCurrentThreadId lngModHwnd = GetModuleHandle(vbNullString) hHook = SetWindowsHookEx(WH_CBT, AddressOf NewProc, lngModHwnd, lngThreadID) InputBoxDK = InputBox(Prompt, Title, Default, XPos, YPos, HelpFile, Context) UnhookWindowsHookEx hHook ExitProperly: UnhookWindowsHookEx hHook End Function -------------------------------------------------------- للاسف مش دايما بيكون ده التعديل وبس شوف الكود وانت تعرف الفرق وغير انت الملف القديم وجربه مش راح يشتغل وهذا مرفق التطبيق بعد التعديل DeleteWithPassword.accdb
  21. انتم الأروع باش مهندس @Moosak بمساندة طلبة العلم ورفع روحهم المعنوية بكلماتكم الرقراقة البراقة هذا فضل الله تعالى اولا واخيرا فالعبد الفقير الى الله مجرد سبب سببه الله تعالى .. لله تعالى الحمد والمنة واضع انه سوف نطالب بفرض ضريبة على هذه المكتبة
  22. كلنا واحد والمهم هو الوصول الى الغاية واعوذ بالله واياكم من القهر جزاكم الله خيرا ... لكن والله ان الاجابات والحلول رزق من الله تعالى وفقط يستعملنى الله تعالى لاكون سبب ليس الا قاللهم اسأل ان يستعملنى فى الخير دائما وابدا ما شاء الله .. اسأل الله لكم التوفيق والسداد انتظر على أحر من الجمر بزوغ هذا النور ان شاء الله ولازلت اصر واتمنى وانادى ان تطرح افكار يتم النقاش حولها ويتم تناولها والعمل عليها بشكل جماعى حتما العمل الجماعى يولد الافكار ويزيد حصيلة الخيال اتمنى من كل قلبى ان نطلق العنان لافكارنا مجتمعين سوف تحدث فارق كبير بإذن الله على سبيل المثال تلك الافكار التى وضعتها اليوم لهذا الكود طبعا ولان اخونا الحبيب الاستاذ @أحمد وجيه وكما تفضلتم استاذى لم يسرد جميع المعطيات من البداية تم وضع الحلول بشكل عام تبعا للمرفق الذى تقدم به ولكن مع سررد الطلبات تباعا وبعد تقديم الحلول صالت وجالت بنات افكارى لوضع الكود بشكل وظيفة عامة تلبى كل الاحتياجات دون تكرار الاكواد تبعا لكل حالة فلو لاحظت فى تلك الاقتباسات وكذلك وبذلك لابد من كتابة الاكواد اكثر من مرة تبعا لكل جدول ولكل حالة للبادئة فـ أنا الان أحاول جاهدا ان تكون الأكواد فى وظائف عامة قدر الامكان لتلبى كل الاحتياجات قدر الامكان للتقليل من استخدام الاكواد مستقبلا وبفضل الله تعالى والحمد لله الذى هدانا لهذا وما كنا لنهتدى لولا ان هدانا الله عزوجل تم الحصول على نتيجة من وجهة نظرى المتواضعة مرنة وشاملة وأحسبها كافية و وافية
  23. ممكن المرفق
  24. بل روعة حياتنا هم اساتذتنا العظماء الذين اناروا افكارنا شكرا لكم استاذى الجليل و معلمى القدير و والدى الحبيب استاذ @ابوخليل على مروركم العطر ومتابعة طلاب العلم وانا منهم وشكرا على كلماتكم الطيبة وتلك الطاقة الايجابية التى تبثونها فى نفوس طلاب العلم جارى العمل على المرفق الان وفور الانتهاء منه سوف اقوم برفع المرفق فى الموضوع لم يسعفنى الوقت بسبب اقتراب موعد الافطار اثناء كتابة الموضوع كل عام وانتم بخير
  25. السلام عليكم ورحمة الله تعالى وبركاته احيانا نريد عمل معرف خاص بنا برمجيا طبعا يختلف الكود تبعا لاسم الجدول والحقل ونوع الحقل اليوم سوف اقدم لكم فكرتى المتواضعة فى تلك الوظيفة التى يمكن وضعها فى وحدة نمطية ليمكن -استدعاؤها فى زوايا التطبيق المختلفة بكل سهولة -امكانية التحكم اثناء استدعاء الوظيفة فى البادئة ان اردت اضافة بادئة ما -التحكم فى موعد اعادة التعيين ليبدأ العدد من الرقم 1 مرة أخرى سنويا او شهريا او يوميا الكوووووود '|---10/04/2022______________________________________________| '|___www.officena.net________________________________________| '| | '| _ +-----------officena-----------+ _ | '| /o) | ||||| | (o\ | '| / / | @(~O^O~)@ | \ \ | '| ( (_ | _ ----oOo--Moh--oOo----- _ | _) ) | '| ((\ \) +/o)----------3ssam---------(o\+ (/ /)) | '| (\\\ \_/ / \ \_/ ///) | '| \ / \ / | '| \____/________Mohammed Essam________\____/ | '| | '| 10/04/2022 | '| | '|_____www.officena.net______________________________________| '|_____Thank you for visiting https://www.officena.net_______| '======Control in Special increment prefix ID===============================================================================================================================' ' ____ __ ____ ____ __ ____ ____ __ ____ ______ _______ _______ __ ______ _______ .__ __. ___ .__ __. _______ .___________. ' ' \ \ / \ / / \ \ / \ / / \ \ / \ / / / __ \ | ____|| ____|| | / || ____|| \ | | / \ | \ | | | ____|| | ' ' \ \/ \/ / \ \/ \/ / \ \/ \/ / | | | | | |__ | |__ | | | ,----'| |__ | \| | / ^ \ | \| | | |__ `---| |----` ' ' \ / \ / \ / | | | | | __| | __| | | | | | __| | . ` | / /_\ \ | . ` | | __| | | ' ' \ /\ / \ /\ / \ /\ / __| `--' | | | | | | | | `----.| |____ | |\ | / _____ \ __| |\ | | |____ | | ' ' \__/ \__/ \__/ \__/ \__/ \__/ (__)\______/ |__| |__| |__| \______||_______||__| \__| /__/ \__\ (__)__| \__| |_______| |__| ' ' ' '===========================================================================================================================================================================' Function MySpid( _ ByRef strFieldName As String, _ ByRef strTableName As String, _ Optional strPrefixe As String = vbNullString, _ Optional strResetYYorMMorDD As String = "YY", _ Optional nDay As Integer = 0, _ Optional nMonth As Integer = 0, _ Optional nYear As Integer = 0) As String Dim strLinkCriteria As String Dim strOldID As String Dim strNxtID As Long Dim intLenPrefixe As Integer Const intNumberOfZeros = 6 intLenPrefixe = Len(strPrefixe) + 1 If nDay = 0 Then nDay = Format(Date, "dd") If nMonth = 0 Then nMonth = Format(Date, "mm") If nYear = 0 Then nYear = Year(Date) - 2000 Select Case strResetYYorMMorDD Case Is = "YY": strLinkCriteria = Nz(Right(Mid(Nz(DLast(strFieldName, strTableName), 0), intLenPrefixe, 6), 2), 0) = nYear ' Yearly Reset Case Is = "MM": strLinkCriteria = Nz(Right(Mid(Nz(DLast(strFieldName, strTableName), 0), intLenPrefixe, 4), 2), 0) = nMonth ' Monthly Reset Case Is = "DD": strLinkCriteria = Nz(Right(Mid(Nz(DLast(strFieldName, strTableName), 0), intLenPrefixe, 2), 2), 0) = nDay ' Daily Reset End Select strOldID = Nz(DLast("" & strFieldName & "", strTableName, strLinkCriteria), 0) strNxtID = CLng(Right(strOldID, intNumberOfZeros)) strNxtID = strNxtID + 1 MySpid = strPrefixe & Format(nDay, "00") & Format(nMonth, "00") & Format(nYear, "00") & _ String(intNumberOfZeros - Len(CStr(strNxtID)), "0") & CStr(strNxtID) End Function يتم استدعاء الوظيقة بشكل عام من خلال الكود الاتى MySpid("FldName", "TblName") فى هذه الحالة يتم اعادة تعيين الترقيم سنويا ------------ ولكن للتحكم الكامل ولتغيير الاعدادات MySpid("FldName", "TblName", "AnyPrefixe", "yy or MM OR DD","DayDate","MonthDate","YearDate") AnyPrefixe البادئة التى تريد أن تبدأ الترقيم بها غيرها كما تريد MySpid("FldName", "TblName", "AnyPrefixe") yy or MM OR DD لو اردت اعادة تعيين الترقيم سنويا سوف تكون yy وبدون استخدام هذا الجزء هذا هو الاحتيار المفضل تبعا للكود MySpid("FldName", "TblName", "AnyPrefixe", "yy") لو اردت اعادة تعيين الترقيم شهريا سوف تكون MM MySpid("FldName", "TblName", "AnyPrefixe", "MM") لو اردت اعادة تعيين الترقيم يوميا سوف تكون DD MySpid("FldName", "TblName", "AnyPrefixe", "DD") --------- DayDate لتبدأ الترقيم من خلال رقم يوم محدد يعنى مثلا لو اردنا الترقيم يبدا من يوم 23 MonthDate لتبدأ الترقيم من خلال رقم شهر محدد يعنى مثلا لو اردنا الترقيم يبدا من شهر 09 YearDate لتبدأ الترقيم من خلال رقم سنه محدد يعنى مثلا لو اردنا الترقيم يبدا من عام 21 اجمل الامنيات بالاستمتاع مع هذا الكود وهذه الافكار هذا الاصدار الاول من كتابتى للكود لم اتمكن من التجربة بشكل كبير.. فضلا وكرما موافاتنا بالنتيجة فى حالة حدوث اى خطأ Special increment prefix ID.accdb
×
×
  • اضف...

Important Information