بحث مخصص من جوجل فى أوفيسنا
![]()
Custom Search
|

AbuuAhmed
الخبراء-
Posts
1071 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
17
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو AbuuAhmed
-
فحص المفتاح وتشغيله عندما يكون لا يعمل: Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer Sub NumLockCheck() If GetKeyState(&H90) = 0 Then mySendKeys "{NUMLOCK}" End Sub
-
جعل عناصر النموذج في الوسط وملائمة الشاشه
AbuuAhmed replied to النجاشي's topic in قسم الأكسيس Access
لا يوجد ما تطبقه أخي ، البرنامج سيتكيف آليا مع عدد الورثة. فقط زد أو انقص في جدول الورثة. نسخة معدلة لتفادي تجاوز مساحة الكائنات عرض الشاشة. -
حساب ايام الاجازة السنوية من تاريخ التعيين
AbuuAhmed replied to سامر محمود's topic in قسم الأكسيس Access
بخبرة المحاسب 🙂 استخدام الأرقام العشرية للحسابات لتحصل على نتائج دقيقة وعادلة ، أما مسألة سنين وشهور وأيام هذه اتركها فقط للسلوى. عندي دالة سأبحث عنها تستطيع فرز الأيام للسنين البسيطة والسنين الكبيسة للحصول على نتائج دقيقة جدا. لم أنزل مثال الأخ خليفة ، سأنزله وأطلع عليه ، إن شاء الله يفتح معي. -
جعل عناصر النموذج في الوسط وملائمة الشاشه
AbuuAhmed replied to النجاشي's topic in قسم الأكسيس Access
حاول تبديل السطر البرمجي في مشاركتي السابقة إلى هذا السطر: HeirWidth = (Me.WindowWidth - 3112) / Heirs -
جعل عناصر النموذج في الوسط وملائمة الشاشه
AbuuAhmed replied to النجاشي's topic in قسم الأكسيس Access
بإذن الله سوف تحل كل المشاكل. هل قمت بأي تعديل على التصميم؟ عند ظهور رسالة الخطأ انقر زر Debug ثم قم بأخذ لقطة من الشاشة حاليا وأنا أعمل لحل هذه المشكلة قم باللعب في رقم الـ 20000 في هذا السطر وذلك بإنقاصه 1000 مع كل محاولة: HeirWidth = 20000 / Heirs ملاحظة أقل عدد للأعمدة 10 هو للحفاظ على شكل/مظهر النموذح وإلا بالإمكان أن أجعله عمودا واحدا فقط. -
جعل عناصر النموذج في الوسط وملائمة الشاشه
AbuuAhmed replied to النجاشي's topic in قسم الأكسيس Access
نسخة أخرى بعد تعديل على حدث التراجع. أجر وعافية أخي العزيز ، شافاك الله وعافاك وأرجعك لنا سالما معافى. -
ارفع مثالك عزيزي وستجد العون من الجميع إن شاء الله.
-
جعل عناصر النموذج في الوسط وملائمة الشاشه
AbuuAhmed replied to النجاشي's topic in قسم الأكسيس Access
أبشر عزيزي تم عمل مراجعة شاملة وإن شاء الله الأمور كلها تحت السيطرة ملاحظات: - لا تستخدم الإستعلام كمصدر للنموذج ، لا حاجة له. - لا داعي للكتابة في حدث بعد التحديث لصناديق المبالغ الموزعة فالبرنامج يقوم بها آليا. - تم تبديل معظم مسميات الصناديق لتسهيل السيطرة والتعديل. - يتكيف مع عدد الورثة آليا على أن لا يتعدى الـ 50 ولا تقل أعمدة الورثة عن 10 وسيتم التعمية على الأعمدة الزائدة عندما يقل عدد الورثة عن 10 - سيتم حساب عرض الأعمدة حسب عددها آليا. - تم تبديل أسماء الجداول والنموذج والوحدات النمطية وحذف الاستعلام. - وددت تبديل أسماء حقول الجداول ولكن تركتها كما هي حتى لا تتسبب لك في مشاكل .. وإذا أردت تبديلها تشاور مع الزملاء. - البرنامج يحتاج إلى تجارب قوية بزيادة عدد الورثة مع كل تحربة. موفقين. -
الموضوع السابق:
-
جعل عناصر النموذج في الوسط وملائمة الشاشه
AbuuAhmed replied to النجاشي's topic in قسم الأكسيس Access
حركوا ساكن ، لماذا الصمت؟!! توجد مشكلة في الإجراءات السابقة لإجراء التوسيط ، لماذا لا تراجعونها وتحاولون حلها؟ إجراء التوسيط يعمل بكل كفاءة، فقط أضفت سطرا واحدا لحل جزئية سببها الإجراءات السابقة ليتفادى الصناديق التي عرضها صفر ليصبح كالتالي: For Each Ctl In Me.Controls With Ctl If .Width <> 0 Then If .Left < minX Then minX = .Left If .Left + .Width > maxX Then maxX = .Left + .Width End If End With Next Ctl هذه آخر مشاركة لي في هذا الموضوع. -
سبق وأن شاركت في موضوع لك سابق لنفس المشكلة ، ثم اختفيت دون أن تذكر النتيجة. لا بأس يا أخي ، لتختصر الوقت والجهود ارفع مثالا به مشكلتك وسنقوم بحلها وتوضيح السبب.
-
جعل عناصر النموذج في الوسط وملائمة الشاشه
AbuuAhmed replied to النجاشي's topic in قسم الأكسيس Access
-
جعل عناصر النموذج في الوسط وملائمة الشاشه
AbuuAhmed replied to النجاشي's topic in قسم الأكسيس Access
شكرا لك أستاذ موسى. عطلت السطر GenerateDate مع الإعتذار لأنه يتسبب في تعطيل كودي للتوسيط ، لم أفهم السبب. بدلت في كودي الأخير Width إلى WindowWidth AA-3-4_06 (2007).accdb -
جعل عناصر النموذج في الوسط وملائمة الشاشه
AbuuAhmed replied to النجاشي's topic in قسم الأكسيس Access
فضلا وليس أمرا ، حول لي مثالك إلى إصدار 2007 -
جعل عناصر النموذج في الوسط وملائمة الشاشه
AbuuAhmed replied to النجاشي's topic in قسم الأكسيس Access
وهذه فكرة ثانية للتجربة أضف زر لإعادة التوسيط وسمه cmdRecenter ونشط الحدث عند النقر وسيكون الكود بهذا الشكل: Private Sub cmdRecenter_Click() Dim Ctl As Control Dim minX As Integer, maxX As Integer, Gap As Integer minX = Me.WindowWidth maxX = 0 For Each Ctl In Me.Controls With Ctl If .Left < minX Then minX = .Left If .Left + .Width > maxX Then maxX = .Left + .Width End With Next Ctl Gap = (Me.WindowWidth - (maxX - minX)) / 2 Gap = Gap - minX If Gap <> minX Then For Each Ctl In Me.Controls With Ctl .Left = .Left + Gap End With Next Ctl End If End Sub جربوا وخبرونا. -
جعل عناصر النموذج في الوسط وملائمة الشاشه
AbuuAhmed replied to النجاشي's topic in قسم الأكسيس Access
كالعادة لا أستطيع فتح قاعدة البيانات. في بالي فكرة جربوها ، أن يكون نموذج الفاتورة الرئيس "نموذجا فرعيا" لنموذج رئيسي آخر عبارة عن حاوية/فريم فقط. ففي النموذج الرئيس الجديد نقوم بالتحكم فيه ليلائم الشاشة وفي نموذج الفاتورة الذي أصبح نموذجا فرعيا نقوم بتوسيطه بناء على النموذج الأب/الرئيس الجديد. -
التنبيه والتحذير قبل التراجع عن البيانات المدخلة
AbuuAhmed replied to AbuuAhmed's topic in قسم الأكسيس Access
عزيزي ، من المعضلات توضيح الواضحات 🙂 عملية التراجع ليست جديدة والتنبيه لها أعتقد قليل من يستخدمها ولكن وددت أن أنبه إلى أوامر "تخريب التراجع" إن صح التعبير ، فخلاصة الموضوع: يمكنكم التراجع بعد تجنب أوامر الحفظ مع ضرورة التنبيه قبل التراجع فقد تقومون بالتراجع في لحظة غفلة. -
دائما ينصح بتنبه المستخدم عند حذف أي بيانات محفوظة لخطورة هذه العملية فبعد الحذف لا يمكن إعادة البيانات إلا بإدخالها مرة أخرى. وكذلك التراجع فهو يشبه عملية الحذف فقد يقوم المستخدم بإدخال أو تعديل بيانات ثم في غفلة يضغط على زر "هروب" ويفقد كل ما أدخله قبل حفظه ، لذلك أرى كذلك أن ينبه المستخدم بهذا الإجراء كما في عملية الحذف تماما. بالطبع لو كان السجل عبارة عن حقول قليلة وبيانات لا تؤثر في معلومة حسابية فعملية التراجع لا تشكل هاجسا ولكن في مثل هذا المثال المرفوع وهو لأحد أعضاء المنتدى حيث يحتوي السجل على 60 حقلا تقريبا وكلها عبارة عن أرقام تؤثر في المجاميع وفي العمليات المحاسبية فلا بد من التنبيه والتحذير حتى لا يضطر المستخدم من عملية الإدخال/التعبئة لستين حقلا من جديد. وطبعا التراجع عن الحفط هذه ميزة في الأكسس وللاستفادة منها لا بد من تجنب بعض الأوامر التي تقوم بحفظ السجل عند استعمالها في الأكواد وما يحضرني منها الآن: DoCmd.Save Me.Requery Me.Refresh Me.Recalc جربوا عملية التراجع باستخدام زر هروب Esc موفقين مثال_على_التنبيه_قبل_التراجع_01.accdb
-
Function UpdateMe() Dim DayNo As Byte, RowTotal As Integer Dim cDay As Control With Screen.ActiveControl If .ControlSource Like "Day*" Then DayNo = Mid(.ControlSource, 4) If DayNo >= 1 And DayNo <= 50 Then Set cDay = Me("Day" & DayNo) Me("Sum" & DayNo) = DSum("Day" & DayNo, "table_BAIN", "ID_Time<>" & Me.ID_Time) + cDay For DayNo = 1 To 50 '------------------------------------------------ If Me("s" & DayNo) = Me("Sum" & DayNo) Then Me("D" & DayNo).Caption = DayNo Me("D" & DayNo).BackColor = RGB(255, 64, 61) Me("DDDD" & DayNo).BackColor = RGB(255, 64, 61) Me("Day" & DayNo).BackColor = RGB(255, 64, 61) Me("Sum" & DayNo).BackColor = RGB(255, 37, 92) Me("S" & DayNo).BackColor = RGB(255, 37, 92) Me("s" & DayNo).ForeColor = RGB(255, 255, 255) Me("D" & DayNo).ForeColor = RGB(255, 255, 255) Me("DDDD" & DayNo).ForeColor = RGB(255, 255, 255) Me("Day" & DayNo).ForeColor = RGB(255, 255, 255) Me("Sum" & DayNo).ForeColor = RGB(255, 255, 255) End If '------------------------------------------------ RowTotal = RowTotal + Nz(Me("Day" & DayNo), 0) Next DayNo Me.total = RowTotal Set cDay = Nothing End If End If End With End Function يفترض أن تعديلك يعمل بشكل صحيح بشرط أن أن قيمة Me("s" & DayNo) تكون صحيحة. في هذا الكود قمت باختصار هذا السطر If Me("s" & DayNo) = DSum("Day" & DayNo, "table_BAIN", "ID_Time<>" & Me.ID_Time) + cDay Then فقط.
-
قد يكون الدمار بدون ركام ، كإنسان فقد عقله ، أو مات دماغيا. 🙂 أتمنى أن تطلع على المثال فقد صممت له شفرة بها أكثر من فكرة جديدة لأول مرة أقوم بها. بعض الأمثلة وعند تعدد المساهمين في بنائه وبدون "مشرف" أو مهندس بناء فهو شبه خرابة ، فهو يعمل ولكن بدون تجانس ، وأخطاؤه كثيرة. على كل حال وللأسف لا يمكنني الاطلاع على هذا المثال ولكني سأقوم بالتعديل على مثالي ورفع الكود هنا ، ولا تعتبره تعديلا على عمل أخي أبو خليل ، التعديل سوف يكون في دالتي.
-
إذا لم تحيل @ابوخليل للمثال الذي عملت عليه أنا ليفهم الكود ووظيفته وحيثياته فالأمر سيكون بناء كود جديد على دمار كود سابق. ما عمله أبو خليل هو تدمير لما عملته أنا ، كما يرجى ملاحظة تجنب استخدام أي أمر يقوم بحفظ السجل الحالي مثل (Requery, Refresh, Save) حتى يمكنك التراجع عن التعديلات قبل الحفظ. في المثال الذي قمت أنا بالتعديل عليه فيه اختصار لتكرار كود بعد التحديث 50 مرة وبه ميزة عمل المجاميع بدون حفظ السحل الحالي لتمكين المستخدم من التراجع عند الحاجة وكذلك معالجة المجاميع من جديد عند التراجع.
-
القسط الحالي = القسط السابق × 110%
-
المثال بعد التعديل تقطيع الرقم القومى إلى أعمدة_01.xlsx
-
لقد لاحظت عند الضغط على زر يسار يذهب التركيز يمين وكذلك العكس ، فهذا لتصحيح التركيز عملت لك تعديلات عدة منها تحديث المجاميع من جديد عندما تقوم بالتراجع عند تعديلات الحقل. المثال_03.accdb
-
طريقة أفضل بكثير من سابقتها، ولكنها مشروطة بعدم استخدامك لحدث بعد التحديث After Update المثال_02.accdb