اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

يوسف أحمد

المشرفين السابقين
  • Posts

    1,055
  • تاريخ الانضمام

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

  • Days Won

    1

كل منشورات العضو يوسف أحمد

  1. السلام عليكم بارك الله فيك اخي حلبي و جزاك خير الجزاء بعد اذنك وددت المساهمة في الحل اخي ابو عربي : ضع التعبير التالي كمصدر لمربع النص الغير منضم =DateSerial(Year(Date());Month(Date());0) بالتوفيق للجميع
  2. كلامك صحيح اخي العزيز كريمو .. لذلك تم الغاء الاجراء و وضع الكود بحدث قبل التحديث للنموذج فقط. المحيطات الفلاحية.rar
  3. تفضل اخي العزيز كريمو لاحظ بأنه تم عمل اجراء اسمه ( dup ) يتم استدعاؤه في حدث قبل التحديث لمربعات النصوص الخاصة بالاسم و اللقب و اسم الاب و تاريخ الميلاد و مكان الميلاد ... وعند تسجيل شخص جديد او تحديث شخص سابق و حدث تكرار سيتم المطلوب ان شاء الله بالتوفيق المحيطات الفلاحية.rar
  4. و عليكم السلام و رحمة الله و بركاته بارك الله فيك اخي العزيز كريمو اذاً المطلوب هو عدم تكرار تسجيل الشخص لاكثر من مرة في كل الاحوال ... و طالما انه لا يوجد رقم هوية اذاً سنستخدم بياناته كاملة في المقارنة ( الاسم و اللقب و اسم الاب و تاريخ الميلاد و مكان الميلاد ) ما رأيك؟
  5. حتى و ان لم يكن هناك رقم هوية فإنه من الضروري وضع رقم معرف لكي تتعامل مع البيانات بدقة مرفق تعديل على الملف و ستجد نموذج للطلبات به الشرط الاول فقط و هو تفادي تكرار الاسم ( اقصد رقم الشخص ) و رقم القطعة و رقم المحيط و العودة بالنموذج الى السجل المكرر الطلب الآخر لم يتم بعد .. في انتظار هل هو المطلوب . بالتوفيق المحيطات الفلاحية.rar
  6. ابداً اخي العزيز كريمو .. شرف لي خدمة اخواني وضحت الصورة و بناءً عليها فإن التصميم به خطأ :: فلا يوجد رقم معرف فريد ( مفتاح رئيسي ) للشخص و مقارنة التكرار بالاسم و اللقب غير صحيحة فقد يكون هناك شخص اسمه يوسف احمد و تم تسجيله بالخطأ في المرة الثانية يوسف أحمد .. لاحظ ان الهمزة ستتسبب في خطأ و لن يلتفت الكود للتكرار .. و الحل هو في عمل معرف كالسجل المدني او الرقم القومي مثلا ليميز الاشخاص و يتم استخدامه لمقارنة التكرار. ايضاً هناك استفسار بخصوص الاشخاص و القطع التي يحصلون عليها .. في الصورة تقول بأنه اذا تكرر الشخص في محيط آخر فمعناه انه حصل على قطعتين و تريد التنبيه ... السؤال هنا هو : هل يسمح للشخص ان يحصل على قطعة اخرى بنفس المحيط ؟ اذا لم يكن كذلك فإني ارى بأن البحث عن التكرار برقم الشخص فقط سيكون كافي لأنه لن يسجل مرتين. الرجاء التكرم بالإفادة و التعديل و سنكمل معك بإذن الله بالتوفيق
  7. الا ..... تعطي معنى مغاير لما ذكرته في بداية مشاركتك .... لو تتكرم و تشرح بوضع بيانات هنا كمثال لما تريده بالضبط مع الشكر
  8. التنبيه يظهر اثناء التسجيل و ليس بعد املاء جميع السجلات
  9. لا شكر على واجب اخي العزيز كريمو انت طلبت عدم تكرار الثلاثة حقول معاً و لهذا فإنه بعد اضافة او تعديل اي من السجلات و كان هناك تكرار بالثلاثة حقول فإن الاجراء سيعمل و يعيدك الى السجل المكرر .. هذا ما فهمته فهل تقصد تكرار اي من الحقول و ليس مجتمعة مع بعضها البعض؟
  10. بارك الله فيكم اخواني جميعاً مشاركة معكم لعدم تكرار الثلاثة حقول بالسجل و العودة الى السجل المكرر .... مع عمل بعض التعديلات في الاسماء ( الجدول و الاستعلام و الحقول المعنية ) و ايضاً التعديل في الربط بين الجدولين في الاستعلام و هذا هو الكود في حدث قبل التحديث للنموذج : Dim intId As Integer Dim rs As DAO.Recordset Set rs = Me.Recordset If DCount("*", "qry1", "[nom] ='" & Me.NOM & "' AND [nom_pere] = '" & _ Me.Nom_Pere & "' and [widget] = " & Me.Widget & "") > 0 Then intId = DLookup("id", "qry1", "[nom] ='" & Me.NOM & "' AND [nom_pere] = '" & _ Me.Nom_Pere & "' and [widget] = " & Me.Widget & "") MsgBox "مكرر في السجل رقم" & " " & intId Me.Undo rs.FindFirst "[id] = " & intId Else Exit Sub End If Set rs = Nothing المرفق بعد التعديل بالتوفيق للجميع المحيطات الفلاحية.rar
  11. و عليكم السلام اخي العزيز حسين ضع التعبير التالي: =DCount("id";"data1";"eName='مدرس'") حيث eName هو اسم الحقل المراد ايجاد عدد المدرسين به ملاحظة : ينصح بإستخدام اسماء انجليزية للحقول . تفضل المرفق بعد التعديل بالتوفيق tast55.rar
  12. بارك الله فيك اخي العزيز جعفر اخي العزيز اشرف بالمرفق مثال بسيط به عشر عناصر تم اضافة التاسع و العاشر بالطريقة الموضحة اعلاه ... تأكد بعد اضافة العناصر بالجدول ان تعود الى ادارة لوحة التبديل و تعمل تحرير للعناصر المضافة . اذا لم تتوصل للحل ارفق ملفك و سوف يتم التعديل عليه ان شاء الله. بالتوفيق للجميع لوحة التبديل.rar
  13. السلام عليكم بعد اذن خبيرنا الغالي جعفر وددت المساهمة في الحل يوجد جدول يتم تكوينه بمجرد انشاء لوحة التبديل ... عند فتح هذا الجدول سنجد الحقل الاول و هو SwitchboardID هذا الحقل هو حقل رقمي يحمل القيمة 1 اذا كان هناك لوحة تبديل واحدة ( لو كان هناك لوحة تبديل اخرى ستأخذ الرقم 2 و هكذا ... ) الحقل الآخر هو حقل ItemNumber يحمل رقم العنصر ( الازرار ) و ينتهي بالرقم 8 ولإضافة عنصر او زر جديد يتم عمل الآتي: 1: يتم اضافة سجل جديد بهذا الجدول بحيث : يتم اضافة الرقم 1 لحقل SwitchboardID و هذا يعني ان هذا العنصر سيكون خاص بلوحة التبديل رقم 1 2: يتم اضافة الرقم 9 بحقل ItemNumber و هذا يكون العنصر التاسع بلوحة التبديل . 3: يتم وضع التسمية للعنصر ( الزر ) الجديد بحقل ItemText 4: يتم اغلاق الجدول و الذهاب الى قائمة ادوات قاعدة البيانات >>> ثم الذهاب الى ادارة لوحة التبديل .. سيكون العنصر موجود و يمكن تحريره للقيام بالمهمة المطلوبة. كما انه يمكن اضافة عناصر اخرى بنفس الطريقة السابقة. ارجو ان يكون الشرح واضحاً .. مع اني أرى من وجهة نظري بأن عمل واجهة خاصة بالمستخدم سيكون اكثر مرونة من استخدام لوحة التبديل. بالتوفيق للجميع
  14. الف الف مبروك للجميع هذه الترقية المستحقة .. و الشكر و التقدير لإدارة المنتدى و القائمين عليها لتقديرهم لمن يبذلون جهوداً بمنتدانا الغالي
  15. بارك الله فيك اخي العزيز ابو عبد الله الصورة تعطي خطأ ( Invalid Image ) و لا يمكن استعراضها مع الشكر
  16. رائع كالعادة استاذنا العزيز رمهان طريقة رائعة كروعتك بارك الله فيك و نفع بعلمك
  17. بارك الله فيك اخي العزيز ابو عبد الله لم افهم المطلوب بالضبط و الافضل ان تضع مثال من طرفك و تشرح عليه.... هل تريد ان يكون النموذج و التقرير معروضين و تتحكم بالزووم من النموذج ؟ اذا كان كذلك فأنت لديك تقرير منبثق و مكبر لأن شاشة الاكسس مخفية و عند عرض التقرير سيكون فوق نموذج العرض.. فكيف يكون هذا التحكم ؟ . الرجاء توضيح هذه النقطة. مرفق نفس المثال مع الغاء امر تكبير التقرير و فيه يتم التحكم بتغيير الزوم من النموذج .. فهل هذا ما تقصده؟ مع الشكر zoom .rar
  18. و اياك جزى و فيك بارك اخي ابو عبد الله Function reportZoom(ReportName As String, ZoomValue As Integer)With DoCmd .OpenReport ReportName, View:=acViewPreview .MaximizeEnd WithReports(ReportName).ZoomControl = ZoomValueEnd Function الشرح : السطر الاول : انشاء دالة بإسم reportZoom بها بارمترين ( وسيطين ) الاول هو ReportName من نوع نص (string) و هذا الباراميتر يمثل اسم التقرير بالدالة. و الباراميتر الثاني هو ZoomValue من نوع Integer و هذا الباراميتر يمثل قيمة للخاصية zoomControl بالدالة. السطر الثاني : With DoCmd الكلمة with تستخدم للإختصار عند التعامل مع كائن معين بحيث لا يتكرر اسمه بالكود و هنا نستخدمها مع الكائن DoCmd . السطر الثالث : امر فتح تقرير في وضع المعاينة ، و سوف يحدد التقرير عند استدعاء الدالة بتمرير اسم التقرير المراد فتحه للوسيط الاول ReportName . السطر الرابع : امر تكبير التقرير Maximize السطر الخامس : انهاء الامر With السطر السادس : قيمة الخاصية ZoomControl للتقرير ReportName ( الوسيط الاول و الذي يمثل اسم التقرير و سوف يستبدل بإسم التقرير الفعلي عند استدعاء الدالة ) ضمن مجموعة التقارير Reports تساوي ZoomValue .... و بإختصار تحديد قيمة للخاصية ZoomControl وهي الوسيط الثاني ZoomValue السطر السابع : انهاء الدالة. بالنسبة للإستدعاء فهو كالتالي حسب المثال : reportZoom "rpt1", Me.txtZoom حيث reportZoom هو اسم الدالة rpt1 هو اسم التقرير ممرر كوسيط اول ( ReportName ) للدالة بحيث يتم فتحه في وضع العرض . txtZoom هو اسم مربع النص على النموذج و الذي نحدد به قيمة الزووم المراد عرض التقرير به .. و هو الوسيط الثاني ( ZoomValue ) للدالة . ارجو ان يكون الشرح و اضح بالتوفيق
  19. بارك الله فيك اخي العزيز ابو عبد الله و جزاك خير الجزاء اضع لك مثال بطريقة اخرى .. لاحظ استخدام الخاصية ZoomControl بالوحدة النمطية ضع قيمة للزوم الذي تريده ما بين 25 و 200 فقط بمربع النص الخاص بالزوم قبل عرض التقرير ثم اعرض التقرير . ارجو ان يكون هو المطلوب بالتوفيق للجميع zoom .rar
  20. و عليكم السلام و رحمة الله و بركاته اخي العزيز ابو عبد الله لم اجرب هذا و لكن ما اعلمه هو ان الضغط على الحرف Z بلوحة المفاتيح يقوم بعمل الزوم. و ايضاً بالامكان في حدث عند الفتح للتقرير تحديد الزووم كالتالي : DoCmd.RunCommand acCmdZoom100 يمكنك تغيير الرقم لتحصل على الزوم المناسب. ارجو ان اكون قد افدتك. بالتوفيق
  21. وفيك بارك اخي العزيز كريمو changeColor هذا اجراء قمت انا بعمله لأن عملية تغيير اللون نحتاجها عند الاختيار من الوظائف و نحتاجها ايضاً عند التنقل بين سجلات النموذج ليتزامن ذلك التغيير مع القيمة الموجودة بمربع التحرير و السرد الخاص باختيار الوظيفة و بذلك نحتاج نفس الامر او الكود لنضعه في مكانين مختلفين و هما : حدث بعد التحديث لمربع التحرير و السرد الخاص بالوظيفة و ايضاً حدث في الحالي للنموذج .... و السبب في عمل اجراء و استدعاؤه هو : 1: اذا اردت التعديل فإنك لا تحتاج للذهاب الى الحدثين السابقين لتعدل و هذا مربك فقد يحصل خطأ ... و بإستخدام الاجراء فإن عملية التعديل على الكود ستتم في مكان واحد فقط و هو الاجراء نفسه. 2: اختصار الكود . الآن ساشرح لك كيف نعمل هذا خطوة بخطوة : 1: افتح محرر الفيجوال بيسك و من قائمة ادراج (Insert) اختر procedure 2: ضع اسم له و هو كما في المثال changeColor 3: من التبويب type اترك الاختيار كما هو Sub 4: من التبويب Scope اختر Private 5: سيظهر لك سطرين بمحرر الفيجوال بيسك كالتالي : Private Sub changeColor() End Sub 6: الآن نضع الكود الذي سيغير اللون ما بين سطري الإجراء كالتالي: Private Sub changeColor() If Me.detach = "استقالة" Or Me.detach = "عطلة مرضية" Or _ Me.detach = "متقاعد" Or Me.detach = "منتدب" Or _ Me.detach = "وفاة" Then Me.تفصيل.BackColor = vbRed Else Me.تفصيل.BackColor = RGB(198, 217, 241) End If End Sub 7: الآن اصبح لدينا اجراء بإسم changeColor و بإمكاننا استدعاؤه. 8: في حدث بعد التحديث لمربع التحرير و السرد الخاص بالوظيفة نضع كود استدعاء الاجراء كالتالي : Call changeColor 9: ثم في حدث في الحالي للنموذج نضع ايضاً كود استدعاء الاجراء كالتالي : Call changeColor ارجو ان يكون الشرح و اضح بالتوفيق
  22. بارك الله فيك اخي ابو عبد الله و جزاك خير الجزاء و بعد اذنك و ددت المساهمة في الحل و هي نفس الطريقة التي تفضلت بها. و قد تم عمل اجراء باسم changeColor و استدعاؤه بحدث بعد التحديث لمربع التحرير و السرد و كذلك بحدث في الحالي للنموذج ليتم التنفيذ عند التنقل بين السجلات ايضاً. Private Sub changeColor() If Me.detach = "استقالة" Or Me.detach = "عطلة مرضية" Or _ Me.detach = "متقاعد" Or Me.detach = "منتدب" Or _ Me.detach = "وفاة" Then Me.تفصيل.BackColor = vbRed Else Me.تفصيل.BackColor = RGB(198, 217, 241) End If End Sub المرفق بعد التعديل بالتوفيق للجميع تلوين نموذج.rar
  23. بارك الله فيك اخي العزيز عبد الرحمن هاشم و جزاك خير الجزاء اود اضافة حل آخر بإستخدام خاصية RecordCount لمجموعة السجلات مرفق الملف بعد التعديل بالتوفيق للجميع USER.rar
  24. بارك الله فيك اخي العزيز اسير الشروق و جزاك خير الجزاء على دعواتك الطيبة لنا ... ولك مثلها و زيادة ... اللهم امين مثال رائع كروعتك .. سلمت الايادي نسأل الله ان ييسر لك رحلتك الى بيته الحرام .... اذا احتجت لأي مساعدة فأنا من السعودية .. جدة ... فلا تحرمنا شرف رويتك و خدمتك.
  25. تفضل اخي العزيز خالد Dim rs As Recordset Set rs = Me.Recordset With rs .MoveFirst Do Until .EOF If [TEXT2] = "MOBINIL" And [TEXT3] = "TOPUP" Then TEXT5 = [TEXT4] * 0.026 Else If [TEXT2] = "MOBINIL" And [TEXT3] = "BILLPAYMENT" Then TEXT5 = 1.6 * 1 Else If [TEXT2] = "VODAFONE" And [TEXT3] = "TOPUP" Then TEXT5 = [TEXT4] * 0.038 Else If [TEXT2] = "VODAFONE" And [TEXT3] = "BILLPAYMENT" Then TEXT5 = 4.8 * 0.038 Else TEXT5 = [TEXT4] = 0 End If End If End If End If .MoveNext Loop .MoveFirst End With Set rs = Nothing بالتوفيق
×
×
  • اضف...

Important Information