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

شاكر الزين

عضوية شرفية
  • Posts

    98
  • تاريخ الانضمام

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

مشاركات المكتوبه بواسطه شاكر الزين

  1. أخي العزيز / السلام عليكم ورحمة الله وبركاته

    أنشيء جدولاً كي تعين فيه الفترة المطلوب إيقاف البرنامج فيها عن الإضافة والتعديل ووووو ,,,

    ثم إستحضر هاتين الفترتين بدالة ( DLookup ) من الجدول ,,,

    ثم ضع شرطاً في النموذج في خاصية ( عند عداد الوقت ) أنه بين الفترتين يكون عدم السماح بالإضافة والتعدل وووو ,,,,

    كود عدم السماح بالتعديل :

    Me.AllowEdits = False
    كود عدم السماح بالاضافة :
    Me.AllowAdditions = False
    كود عدم السماح بالحذف :
    Me.AllowDeletions = False
    كود بين الفترتين :
    Between [forms]![ff]![time1] And [forms]![ff]![time2]

    حيث ( ff ) اسم النموذج

    و ( time1 ) من فترة

    و ( time2 ) إلى فترة

    سوف يتوجب عليك وضع هذا الشرط في كافة النماذج ,,,

    شاكر

  2. أخي العزيز / ابن مسقط ،، السلام عليكم ورحمة الله وبركاته

    بمعنى المستخدم (أ) يمكنه الإضافة والتعديل والحذف على النموذج 1

    بينما لا يمكنه تنفيذ الحذف على النموذج2

    وعلى النموذج3 يمكنه فقط التعديل والإضافة

    هذه الطريقة تعطي المستخدم الصلاحيات موحدة لجميع النماذج دون التخصيص ،،، أي عندما تعطي مستخدم صلاحيات بالإضافة سوف يكون له السماح بالاضافة في جميع النماذج وعندما تمنعه عن التعديل سوف يمنع عن التعديل في جميع النماذج ,,,,

    المستخدم (ب) لا يمكنه فتح النموذج (أ)

    أما بالنسبة لعدم فتح المستخدم لنموذج وفتحه لنموذج آخر فقط رأيت مثالاً للأستاذين : رضا عقيل و أبو عقيل وقد إستخدما إنشاء عدة حقول للمستخدم ثم إقران كل حقل بنموذج ففي حالة أن قيمة الحقل ( 1 ) يكون له الصلاحية بالدخول على هذا النموذج وفي حالة أن قيمة الحقل ( 2 ) يمنع من الدخول على هذا النموذج ,,,,

    شاكر

  3. أخي الكريم ،،، السلام عليكم ورحمة الله وبركاته ،،،

    سوف تحتاج إلى جدولين وليس جدولاً واحداً ،،،

    الجدول الأول سوف يحتوي على الحقول التالية :

    الرقم : وهو يشير إلى رقم المقترض

    الاسم : وهو يشير إلى إسم المقترض

    التاريخ : وهو يشير إلى تاريخ إستلام القرض

    قيمة السلفة : وهو يشير إلى قيمة القرض ( السفة )

    الجدول الثاني ويحتوي على الحقول التالية :

    الرقم : وهو لعملية الربط بين الجدول الأول والجدول الثاني لعملية سداد الدفعات

    تاريخ الدفعة : وهو يشير إلى تاريخ سداد الدفعة

    القسط الشهري : وهو يشير إلى المبلغ المسدد في ذلك التاريخ .

    ثم عمل علاقة بين الجدولين ( بفرض التكامل المرجعي ) ( علاقة رأس بأطراف ) ،،،

    ثم عمل إستعلام يقرأ من الجدولين حيث عند كتابة رقم المقترض تأتي بياناته من ( الجدول الأول ) ،،، إسمه وتاريخ استلامه للقرض وقيمة القرض ،،، ثم تقوم بتعبئة باقي حقول ( الجدول الثاني ) وهي ،، تاريخ الدفعة والقسط الشهري ،،

    الآن لكي تعمل مجموع الدفعات المسددة لشخص معين تقوم بإنشاء ( مربع نص ) وتضع في ( مصدر عنصر التحكم ) له هذا الكود :

    =DSum("[القسط الشهري]";"t2";"[الرقم]=a")
    حيث ( t2 ) اسم الجدول الثاني جدول الدفعات ,,, ولمعرفة المبلغ المتبقي ،، أنشيء ( مربع نص ) وضع في ( مصدر عنصر التحكم ) له هذا الكود :
    =[sh3]-[sh1]

    حيث ( sh3 ) هو قيمة السلفة من الجدول الأول

    و ( sh1 ) هو مجموع الدفعات المسددة للشخص المعين .

    جرب أن تتبع الخطوات لعمل البرنامج ،،، في حال عدم إستطاعتك سوف أضع لك مثالاً ،،، إن شاء الله تعالى ,,,

    شاكر

  4. أختي الكريمة / السلام عليكم ورحمة الله وبركاته

    اقتباس

    اتمني ان احصل علي نموذج استطيع التعديل فية

    حسب ما اراه مناسب

    مالذي تريدين التعديل فيه ،،، التاريخ والوقت ،،،، إذا كان كذلك

    فقد تم التعديل على المثال بالسماح بالتعديل للوقت والتاريخ ،، ولكن في هذه الحالة لن يكون البرنامج قوياً حيث سمحتي بالتعديل ،،،، ما رأيك ؟؟؟,,,,

    أم أنا فهمت خطأً لما تريدين التعديل فيه حسب ما ترينه مناسباً ؟؟؟ في حالة عدم فهمي أرجو التوضيح أكثر !!!!!

    شاكر

    ملاجظة : تم تعديل المثال فى مشاركة لاحقة

  5. أخي الكريم / ابن مسقط ،،،، السلام عليكم ورحمة الله وبركاته ،،،

    نعم بالإمكان وذلك بالطريقة التالية :

    تقسيم البرنامج إلى قسمين :

    القسم الأول : يتكون من جميع النماذج والاستعلامات والماكرو والتقارير والوحدات النمطية إن وجدت ...

    القسم الثاني : يتكون من جميع الجداول وضع القسمين في مجلد ،،،، ثم عمل ربط الجداول ( القسم الثاني ) ،،، بالنماذج والتقارير و ,,,,,, ( القسم الأول ) ،،، سوف يكون ذلك على الكمبيوتر الرئيسي ،،،، أما عن الشاشات الطرفية المشبوكة بالشاشة الرئيسية ،،، سوف يوضع عليها ( النماذج والاستعلامات و ,,,,,, ) ( القسم الأول ) فقط ،،،، ثم تتم عملية ربط الجداول جميعها بإستثناء جدول المستخدم الحالي الموجود مع الجداول بإسم ( last ) سوف يكون موجوداً في القاعدة كما هو بدون ربط ,,,

    شاكر

  6. سوف أقوم بشرح مثال :

    ملاحظة : هذه الطريقة لإضافة حقول في قاعدة بيانات موجودة من السابق ،،، للتنويه

    افرض أن لديك قاعدة بيانات بإسم ( PHONE.MDB ) ويوجد بها جدول بإسم ( TB1 ) وموجودة على السواقة ( \:C ) ،،، وداخل المجلد ( TEL ) سوف يكون مسار هذه القاعدة هو : ( C:\TEL\PHONE.MDB ) ،،،

    نريد إضافة حقول في الجدول ( TB1 ) الموجود بهذه القاعدة بمجرد ضغطة رز من ( نموذج ) ليس له علاقة بهذه القاعدة ،،، مثلاً :

    حقل بإسم ( الاسم )

    حقل بإسم ( الهاتف )

    حقل بإسم ( العنوان )

    حقل بإسم ( التاريخ )

    سوف ننشيء نموذجاً فارغاً ونعمل به ( زر أمر ) فارغاً أيضاً ونعطي إسم للزر ( أمر0) ,,,, ثم نضع هذا الكود داخل هذا الزر في حدث ( عند النقر ) :

        Dim db As Database
    
        Dim tdfNew As TableDef
    
        Dim fldLoop As Field
    
       On Error GoTo Err_أمر0_Click
    
    
     Set db = DAO.OpenDatabase("c:\TEL\PHONE.MDB")
    
    
      Set tdfNew = db.TableDefs!tb1
    
        With tdfNew
    
        
    
            .Fields.Append .CreateField("الاسم", dbText, 50)
    
            .Fields.Append .CreateField("الهاتف", dbInteger)
    
            .Fields.Append .CreateField("التاريخ", dbDate)
    
            .Fields.Append .CreateField("العنوان", dbText, 40)
    
        End With
    
        MsgBox "تمت عملية إنشاء الحقول المحددة بنجاح!!!", vbOKOnly, "رسالة توضيح"
    
    Exit_أمر0_Click:
    
        Exit Sub
    
    
    Err_أمر0_Click:
    
        MsgBox "إما أن الحقول المراد إنشاؤها موجودة مسبقاً ، أو أن قاعدة البيانات غير موجودة في المكان المحدد!!!", vbOKOnly, "رسالة توضيح"
    
        Resume Exit_أمر0_Click

    شاكر

  7. السلام عليكم ورحمة الله وبركاته ،،،

    لفت نظري هذا العنوان في منتدى الفريق العربي للبرمجة ، وأحببت أن أشرح هذه الكيفية :

    لإضافة حقل لجدول لابد من تعريف مسار قاعدة البيانات ثم تحديد الجدول الذي تريد إضافة الحقل إليه ،،، ثم تحدد إسم الحقل ،،، ثم تحديد خصائص هذا الحقل هل هو ( رقمي ) أو ( نصي ) أو ( تاريخ ) وفي حال خاصية الحقل ( نصي ) تحديد طوله ( 35 أو 45 أو 50 و ,,,, ) ،،، وفي حال وجود هذا الحقل في الجدول لابد أن تضع رسالة تبين وجود هذا الحقل في الجدول الذي قمت بتحديده ,,,,, تضع جميع هذه الأوامر في زر يقوم بتنفيذها عند الضغط عليه ،،،،

    ففي حالة أن الحقل رقمي سوف يكون بهذه الكيفية :

    .Fields.Append .CreateField("الهاتف", dbInteger)
    وفي حالة أن الحقل نصي سوف يكون بهذه الكيفية :
    .Fields.Append .CreateField("الاسم", dbText, 50)
    وفي حالة أن الحقل تاريخ سوف يكون بهذه الكيفية :
    .Fields.Append .CreateField("تاريخ الميلاد", dbDate)

    شاكر

    • Thanks 1
  8. أخي العزيز / السلام عليكم ورحمة الله وبركاته

    ( pas ) ،،، هو جدول ،،، وهو الذي يحتوي على أسماء جميع المستخدمين للبرنامج ،،، مع صلاحياتهم ،،،، فعند الدخول بالكلمة السرية للمستخدم ،،، يقوم تلقائياً بإلحاق أسم هذا المستخدم مع جميع صلاحياته ( الإضافة أو الحذف أو التعديل ) ،،، واسم الجدول الذي تلحق به بيانات المستخدم الحالي هو ( last ) ,,, هل من أسئلة أخرى ،،،، أنا في الخدمة يا عزيزي ,,,, في الإنتظار

    شاكر

  9. أخي العزيز ،،، ضع مؤشر الماوس على رأس النموذج ثم إضغط زر الماوس الايمن ،،، سوف تظهر لك قائمة ،،، اختر منها ( ترتيب الجدولة ) ،،،، ثم قم بترتيب الحقول كما تشاء ،، وأيضا في حالة وجود حقول في قسم ( تفصيل ) قم بنفس العملية ،،،، حينها سوف ينتقل المؤشر للحقول كما تم ترتيبها

    شاكر

  10. أخي العزيز / ابن مسقط ،،،،

    لقد عملت لك ما طلبت ,,,,, أنشأت لك حقل لحفظ رقم العداد في ملف القراءات ،،، حتى تعرف هذه القراءة كانت على أي العداد ,,,, أنشأت لك جدول يحتوي على جميع استبدالات العدادات للمشتركين ،،،، عملت لك (شاشة ) استبدال العدادات ،،،، بمجرد استبدال عداد لمشترك سوف يتم تحديث رقم العداد في الملف الرئيسي ,,,, ويتم تحويل آخر قراءة لهذا المشترك إلى ( صفر ) ,,,, ويبدأ الحساب من جديد مرة أخرى من الصفر ,,,,

    جرب قم بعملية استبدال عداد لمشترك وليكن رقم ( 2 ) ,,, ثم إذهب إلى شاشة إدخال القراءات وقم بإدخال قراءة للمشترك ،،،

    لم أنسى أن أحتفظ برقم العداد السابق للمشترك ،،، حيث أنشأت حقل للعداد السابق في جدول الاستبدالات ،، بمجرد حفظ عملية الاستبدال يقوم بحفظ العداد السابق مع العداد الجديد للمشترك ,,,,,

    نسألكم الدعاء ,,,,

    شاكر

    waterbill_97.zip

  11. أخي الكريم / ابن مسقط

    بخصوص طباعة الفواتير ،، إعتمادي ان شاء الله سوف يكون على الشهر الذي سجلت فيه القراءة -طبعاً هذا يتطلب توحيد تاريخ أخذ القراءات لجميع المستفيدين- وإلا نتيجة الإستعلام ستكون غير صحيحه

    المثال الذي أرفقته لك سوف يحدد لك جميع الفواتير الصادرة لشهر معين سواء كانت قرائتهم بتاريخ ( 1/1/2003 ) أو في تاريخ ( 30/1/2003 ) ،،،، واجهتني مشكلة في شهر

    ( 1/2/2003 ) إلى ( 28/2/2003 ) حيث أن شهر ( 2 ) لايقبل أكثر من ( 28 ) يوماً ,,,, والحمد لله تمكنت من التغلب عليها ,,,, أي عند تحديدك لشهر معين مثل : شهر ( 2 ) ،،،، سوف يسرد لك جميع الفواتير التي تم إدخالها في هذا الشهر سواءاً بتاريخ واحد أو بعدة تواريخ بشرط أن تكون جميع التواريخ في نفس الشهر ،،،،

    أي لا يتطلب توحيد تاريخ أخذ القراءات ،،،، فقط تكون جميع التواريخ تتبع نفس الشهر ,,,,,

    بقت لدى مشكلة ، ربما أقابلها في المستقبل ،،، وهي في حالة تعطل أحد عدادات المستفيدين.

    معنى هذا سوف يتم تركيب عداد جديد للمستفيد وبالتالي بدء تسجيل القراءة من جديد

    سوف أدرسها ،،،، ثم أرد عليك ،،، طبيعي سوف يكون هناك جدولاً لإستبدال العدادات للمستفيدين ،،، مقروناً بالجدول الرئيسي للمستفيدين المسجل فيه رقم العداد الخاص به .

    شاكر

  12. الاخ العزيز / سحاب ،،، السلام عليكم ورحمة الله وبركاته

    جدول الصلاحيات يتكون من رمز المستخدم واسمه وحقل للسماح له بالإضافة و حقل للتعديل وحقل للحذف

    سوف تحدد النماذج ( الشاشات ) الذي ترغب في وضع الصلاحيات عليها ،،،، أي عندك شاشة ( إضافة الموظفين ) ،،، تريد وضع صلاحيات عليها ،،، هنا يجب أن تأتي بإسم ( المستخدم الحالي ) بإستخدام دالة ( DLookUp ) مع الصلاحية التي تريد وضعها له على هذا النموذج ( الشاشة ) ,,,, ففي حال وضعت له السماح بالإضافة أو السماح بالتعديل أو السماح بالحذف أو عدم السماح له سوف يتم منحه أو منعه ،،،،

    شاكر

  13. أخي العزيز / ابن مسقط ،،،، السلام عليكم ورحمة الله وبركاته

    سؤال : على ماذا سوف تعتمد في الطباعة لشهر معين ؟؟؟

    لقد إعتمدت على الشهر الذي تمت فيه القراءة لكي يطبع لك جميع الفواتير لذلك الشهر ،،، ما عليك إلا كتابة رقم الشهر والسنة ،،،، لا أدري ما إذا كانت هذه الطريقة سوف تخدمك أم لأ ,,,,,

    تم حذف المثال ،،، وذلك لتحديثه في الصفحة الثانية ,,,

    شاكر

  14. أخي العزيز / ابن مسقط ،،، السلام عليكم ورحمة الله وبركاته

    أفرض أن أحد المستفيدين قام بسداد جزء من قيمة الفاتورة ، فأين سأقوم بتسجيل المبلغ الذي دفعه (رأي أن أضيف حقل باسم المبلغ المستلم في جدول tbl_Readings ) لكي أتمكن من تسجيل القيمة التي سوف يسددها المستفيد.

    في هذه الحالة أنت تريد فتح المجال بالسداد بمبالغ غير مقترنة بإي شيء فقط برقم المستفيد ،،، ثم تجميعها كمبالغ مسددة لهذا المستفيد ،،، لكي تخصم من المبالغ المطالب بها ،،، ولعمل هذه الطريقة لا يمكن وضع حقل ( المبلغ المستلم ) في نفس الجدول ،،،، لابد من إنشاء جدول جديد لحفظ السدادات ثم مقارنتها بالمبالغ المطالب بها كي تخصم المبالغ المسددة من مجموع الفواتير الموجودة في ملف القراءات والفواتير لهذا المستفيد ,,,

    تم حذف المثال لتحديثه في الصفحة الثانية ,,,,

    شاكر

×
×
  • اضف...

Important Information