AbuuAhmed
-
Posts
926 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
16
Community Answers
-
AbuuAhmed's post in سؤال فى الدالة datedif was marked as the answer
إذا لم تتابع فكيف نعرف حصلت على الحل أم لا!!
احتمال آخر للحل إذا كان فهمي لمطلبك صحيحا:
طول الشهر 20 يوم_02.xlsm
-
AbuuAhmed's post in المساعدة بطريقة لاستنتاج رقم تلقائيا was marked as the answer
والله أتعبني الموضوع، أخي يفترض أن يكون سعر البيع المطلوب للبيع (متوسط الأسهم حالياً) يدخل يدويا وليس معادلة.
جرب وخبرني.
111_01.xlsx
-
AbuuAhmed's post in طلب تحويل معادلات إلى كود vb was marked as the answer
لا بد تدخل على تنسيق خلية المدة وتجعلها نص.
Calcul IEP_06.xlsm
-
AbuuAhmed's post in شرح جزء من هذا الكود was marked as the answer
حياك الله أخي، لقد شرحت الكود في المشاركة السابقة، وها أنا أضع لك التعديل مرة أخرى لتركز فيه أكثر:
'---------------------------------------- Col = 2 'العمود الثاني .. رقم الجلوس 'لإيجاد آخر سطر للعمود الثاني .. فهو يذهب لآخر الصفحة ثم يعود للخلف ليقف على آخر سطر lr = Cells(Rows.Count, Col).End(xlUp).Row 'تقوم بإرجاع كائن نطاق يمثل كافة الخلايا الفاضية في العمود الثاني Set my_rg = Range(Cells(x, Col), Cells(lr, Col)).SpecialCells(xlCellTypeBlanks) '---------------------------------------- من الطبيعي إذا بدلت في الأرقام دون معرفتها ومعرفة جدواها ستوقف الكود.
توضيح للأرقام:
الرقم 2 هو رقم عمود رقم الجلوس وهو الرقم الوحيد الذي يمكنك التعديل عليه عند إزاحة/تغيير موقع العمود وبشرط أن لا تستخدم أسفل العمود أي يكون عند نهاية خاليا حتى نهاية الصفحة.
الرقم 3 هو قيمة الرمز xlUp ويعني للأعلى، وهذا لا تلمسه بالمرة.
الرقم 4 هو قيمة الرمز xlCellTypeBlanks ويعني الخلايا الفاضية. وهذ كذلك لا تلمسه بالمرة.
بالنسبة لوظيفة الكود لم أحاول فهمه وخصوصا من بصمته تعرفت على كاتبه وهو من الخبراء المتمكنين والذي لا يمكنني أن أعدل على أكواده، فرجاءً تواصل معه لأي تعديل منعا للإحراج.
تحياتي واعتذاري.
-
AbuuAhmed's post in معادلة معرفة عدد أفراد الغرفة طبقاً لنوع الغرفة was marked as the answer
محاولتي:
استخراج أعداد الغرف_01.xlsm
-
AbuuAhmed's post in كود تلوين الخلايا اذا كانت تحتوى على يوم الجمعة was marked as the answer
تم إصلاح الخلل وعمل عدة تنقيحات:
حضور وإنصراف_05.xlsb
-
AbuuAhmed's post in استفسار عن كود برمجي لتحويل التاريخ من هجرى الى ميلادي في العمود بالكامل دفعة واحدة was marked as the answer
جرب، علما لم أعمل أي احترازات في حالة وجود أخطاء إدخال.
Hijri2Gregorian_01.xlsm
-
AbuuAhmed's post in السلام عليكم اخوانى الاعزاء عندي مشكله في التفقيط لبرنامج طباعه الشيكات هو عندما يكون المبلغ عشرات الملايين لا يعمل التفقيط.. اتمنى من الله ان تساعدوني was marked as the answer
تفقيط من "أبو هادي"
حذفت المرفق السابق لاشتباهي أن هناك خطأ وربما هو متعمد من المبرمج.
لاحظت أن البليون بالإنجليزي يأتي بعد المليون ولكنه يأتي بالعربي بعد المليار، وأنا لم أبحث ربما يكون صحيحا وربما لا.
طباعه الشيكات_02.mdb
-
AbuuAhmed's post in البحث عن الاسماء الرباعية في الاكسس أو الاكسل was marked as the answer
بالاستفادة من فكرة الأستاذ موسى،
دالة لتعطيك مخرج نعم/لا للاسم الذي يحتوي على عدد الأجزاء المطلوبة، ولا داعي لطرح واحد من عدد الأجزاء:
Option Explicit Function NamePartsCounter(ByVal sName As String, ByVal Parts As Byte) As Boolean Parts = Parts - 1 sName = Trim(sName) Do While InStr(1, sName, " ") > 0 sName = Replace(sName, " ", " ") Loop NamePartsCounter = Parts = (Len(sName) - Len(Replace(sName, " ", ""))) 'If NamePartsCounter Then Debug.Print sName End Function 'إجراء لفحص الدالة Sub test() Debug.Print NamePartsCounter("عبدالله أحمد علي", 3) End Sub وأنصح في تخزين الأسماء باستخدام الـ "أندرسكور" بدلا من المسافة ، وعند العرض يتم معالجة الأسماء بتديل الأندرسكور بالمسافة باستخدام دالة Replace
-
AbuuAhmed's post in تحديد 20 سجل في كل صفحة مع مجمع كل صفحة والمجموع الكلي في اخر صفحة was marked as the answer
حسب فهمي لطلبك إذا كان صحيحا:
Database11_04.accdb
-
AbuuAhmed's post in مدة عمل المستخدم was marked as the answer
وعليكم السلام ورحمة الله وبركاته
محاولتي
تم تبديل المرفق لأن عملية الطرح كانت معكوسة.
WorkTime_02.accdb
-
AbuuAhmed's post in الموديول توقف عن العمل ويعطى رسالة خطأ was marked as the answer
حسبي الله ونعم الوكيل
قلتها سابقا وتوقعت أن ما يحدث في المنتدى هو تصرفات "جمعية" وليست فردية ولكن سامح الله أحد الإداريين الذي أخفى تلك المشاركة.
هذه آخر مشاركة لي في هذا الموضوع.
شرح مشكلة استعلام "ZX":
- لقد اجتهد أخونا العزيز "شايب" في تشخيص المشكلة ولكن جانبه الصواب في المعالجة، فقد كان الربط سليما ولم يكن يحتاج إلى تعديل وإنما المشكلة كانت في حقل اسم الصنف حيث يجب أن يؤخذ من جدول المشتريات وليس المبيعات. ولماذا؟ ... لأن جدول المشتريات سيحتوي على كل الأصناف التي ستباع "منطقي" ولكن ليس كل الأصناف المشتراة ستجدها في المبيعات لعدم حصول أي عمليات بيع عليها.
- هذا كان حلي السابق في النسخة 03 بؤخذ الاسم من جدول المشتريات ولكن حتى هذا الحل لن يصمد كثيرا للبرامج التي تعتمد مع نهاية كل سنة الترصيد وإلغاء عمليات الشراء والبيع. والحل هو أن يضاف جدولا ثالثا على الاستعلام وهو جدول الأصناف ليربط به جدولي المشتريات والمبيعات ومن ثم يؤخذ الاسم من جدول الأصناف.
مرفق مثال نسخة 04 والأخيرة من جانبي.
احتفظت بالاستعلام القديم كما هو وعملت التعديل على استعلام آخر بنفس الاسم ليسهل عملية المقارنة وفهم التعديل.
expire date_04.accdb
-
AbuuAhmed's post in تغير القيمة الافتراضية was marked as the answer
مثال للكود عند الزيادة:
With Me.dDATE .Value = .Value + 1 .DefaultValue = "Dateserial(" & Year(.Value) & "," & _ Month(.Value) & "," & _ Day(.Value) & ")" End With
-
AbuuAhmed's post in اظهار تاريخين لفترة زمنية في التقرير was marked as the answer
مرفق المثال
حاول تدخل على المعاملات إن صح التعبير (جمع معامل) Parameters وعرفهما كتاريخ بحيث لو كتبت 1/3 مثلا سيحولها تلقائيا 01/03/2023
ShowParameters_01.accdb
-
AbuuAhmed's post in تظليل كلمات البحث في النص الغني Rich Text was marked as the answer
تشتتي زاد مع هذا الموضوع 😞
النسخ مرة أخرى بعد تصحيح الخطأ الأخير.
RichText_Memo_07.accdb RichText_Query_07.accdb PlainText_Sel_07.accdb
-
AbuuAhmed's post in التاريخ الهجري was marked as the answer
التحويل حسب تاريخ الفي بي أيه
DateConverter_01.mdb
-
AbuuAhmed's post in هل يجوز مع شرط قاعدة if استخدام معيار Between was marked as the answer
كلام الزميل موسى صحيح، لا بد من التجارب.
مع العلم أنه لا يوجد دالة between في الـ vba وعليه يمكن التعويض عنها كما مشاركة الزميل محمد لطفي.
ويمكن كذلك تصميم الدالة كما التالي:
Function Between(Value As Variant, MinVal As Variant, MaxVal As Variant) As Variant If VarType(Value) = VarType(MinVal) And _ VarType(Value) = VarType(MaxVal) Then Between = CBool(Value >= MinVal And Value <= MaxVal) Else Between = "Var type error" End If End Function ومناداتها كالتالي:
If Between(4, 1, 10) then MsgBox "إجابة سليمة" End if
-
AbuuAhmed's post in تصحيح كود برمجى was marked as the answer
أيضا جرب هذا الكود:
Private Sub Form_Current() Dim Msg As String If IsNull(Me.adadno) Then Exit Sub 'If Me.adadno <> DLookup("[A]", "[Database]", "[crn] ='" & Me.adadno & "'") Then 'إذا كان الحقل نصي If Not IsNull(DLookup("[crn]", "[Database]", "[crn]=" & Me.adadno)) Then Msg = "القيمة " & Me.adadno & " موجودة هل تريد تكرارها؟" Beep If vbYes = MsgBox(Msg, vbQuestion + vbYesNo + vbDefaultButton2, "تننبيه") Then Exit Sub Else Undo 'Exit Sub End If End If End Sub
-
AbuuAhmed's post in تعديل على كود was marked as the answer
جرب هذا الكود:
Private Sub Command1_Click() Dim strDB As String strDB = CurrentProject.Path & "\FolderN\" & Me.n_Folder & "\" & Me.program & ".accdb" Set appAccess = CreateObject("Access.Application") appAccess.OpenCurrentDatabase strDB appAccess.DoCmd.OpenForm Me.form_open appAccess.Visible = True Set appAccess = Nothing End Sub
-
AbuuAhmed's post in تعذر على microsoft access على إنشاء ملف .accde أو .mde أو .ade. was marked as the answer
توجد مشكلة في الكود، عن طريق اختيار "التصحيح" debuging وسيقف المحرر على السطر مباشرة.
-
AbuuAhmed's post in حساب الوقت بين تاريخين -- نتائج خطأ was marked as the answer
احمع عليها واحد
الحسبة الصح هي :
تاريخ الاستلام - تاريخ التسليم + 1
-
AbuuAhmed's post in حساب عدد الايام مع حذف ساعات الويكند مع العطلات الرسمية was marked as the answer
آخر مشاركة لي في هذا الموضوع
قمت بالتعديل على تركيبة جدول العطل وبياناته:
تم إضافة حقل نهاية العطلة (آخر يوم في العطلة) وتم تعديل بيانات عام 2023 إلى عام 2022 لتناسب جدول Siebel لزوم التجارب.
استخدمت الاستعلامات لتسريع النتائج ولن تعرف الفرق إلا مع عدد سجلات كبير.
النتائج في الاستعلام qryResults
موفق أخي.
WM2000_03.mdb
-
AbuuAhmed's post in مشكلة فى دالة الترقيم was marked as the answer
من الخطأ أن يكون نوع حقل الترقيم نصي يجب أن يكون رقمي ويفضل أن يكون من نوع Long Integer
على العموم استخدام هذا السطر بعد تعديل طفيف عليه:
Me.sMembership_No = Nz(DMax("Val([sMembership_No])", "tbl_name_swimmer"), 6000) + 1 وتأكد من توسيع طول الحقل إذا أردت الإستمرار بنوع نصي.
-
AbuuAhmed's post in توسيط النماذج داخل النافذة أو الإطار was marked as the answer
حتى يمكن استخدام الكود لكل النماذج دون أن تعديل ودون أن يلتزم بأي اسم من كائنات النموذج
تم تبديل هذا السطر:
Gap = -Me.slbl2.Left إلى:
Gap = -minX المثال بعد التعديل:
Re-centerExample_02.accdb