-
Posts
8730 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
37
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو محمد طاهر عرفه
-
كيف اجعل طول الخلايا مساو لأطول خلية بالتقرير
محمد طاهر عرفه replied to مغروم's topic in قسم الأكسيس Access
نشكر الأخ طالب علم علي الكود المفيد ، و الشكر موصول للأخ حارث :( -
كتب مفيدة في الأكسس Access Books
محمد طاهر عرفه replied to محمد طاهر عرفه's topic in قسم الأكسيس Access
فى الأغلب هناك ترجمات عربية للكثير من الكتب المذكورة و هذا موقع دار الفاروق http://www.darelfarouk.com.eg/whorwe.htm و بالبحث عن أكسيس ستجد عدد من الكتب ( منها بعض ما ذكر فى الأعلي) -
خلفية ثايتة للمصنف مطبوعة على الورق
محمد طاهر عرفه replied to سيف القدس's topic in منتدى الاكسيل Excel
عن نفسي لا أحب وضع خلفية لملف الاكسيل لذا لم أجرب الموضوع كثيرا و أعتقد أن الفرق حال وجود الخلفية و تكرارها لن يكون في حجم الملف فالصورة واحدة و لكن يتم عرضها بتكرارأي ليس هناك نسخ من الصورة لذا فالتأثير علي الحجم لن يكون كبيرا ، و لكن ربما التأثير فى سرعة أداء الملف اذا كان به بيانات و معادلات ضخمة أو معقدة و يمكنك التجربة و ملاحظة فرق الحجم فى الملف فى الحالتين و افادتنا بالنتيجة مشكورا -
مثال لمراجعة رصيد الاجازات و هل يسمح بالأجازة
محمد طاهر عرفه replied to ahmedspcc's topic in قسم الأكسيس Access
بإذن الله سأحاول اعداد المثال لكن الوقت المتاح هذه الايام قليل ، فاعذرونا و مؤقتا أرجو أن تحاول تطبيق ما ذكرت من شرح -
كتب مفيدة في الأكسس Access Books
محمد طاهر عرفه replied to محمد طاهر عرفه's topic in قسم الأكسيس Access
كتب المستوي الاحترافي تكون مختلفة عن كتب التعلم فللتعلم يمكن البدء بأي كتاب من السلاسل الكبيرة Bible Que Mastering Sybex و للمستوي الاعلي هناك Sybex - Access 2000 VBA Que - Access 2000 Black Book Que - Access 2000 Client / server و بالتأكيد هناك اصدارات لاحقة أكثر -
عمل نسخة محددة العرض من البرنامج - تجريبية Demo
محمد طاهر عرفه replied to أبو وليد's topic in قسم الأكسيس Access
شكرا للأخ ابن مسقط علي الاضافة :( الأخ أحمد : If Date > #11/18/2003# Then MsgBox "Time Over" DoCmd.Quit Else Dim MydateDiff As Integer MydateDiff = (#11/18/2003# - Date) If MydateDiff <= 15 Then x = MsgBox("Time remaining" & Str(MydateDiff) & " days , do you want to Continue ??", vbYesNo, "www.officena.net") If x = vbNo Then DoCmd.Quit End If End If End If الأخ علالي قم بتسجيل تاريخ اليوم فى حقل فى جدول و قبل التسجيل ثانية ( عند فتح البرنامج مثلا ) قم بمقارنة التاريخ المسجل مع تاريخ اليوم باستخدام Dlookup فاذا اكتشفت أن التاريهخ اليوم أقل من المسجل فارفض الدخول و عموما فالحل الافضل لل demo هو عمل شرط علي عدد السجلات فى جدول مهم و ليس الزمن فتقوم عند الفتح بعد السجلات و اذا زادت عن حد معين ترفض الدخول أو تجري الاختبار عند الاضافة ، و ترفض التسجيل اذا زاد العدد عن المسموح if Dcount("[FieldName]", "TableName") > 50 then Docmd.quit أو تظهر رسالة إن أردت : If DCount("number", "TableName") > 10 Then MsgBox "انتهت مدة استخدام النسخة التجريبية", vbOKOnly + vbInformation, "Officena" DoCmd.Quit end if -
أيضا تم اضافة مثال آخر الي نفس الموضوع فى الارشيف http://www.officena.net/ib/index.php?act=S...&st=0#entry6020 و مثال الأخ فهد مشكورا يعتمد علي ال RecordsetClone و المثال الذي أضفته عن طريق دالة Dcount
-
و هذا مثال آخر لمنع الادخال اذا تكررت قيم ثلاثة حقول بالاعتماد علي دالة Dcount لعمل عد لعدد السجلات فى الجدول التي تحقق شرط أن قيمة الثلاثة حقول علي النموذج = القيم فى الجدول و تم أولا حساب الشرط و تسجيله فى متغير T1 لا ستخدامه كشرط فى الدالة بدلا من كتابة جملة الشرط الطويلة فى الدالة مباشرة و دالة الاختبار كما يلي Function checkrecord() checkrecord = 0 Dim c1 As Integer, T1 As String T1 = "(([Name]='" & Trim(Me.TName.Value) & "') and ([Salary]=" & Me.Salary & ") and ([Birthday]=#" & Format(Me.Birthday, "mm/dd/yyyy") & "#))" c1 = DCount("[Name]", "Table1", T1) If c1 > 1 Then MsgBox "Record Exists !", , "www.officena.net" checkrecord = 1 End If End Function و يتم استدعاؤها كالتالي : كما فى المثال x = checkrecord() فاذا أعادت قيمة = 1 فمعني ذلك أن السجل قد تكرر CheckifExistMulti.rar
-
كيف اجعل طول الخلايا مساو لأطول خلية بالتقرير
محمد طاهر عرفه replied to مغروم's topic in قسم الأكسيس Access
حل مؤقت أزل الحدود border من مربعات النص ( اجعل لون الحدود شفاف ) و استبدلها بخطوط أسفل السجل فى مقطع التفصيل Detail ( مع عدم وضع خطوط رأسية) و ستبدو كما لو أنها متساوية جربت أن أقيس الارتفاع بالكود و أحصل الي الاقصي و أوحد الارتفاع ، و لكن الارتفاع المقاس يكون قبل ان تحدث عملية التمدد الناتجة من خاصية Can Grow و لم تنجح المحاولة االأولي أيضا تغيير الارتفاع لمربع النص فى وضع العرض يبدو أنه غير ممكن ربما تكون هناك حلول أخري ، لكن لم تفلح التجربة الاولي مع الموضوع ، و سأحاول فيه لاحقا بإذن الله تعالي -
بالنسبة لاظهار النجوم اختر كقيمة خاصية input Mask او قناع الادخال لمربع النص Password بالنسبة للصلاحيات فيوجد أكثر من موضوع للحديث عنها برجاء مراجعتها و امضاء بعض الوقت معها صلاحيات المستخدمين باستخدام الخيارات http://www.officena.net/ib/index.php?showt...ات,or,الصلاحيات و http://www.officena.net/ib/index.php?showt...ات,or,الصلاحيات و http://www.officena.net/ib/index.php?showt...ات,or,الصلاحيات مع تحياتي
-
عمل نسخة محددة العرض من البرنامج - تجريبية Demo
محمد طاهر عرفه replied to أبو وليد's topic in قسم الأكسيس Access
If Date > #11/18/2003# Then MsgBox "Time Over" Else x = MsgBox("Time remaining" & Str(#11/18/2003# - Date) & " days , do you want to Continue ??", vbYesNo, "www.officena.net") If x = vbNo Then DoCmd.Quit End If End If -
راجع هذا الموضوع http://www.officena.net/ib/index.php?showtopic=1157
-
مرفق مثال لأحد الأخوة (للأسف لا أذكر الاسم ) لاختبار وجود الاسم مسبقا ، و السماح بتسجيله من عدمه جرب أي اسم ممن فى الجدول مثل عمر مثلا ستظهر الرسال لتخيرك بالتسجيل ام لا ، مع وضع أرقام السجلات التي بها هذا الاسم و يمكنك تكرار التجربة بنفس الاسم يعد ضغط زر سجل جديد checkifExists.rar
-
كيف نجعل الأسبوع office يبدأ من السبت
محمد طاهر عرفه replied to أبو إسحاق's topic in منتدى الاكسيل Excel
السلام عليكم تعودنا مع الاوفيس علي وجود حلول دائما ، و ان لم نصل اليها بسرعة حاليا لا أعرف حل بخلاف خصم الواحد الذي قمت به أنت . و اعتقد أنه لا عيوب لهذا الحل اما عن امكانية التغيير فى حد ذاتها : جرب تغيير الاعدادات الاقليمية باختيار دول مختلفة ربما تؤثر مع تحياتي -
ماذا تفعل لو أردت أن تنفتح ملفات الاكسيل الجديدة و بها خصائص معينة تختارها بنفسك كاعداد معين للصفحة أو تنسيق معين أو اضافة فى الرأس أو التذييل Header & Footer الخ ... تقوم بعمل ما تريد من تعديلات علي ملف خالي ثم تحفظه فى c:\Program Files\Microsoft Office\Office10\XLStart او مسار الأوفس لديك و تختار نوع الملف template قالب أي بالامتداد xlt و تختار الاسم Book و هذا معناه أن الملف Book.xlt سيكون القالب الذي يتم بناء عليه فتح الملفات الجديدة Book1.xls مثلا و بهذا توفر كل الاعدادات التي تقوم بها كل مرة فى ملفات الاكسيل ملاحظة : عند اختيار النوع template يتغير المسار تلقائيا الي المسار الافتراضي للقوالب فيراعي اعادة المسار الي المسار السابق
- 1 reply
-
- 1
-
-
هل هذا الموضوع من ضمنها شرح دوال أكسس - دوال تجميع المجال http://www.officena.net/ib/index.php?showtopic=152 أيضا الامثلة فى هذا القسم دوال الأكسس http://www.officena.net/ib/index.php?s=&act=SF&f=30
-
كيف نجعل الأسبوع office يبدأ من السبت
محمد طاهر عرفه replied to أبو إسحاق's topic in منتدى الاكسيل Excel
أعتقد أن الحل الذي قمت به مناسب جدا هذا ملف به طريقة مثيلة ، راجع الخلايا فى الصفوف الاولي المخفية Calendar_for178_years.rar -
من أين نحصل على ملفات add in للأكسل
محمد طاهر عرفه replied to أبو إسحاق's topic in منتدى الاكسيل Excel
هناك مجموعة اضافات جاهزة مع الاكسيل تضيف وظائف اضافية من Tools Add-ins تضيفها و تستعملها و يمكنك عمل بريمج و حفظ الملف بصيغة Excel Add-ins و استخدامه بنفس الطريقة و يكون امتداد الملف xla , و ليس xls -
أقصد أن تصنع نموذج صغير لادخال كلمة السر مثل الموجود فى مثال الاخ ابن مسقط فى هذا الموضوع http://www.officena.net/ib/index.php?showtopic=1048 (النموذج الافتتاحي )
-
ربما يكون مناسبا أن تضع مربع نص مخفي مثلا و تجعل قيمته = 1 أو ـن تعرف متغير عام فى النموذج و تجعل قيمته = 1 و تجعل كود التحديث للحقل يعمل بشرط ان مربع النص هذا = 1 و قبل اللصق تغير قيمته الي صفر و تعدلها الي 1 بعد اللصق
-
مثال لمراجعة رصيد الاجازات و هل يسمح بالأجازة
محمد طاهر عرفه replied to ahmedspcc's topic in قسم الأكسيس Access
شكرا للأخ سحاب علي مداخلته ، و سأحاول أيضا شرح الفكرة فيما يلي : و طبعا الموضوع عرضة لافكار كثيرة و لكن ساشرح فكرة لتوضيح الطريقة ( طريقة التعامل مع الدوال و التأكد من الرصيد ) . مع ملاحظة أني كتبت الكود التالي سريعا و لم أجربه فعليا ( لتوضيح الفكرة فقط ) لنفرض أن الرصيد المتاح يسجل فى جدول الموظفين كاجمالي المسموح به لكل موظف. و المستهلكات تسجل فى جدول الاجازات كتاريخ بداية و نهاية و منها علي النموذج تحسب عدد الايام المطلوب تسجيلها كأجازة ( مدة الاجازة ) ومدة الاجازة هي التي سنقوم باختبار هل الرصيد يسمح بها أم لا txtnewRquest هو مربع النص الذي يتم منه تسجيل مدة الاجازة فى جدول الاجازات سواء مباشرة بالكتابة فيه أو بالكود بعد تحديث تواريخ بداية و نهاية الاجازة علي النموذج txtempId هو كود الموظف علي النموذج txtremaining مربع نص غير منضم يتم حساب المتبقي فيه بالكود ( قبل تسجيل الاجازة التي يتم اختبارها حاليا ) txtRassed مربع نص غير منضم يتم حساب الرصيد الاصلي فيه بالكود و لدينا جدولان الاول الموظفين و اسمه tblemp و به حقل الرصيد الكلي Total و حقل كود الموظف empId و جدول حركة الاجازات tblVications و به حقل المستهلك used و كود الموظف empId بالاضافة الي توايخ الاجازة و لكن هي ليست موضوعنا هنا و الكود ينفذ من زر أمر فى نموذج الاضافة الي جدول الاجازات فاما يقوم باظهار رسالة برفض التسجيل لعدم وجود الرصيد ، أو يحسب لنا القيم و يضعها علي النموذج و طبعا هذا لا يكفي لاتمام العمل و التسجيل ، و لكن فقط أردت توضيح النقطة المطلوبة وان لم يكن الشرح التالي واضحا ، فأرجو أن يفي مثال الاخ سحاب بما تريد Dim Rassed, used As Integer Rassed = DLookup("[Total]", "tblemp", "[empId]=" & Me.txtempId) used = DSum("[used]", "tblVications", "[empId]=" & Me.txtempId) If (Rassed - used) < Me.txtnewRquest Then MsgBox "No Rassed available" Exit Sub Else Me.txtRassed = Rassed Me.txtremaining = (Rassed - used) MsgBox " Vications Can be Taken !! " End If -
التخلص من Error# فى طباعة تقرير عند عدم وجود بيان
محمد طاهر عرفه replied to zakwan's topic in قسم الأكسيس Access
فى هذه الحالة فى التقرير فى حدث عند عدم وجود بيانات قم اخفاء مربعات النص الاصلية و اظهار مربع نص مخفي أصلا و توجد به العبارة التي تريد ME.TXTBOXNAME.VISIBLE=FALSE للاصلية و = TRUE للجديدة -
التخلص من Error# فى طباعة تقرير عند عدم وجود بيان
محمد طاهر عرفه replied to zakwan's topic in قسم الأكسيس Access
من الافضل ايقاف الطباعة عند عدم وجود بيانات هذا الرد سبق ووضعه الأخ فهد الدوسري : أولاً في حدث عند النقر للزر الذي على النموذج والذي يقوم بفتح التقرير تضع هذا الكود ____________ Private Sub أمر0_Click() On Error Resume Next DoCmd.OpenReport "saudi1", acPreview End Sub على افتراض ان اسم التقرير لديك هو ( saudi1 ) =========== وفي حدث عند عدم وجود بيانات في التقرير ضع الكود هذا Private Sub Report_NoData(Cancel As Integer) MsgBox "عفواً.. لا توجد بيانات", vbCritical + vbOKOnly, "تنبيه" DOCMD.CancelEvent End Sub إنسخ وألصق وغير مسمى التقرير فقط ------------ ملاحظة : ربما يكون الجزء الثاني من الكود فقط كافيا ، بدون استخدام Onerror Resume Next فى الجزء الاول و التي تم اضافتها للتغلب علي رسالةة كانت تظهر لدي طارح السؤال -
لزيادة قيمة علي الموجود فى خلية Range("B3").Value = Range("B3").Value + 1 أو بصورة أكثر تفصيلا كاحتياط لعدم وجود قيمة فى الخلية Private Sub Workbook_Open() ActiveWorkbook.Sheets(1).Select Range("a1").Activate Dim aa As Byte If IsNull(Range("B3").Value) Then Range("B3").Value = 1 End If aa = Range("B3").Value Range("B3").Value = aa + 1 Application.ActiveWorkbook.Save End Sub مثلما فى هذا الموضوع http://www.officena.net/ib/index.php?showtopic=396
-
سيكون عليك فى هذه الحالة استخدام حل آخر و هو أن تصنع نموذج بنفسك لادخال كلمة السر و ليس استخدام ال InputBox