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

محمد طاهر عرفه

إدارة الموقع
  • Posts

    8,707
  • تاريخ الانضمام

  • تاريخ اخر زياره

  • Days Won

    36

كل منشورات العضو محمد طاهر عرفه

  1. و هذا مثال آخر لمنع الادخال اذا تكررت قيم ثلاثة حقول بالاعتماد علي دالة 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
  2. حل مؤقت أزل الحدود border من مربعات النص ( اجعل لون الحدود شفاف ) و استبدلها بخطوط أسفل السجل فى مقطع التفصيل Detail ( مع عدم وضع خطوط رأسية) و ستبدو كما لو أنها متساوية جربت أن أقيس الارتفاع بالكود و أحصل الي الاقصي و أوحد الارتفاع ، و لكن الارتفاع المقاس يكون قبل ان تحدث عملية التمدد الناتجة من خاصية Can Grow و لم تنجح المحاولة االأولي أيضا تغيير الارتفاع لمربع النص فى وضع العرض يبدو أنه غير ممكن ربما تكون هناك حلول أخري ، لكن لم تفلح التجربة الاولي مع الموضوع ، و سأحاول فيه لاحقا بإذن الله تعالي
  3. بالنسبة لاظهار النجوم اختر كقيمة خاصية 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,الصلاحيات مع تحياتي
  4. 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
  5. راجع هذا الموضوع http://www.officena.net/ib/index.php?showtopic=1157
  6. مرفق مثال لأحد الأخوة (للأسف لا أذكر الاسم ) لاختبار وجود الاسم مسبقا ، و السماح بتسجيله من عدمه جرب أي اسم ممن فى الجدول مثل عمر مثلا ستظهر الرسال لتخيرك بالتسجيل ام لا ، مع وضع أرقام السجلات التي بها هذا الاسم و يمكنك تكرار التجربة بنفس الاسم يعد ضغط زر سجل جديد checkifExists.rar
  7. السلام عليكم تعودنا مع الاوفيس علي وجود حلول دائما ، و ان لم نصل اليها بسرعة حاليا لا أعرف حل بخلاف خصم الواحد الذي قمت به أنت . و اعتقد أنه لا عيوب لهذا الحل اما عن امكانية التغيير فى حد ذاتها : جرب تغيير الاعدادات الاقليمية باختيار دول مختلفة ربما تؤثر مع تحياتي
  8. ماذا تفعل لو أردت أن تنفتح ملفات الاكسيل الجديدة و بها خصائص معينة تختارها بنفسك كاعداد معين للصفحة أو تنسيق معين أو اضافة فى الرأس أو التذييل Header & Footer الخ ... تقوم بعمل ما تريد من تعديلات علي ملف خالي ثم تحفظه فى c:\Program Files\Microsoft Office\Office10\XLStart او مسار الأوفس لديك و تختار نوع الملف template قالب أي بالامتداد xlt و تختار الاسم Book و هذا معناه أن الملف Book.xlt سيكون القالب الذي يتم بناء عليه فتح الملفات الجديدة Book1.xls مثلا و بهذا توفر كل الاعدادات التي تقوم بها كل مرة فى ملفات الاكسيل ملاحظة : عند اختيار النوع template يتغير المسار تلقائيا الي المسار الافتراضي للقوالب فيراعي اعادة المسار الي المسار السابق
  9. هل هذا الموضوع من ضمنها شرح دوال أكسس - دوال تجميع المجال http://www.officena.net/ib/index.php?showtopic=152 أيضا الامثلة فى هذا القسم دوال الأكسس http://www.officena.net/ib/index.php?s=&act=SF&f=30
  10. أعتقد أن الحل الذي قمت به مناسب جدا هذا ملف به طريقة مثيلة ، راجع الخلايا فى الصفوف الاولي المخفية Calendar_for178_years.rar
  11. هناك مجموعة اضافات جاهزة مع الاكسيل تضيف وظائف اضافية من Tools Add-ins تضيفها و تستعملها و يمكنك عمل بريمج و حفظ الملف بصيغة Excel Add-ins و استخدامه بنفس الطريقة و يكون امتداد الملف xla , و ليس xls
  12. أقصد أن تصنع نموذج صغير لادخال كلمة السر مثل الموجود فى مثال الاخ ابن مسقط فى هذا الموضوع http://www.officena.net/ib/index.php?showtopic=1048 (النموذج الافتتاحي )
  13. ربما يكون مناسبا أن تضع مربع نص مخفي مثلا و تجعل قيمته = 1 أو ـن تعرف متغير عام فى النموذج و تجعل قيمته = 1 و تجعل كود التحديث للحقل يعمل بشرط ان مربع النص هذا = 1 و قبل اللصق تغير قيمته الي صفر و تعدلها الي 1 بعد اللصق
  14. شكرا للأخ سحاب علي مداخلته ، و سأحاول أيضا شرح الفكرة فيما يلي : و طبعا الموضوع عرضة لافكار كثيرة و لكن ساشرح فكرة لتوضيح الطريقة ( طريقة التعامل مع الدوال و التأكد من الرصيد ) . مع ملاحظة أني كتبت الكود التالي سريعا و لم أجربه فعليا ( لتوضيح الفكرة فقط ) لنفرض أن الرصيد المتاح يسجل فى جدول الموظفين كاجمالي المسموح به لكل موظف. و المستهلكات تسجل فى جدول الاجازات كتاريخ بداية و نهاية و منها علي النموذج تحسب عدد الايام المطلوب تسجيلها كأجازة ( مدة الاجازة ) ومدة الاجازة هي التي سنقوم باختبار هل الرصيد يسمح بها أم لا 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
  15. فى هذه الحالة فى التقرير فى حدث عند عدم وجود بيانات قم اخفاء مربعات النص الاصلية و اظهار مربع نص مخفي أصلا و توجد به العبارة التي تريد ME.TXTBOXNAME.VISIBLE=FALSE للاصلية و = TRUE للجديدة
  16. من الافضل ايقاف الطباعة عند عدم وجود بيانات هذا الرد سبق ووضعه الأخ فهد الدوسري : أولاً في حدث عند النقر للزر الذي على النموذج والذي يقوم بفتح التقرير تضع هذا الكود ____________ 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 فى الجزء الاول و التي تم اضافتها للتغلب علي رسالةة كانت تظهر لدي طارح السؤال
  17. لزيادة قيمة علي الموجود فى خلية 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
  18. سيكون عليك فى هذه الحالة استخدام حل آخر و هو أن تصنع نموذج بنفسك لادخال كلمة السر و ليس استخدام ال InputBox
  19. و لماذا تريدها تبدأ من السبت ؟؟ اكتب السبت و اسحب الخلايا و اختار Fill series ستعمل معك حيث أن القوائم متتالية و لن يهم بأيها تبدأ ام هناك حاجة معينة لجعل بداية القائمة السبت ؟؟
  20. تم تصحيح الملف المرفق ، حيث تم ارفاق ملف يخص الموضوعغ السابق سهوا F1.rar
  21. بالكود فى حدث بعد التحديث لبيان معين او فى الكود الخاص بزر علي النموذج الرئيسي تقوم بتحديث قيمة الحقل المنضم ( الذي مصدر بياناته حقل فى جدول) فاذا كان الكود سينفذ من زر او بعد التحديث لكائن فى النموذج الرئيسي me.txboxname = Forms![MainFormname]![Subformname]![txtboxsubformsum] أو يمكنك تنفيذ الكود مع تغيير اي قيمة فى مربع نص فى النموذج الفرعي و في هذه الحالة سيكون الكود forms![MainFormname]![txboxname]= Forms![MainFormname]![Subformname]![txtboxsubformsum]
  22. تقوم بحسب كل من الرصيد و المستهلك باستخدام دالتي Dsum ثم تقارن بينهما فاذا لم يسمح الرصيد ترفض تسجيل الاجازة و تصدر الرسالة
  23. ما المشكلة فى حذف كل هذا الكود ؟؟ اما اذا اردت تنفيذ الانتقال و حذف الرسالة فقط فاحذف السطر الذي يبدأ ب Msgbox
  24. ان ملفات ال add-in هي اضافات تم برمجتها من قبل آخرين و تحويلها الي add-in لتكون جاهزة للاستخدام و من الافضل أن نحاول تعلم الكود نفسه و عمل ال add-in بأنفسنا ، و تحويلها بعد ذلك ال add-in اذا أردنا و طبعا لا مانع من عرض ما هو جاهز لنستفيد منه ، و لكنه فى الغالب لا يكون متاحا فى صورة ملفات مفتوحة
  25. لقد جربت الكود و يعمل بشكل سليم جربه ثانية ، و لاجظ أني عدلته قبل عدة مشاركات انسخه ثانية
×
×
  • اضف...

Important Information