AbuuAhmed
الخبراء-
Posts
979 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
16
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو AbuuAhmed
-
شكرا عزيزي The database you are trying to open requires a newer version of Microsoft Access لا زلت لا أستطيع فتح قاعدة البيانات.
-
التحويل حسب تاريخ الفي بي أيه DateConverter_01.mdb
-
هل ترغب في تاريخ الهجري للنظام أم تقويم أم القرى؟
-
هل تستطيع تحويل المرفق إلى إصدار 2003؟ مع تصوري أنه لن يضيف شيئ على ما سبق عرضه في هذا الموضوع.
-
أساسا مثالك الأصل هو تنسيق شرطي وعيبه أنك لا تستطيع تلوين أكثر من كلمة ضمن الحقل. ثم عملت لك فكرة التظليل وعيبه أنك لا تستطيع تظليل الكلمة في كل السجلات دفعة واحدة. ثم عملت لك فكرة التلوين وعيبه أنك لا بد لك أن تستخدم حقل مذكرة في الجدول. هذا كل ما يستطيع أن يوفره الأكسس وفقا لخبرتي القديمة مع نسخ الأكسس القديمة، هل هناك جديد مع النسخ الجديدة؟ أنتم أعلم مني، ننتظر مشاركة الزملاء. وكل عام وأنت بخير.
-
جرب الآن طبعا بالتلوين يمكن عمل التالي: - تكرار للبحث عن الكلمة المراد تلوينها في السجل الواحد. - تكرار للبحث عن الكلمة في جميع السجلات. SearchSel_02.accdb
-
ما طبقته أنا هو تظليل وليس تلوين. التلوين يحتاج إلى حقل مذكرة وهذا يزيد من مساحة التخزين بشكل كبير، ولم أجرب إذا ينفع التلوين بالكود أو لا مع اعتقادي بإمكانية ذلك. النموذج الذي تستخدمه أنا أستخدمه منذ سنين طويلة في أحد برامجي القديمة وهو مصمم كقالب مرن يتعامل مع كل النماذج الفرعية بدون القيام بأي تعديل على الكود ، ويمكن إضافة أكثر من نموذج فرعي في نفس الوقت كذلك. ما تطلبه أنت سيتعارض مع فكرة هذا القالب. ولكن يمكنك استخدام نموذج آخر خاص لجدول واحد يضم حقل مذكرة المطلوب البحث في بياناته. إذا يوجد أحد المتحمسين للفكرة فليقوموا بهذه التجربة، أما عني فأنا أعتذر لأني مزحوم في أعمالي الخاصة. وكل عام وأنتم بخير.
-
تطبيق الفكرة SearchSel_01.accdb
-
أعتقد (غير متأكد) ولكن على السجل الحالي فقط ولكلمة واحدة فقط أيضا، بمعنى لو حقل الاسم يحتوي على اسم أحمد مرتين سيظلل الاسم الأول فقط. لم أحاول ولا أستطيع فتح قاعدة بياناتك لآن نسختك أحدث من نسخة الأكسس عندي. يمكن الزملاء التجارب مع هذه الخصائص: SelText SelStart SelLength
-
التعديل او تغيير المعادله للحصول على عدد الايام لكل شهر
AbuuAhmed replied to Al Harthi's topic in منتدى الاكسيل Excel
أنا قدمت لك كود ورفعت لك نفس المثال بعد تطبيق الدالة عليه وبه النتائج ظاهرة واضحة!! لك كل الحق أن تختار ما يناسبك أخي، أما الكود لا يعمل .. غريب "شويتين". موفق أخي. نسيت أنبهك أن تحول ملفك الأصل من xlsx إلى xlsm -
يبدو "بالنظر" أن الكود سليم. فقط استخدام "Is" زائدة لا داعي لها ولكنها لا تسبب خطأ. إن لم تستطع رفع مثال لتسهيل مهمة مقدمي الحلول فاكتب لنا رسالة الخطأ لنعرف ما هو الخطأ وكذلك لو تعطينا السطر الذي يقف عنده البرنامج بعد ظهور رسالة الخطأ. مجرد تخمين، أضف هذا السطر في حدث Form_Open Private Sub Form_Open(Cancel As Integer) Me.hh = Me.hh.Column(0, 0) End Sub
-
هل يجوز مع شرط قاعدة if استخدام معيار Between
AbuuAhmed replied to Mohamed Abo Elala's topic in قسم الأكسيس Access
كلام الزميل موسى صحيح، لا بد من التجارب. مع العلم أنه لا يوجد دالة 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 replied to Al Harthi's topic in منتدى الاكسيل Excel
عملت لك دالة vba لحساب أيام الإجازة لكل شهر جرب وأخبرني Option Explicit Function Between(Value As Date, MinVal As Date, MaxVal As Date) As Boolean Between = Value >= MinVal And Value <= MaxVal End Function Function GetVacDays(ByVal StartDate As Date, ByVal EndDate As Date, inMonth As Date) As Variant Dim MinVal As Date, MaxVal As Date Dim yy As Integer, mm As Byte yy = Year(inMonth) mm = Month(inMonth) MinVal = DateSerial(yy, mm + 0, 1) MaxVal = DateSerial(yy, mm + 1, 0) If Between(StartDate, MinVal, MaxVal) Or _ Between(EndDate, MinVal, MaxVal) Or _ Between(MinVal, StartDate, EndDate) Or _ Between(MaxVal, StartDate, EndDate) Then StartDate = IIf(StartDate > MinVal, StartDate, MinVal) EndDate = IIf(EndDate < MaxVal, EndDate, MaxVal) GetVacDays = CInt(EndDate - StartDate + 1) Else GetVacDays = "" End If End Function SL_Data_02.xlsm -
وجدت لك هذا الكود في النت: Private Declare Function AddFontResource Lib "gdi32.dll" Alias "AddFontResourceA" ( _ ByVal lpFileName As String) As Long Sub Test() Dim Result As Long Result = AddFontResource(CurrentProject.Path & "\Fonts\Fontname") MsgBox Result & " fonts added" End Sub لم أجربه، جربه واخبرنا.
-
جرب الآن Database41_02.accdb
-
بالفاصلة العادية: =IIf(Nz([Notes],0)>=5,"ينتقل",IIf(Nz([Notes],0)<4.5,"معيد","الاستدراك")) بالفاصلة المنقوطة: =IIf(Nz([Notes];0)>=5;"ينتقل";IIf(Nz([Notes];0)<4.5;"معيد";"الاستدراك")) لا تحاول تكتبها فقط قم بنسخ المعادلة ولصقها في مصدر الصندوق. ملاحظة: المعادلة تظهر وكأن كتابتها خاطئة ولكنه تأثير الخصائص، ولكن عند لصقها في مصدر الصندوق سوق تظهر بشكلها الطبيعي.
-
سامحني أخي لم أستطع فتح قاعدة البيانات لأني أستخدم إصدار أكسس قديم. وموضوعك بسيط أي واحد من الزملاء يستطيع أن يحل موضوعك بسهولة. ولكن تحتاج أن تشرح مطلوبك من المعادلة فهي الحقيقة غير واضحة. كذلك تفسر المصطلحات المستخدمة في المعادلة: ينتقل: هل يقصد فيها النجاح والإنتقال إلى مركز أعلى؟ معيد: هل معيد أي له إعادة الإمتحان أو إعادة السنة؟ الاستدراك: هل هو فرصة إعادة الإمتحان أم يخضع لقانون "استرحام" أي يدفع بدرجات إضافية بدلا من درجات النقص؟ إشرح معادلتك أولا بشكل واضح وحدد لك مصطلح الرقم الذي تريده. مثل: ينتقل: أكبر من أو يساوي 5 معيد: أصغر من 4.5 الاستدراك أصغر من 5 أي (بين 4.5 و 4.99) وهكذا لتسهل على الزملاء مساعدتك بالشكل الصحيح وبأقصر وقت.
-
لم توضح أين تريد وضع الأرقام انسخ المعادلة ثم عدل عليها، وإذا واجهت مشاكل من غير الأرقام فبدل الفاصلة بالفاصلة المنقوطة. هنا المعادلة مع الفاصلة العادية: =IIf([Notes]>4.99,"Yantaqil",IIf([Notes]<4.5,"Moied","Alistdrak")) وهنا المعادلة مع الفاصلة المنقوطة: =IIf([Notes]>4.99;"Yantaqil";IIf([Notes]<4.5;"Moied";"Alistdrak")) بدلت لك الكلمات من الحروف العربية إلى الحروف الإنجليزية حتى لا تلخبطك، بعد اللصق قم بتبديل الكلمات إلى الحروف العربية.
-
إذا أردت التخلص من الأصفار لتسهيل القراءة والتركيز استخدم هذا التنسيق في صناديق الإحصاءات: #,##0;-#,##0;"";""
-
حاول تجعل التاريخ ثابت الطول بضبط خاصية Format تنسيق التاريخ yyyy/mm/dd
-
من هذه الخاصية يمكن معرفة حدوث تعديل على البيانات أو لا، ولكن أعتقد (كما أتذكر) أنها تعمل مع النماذج التي لها مصدر بيانات أو كما تسمونها كما أعتقد "مرتبطة". If Me.Dirty Then MsgBox "لقد تم التعديل على البيانات" End If
-
ويمكن كتابة الدالة كالتالي: Function GetColor(Clr As Byte) As Long Select Case Clr Case 1: GetColor = vbBlue Case 2: GetColor = vbGreen Case 3: GetColor = vbYellow Case 4: GetColor = vbRed Case Else: GetColor = vbWhite End Select End Function أو هكذا: Function GetColor(ByVal Clr As Variant) As Long Select Case Nz(Clr, 0) Case 1: Clr = vbBlue Case 2: Clr = vbGreen Case 3: Clr = vbYellow Case 4: Clr = vbRed Case Else: Clr = vbWhite End Select GetColor = Clr End Function
-
ويمكن اختصار الإجراءين كالتالي: Dim ctl As Control For Each ctl In Me.Controls ctl.Visible = ctl.ControlType <> acTextBox Next ctl Set ctl = Nothing Dim ctl As Control For Each ctl In Me.Controls ctl.Enabled = ctl.ControlType <> acTextBox Next ctl Set ctl = Nothing
-
قد لا يشعر بعضكم بالتعديل في إضافة صناديق التسميات في قسم رأس الصفحة، عليه بفتح تقرير rptReport2 في طور التصميم وحذف كل صناديق التسميات في قسم رأس الصفحة ثم حفظه، ثم تشغيل الإجراء AddReportPageHeaderLabels وإعادة فتح التقرير لمشاهدة نتيجة إضافة الصناديق. للإستفادة الكاملة من حدث الإضافة ينصح بإضافة التسميات في الخاصية Tag لصناديق قسم التفاصيل . أما من لا يريد استخدام هذا الإجراء ويرغب في إضافة التسميات بنفسه فينصح: بإضافة أسماء صناديق قسم التفاصيل في خاصية ControlTipText لصناديق قسم رأس الصفحة. أما بالنسبة للتقرير rptReport1 فقم بفتحه في طور التصميم وانظر إلى بعثرة صناديق التسميات في قسم رأس الصفحة، ثم أعد فتحه في طور التشغيل لمشاهدة الصناديق وقد صفت بشكل منظم. أعتقد أن هذا حل احترافي ويحتاج إلى عناية من المنتدى وكذلك العناية من أعضاء المنتدى ممن يستوعبون فكرته وجدواه.
- 1 reply
-
- 2
-
موضوعك السابق لا يزال معلقا ويحتاج أن تنهيه وتعلق على الحل المقدم لك فيه.