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

نجوم المشاركات

  1. ياسر خليل أبو البراء

    ياسر خليل أبو البراء

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


    • نقاط

      17

    • Posts

      13,165


  2. jjafferr

    jjafferr

    أوفيسنا


    • نقاط

      11

    • Posts

      9,814


  3. الصـقر

    الصـقر

    الخبراء


    • نقاط

      10

    • Posts

      1,836


  4. محمد حسن المحمد

    • نقاط

      8

    • Posts

      2,216


Popular Content

Showing content with the highest reputation on 28 ديس, 2015 in all areas

  1. كل عام وأنتم بخير أسال الله تعالى ان يديم محبتنا فيه وعلى طاعته ورضاه أهنئكم بطريقه اكسليه ارجوا ان تنال اعجابكم أخوكم وتلميذكم الصقر كل عام وانتم بخير.zip
    4 points
  2. السلام عليكم ولو اني مالي علاقة في السؤال ، ولكن صاحب السؤال hmimou777 عمل هذا السؤال في 21/12/2015 ، والى اليوم لم يتفاعل مع المشاركات ، بينما الاجابات كلها صارت للأخ nabil09 هنيئا له جعفر
    3 points
  3. السلام عليكم ورحمة الله وبركاته أخي الحبيب ياسر العربي مروركم الأجمل ..حاولت المشاركة بشيء بالرغم من انشغالي ..فالتفاعل مطلوب لأن ثمرته التلاقي والمحبة والسلام عليكم
    3 points
  4. وعليكم السلام ومشاركة مع أخي عبدالرحمن ، ولكن بتعديل للطريقة الاصل وبيان اين المشكلة نضغط على الزر بالثلاث نقاط ، لكي نغير بيانات استعلام مربع تحرير الحقل "مالك العقار" . نرى انك مستخدم اسم المالك فقط ، ولم تنزل الحقول الاخرى التي تريدها ، وهي "رقم الهوية" و "رقم الجوال" !! . ننزل بقية الحقول المطلوبة ، ولاحظ ارقام الاعمدة ، والتي سنستخدمها في الكود ، يعني "رقم الهوية" في العمود رقم 1 ، و "رقم الجوال" في العمود رقم 2 . على هذا الاساس ، نغير في اعدادات الحقل ، بأنه هناك 3 اعمدة ، ولكن اجعل عرض العمود رقم صفر 1.4348 بوصة ، واجعل نتائج العمودين 1 و 2 مخفية (اي ان عرض الاعمدة صفر) . على اساس المعلومات اعلاه ، هكذا يكون الكود ، رقم الاعمدة كما عملناها في الاستعلام . جعفر 324.db1.mdb.zip
    2 points
  5. ههههههههه عندك حق أخي جعفر.. والله انا افتكرت السائل هو الأخ نبيل ونسيت إن صاحب المشاركة hmimou777 الحمد لله المهم ان الإجابات داخل نطاق السؤال من البداية
    2 points
  6. السلام عليكم ورحمة الله وبركاته أخي الحبيب الصقر "حسام عيسى " كلها أيامٌ نعدها فمنها ما يستحق الذكر ومنها ما لا أهمية لذكرها فخير تلك الأيام تلك التي تعدها لك وقد أبليت بها بلاء حسناً ...فنحن ينطبق علينا القول الآتي: من لم يكن يومه خير من أمسه فبطن الأرض خير له من ظهرها...ولكن الحمد لله الذي وهباً لنا قلوباً ذاكرة وألسنة شاكرة فالمرء بأصغريه قلبه ولسانه ..والمؤمن يألف ويؤلف ...وله فراسة ذلك لأنه يعبد ربه على بصيرة ...مما يجعل النور يحيطه من كل اتجاه فلنحمد الله على عظيم منّه وكرمه وأن هيأ لنا خيراً عميماً ومحبة كبرى بين عباده والسلام عليكم.
    2 points
  7. السلام عليكم ورحمة الله وبركاته أخي الحبيب الصقر "حسام عيسى " كل عام وأنتم إلى الله أقرب ..أدعو الله لكم أن يتم لكم فرحتكم وأن يجعلكم ممن يقال لهم :"ادخلوها بسلام ءامنين" فالحياة سجل ضخم مليء بالكتب يثريها كلٌ منا بقربه وخلقه ودينه وورعه أو يجعلها قاحلة ببعده وجفوته والعياذ بالله من خاتمة السوء ...فسبحان الذي أضحك وأبكى وامات وأحيا والأيام شاهدة على كل لحظة عدات قلب المرء قائلة ..إن الحياة دقائق وثواني.. نفرح بقدوم عام جديد نرجو الله أن يكون سعيداً على كل البشرية ...وهذا الفرح ليس بما هو آت بل بما فات من طاعات وقربات فإن لم يكن كذلك فما من داع لهذا الفرح...بل الشعور بالتقصير والعمل على استدراك لحظات الغفلة والتوبة عن كل خطأ أو زلل ...فالأمر جلل ولو نظرنا بتمعن لرأينا سنوات قد طويت بصلاحها ونجاحها أو خيبتها وفشلها.. سعيد بكم إخوتي الكرام والحمد لله هذا العام الذي يشد الرحيل إلى الماضي تعرفت به على أناس كرام ذوي أخلاق عالية وسجايا طيبة وعلمٍ رفيع ...فالحمد لله الذي بنعمته تتم الصالحات ولنقبل على أيامنا الجديدة وقد تخلينا عن كل سوء وتحلينا بسلامة القلب وطهارة السريرة هديتك جميلة جداً أخي الصقر... والسلام عليكم ورحمة الله وبركاته أخوكم أبو يوسف
    2 points
  8. اخى الغالى عبدالعزيز مرورك هو الاروع والاجمل دائما ما تضئ مشاركاتى بنورك تقبل تحياتى
    2 points
  9. السّلام عليكم و رحمة الله و بركاته أخي الغالي .. قبل أستاذي القدير " حسام عيسى " هديّة إكسيلية بأضواء ملوّنة .. مميّزة فعلاً .. بارك الله فيك .. جزاك الله خيرًا و زادك من علمه و فضله كل عام و كل أعضاء جامعة " أوفيسنا " بمليون خير فائق إحتراماتي
    2 points
  10. كل عام وأنت بخير أخي الحبيب الغالي حسام أسأل الله أن يجمعنا في الجنة في مستقر رحمته تقبل تحياتي
    2 points
  11. أخي الكريم عبد الله بارك الله فيك ومشكور على دعائك الطيب سأقولها لك : الطش كما تشاء (أغنية من تأليفي على وزن اغضب كما تشاء ) . إحنا في خدمة إخواننا وأحبابنا ... واللي مش بنقدر على حل مشكلته ، مش بنسكت بردو ، بيتم طرح موضوعات في منتديات أجنبية للاستفادة منهم ، بنلطش إحنا كمان ..المهم مصلحة إخواننا وأحبابنا في الله
    2 points
  12. حفظك الله اخي الفاضل ياسر وكم لطشت(سرقت) من اكوادك وحلولك الرائعة واستخدمتها كثيرا والحمد لله وبفضل من الله وثم امثالكم تعلمت كيف استخدم الاكواد بالمنتدي واطوعها لبرامجي البسيطة واخرها فكرة كسر حماية محرر الاكواد بدون برامج وطبقتها حسب شرحك بالفيديو وكانت النتيجة ليس كسر بل دخول سلس الى محرر الاكواد : اعزك الله ومتعك الصحة والعافية وجعل ما تقدمه في ميزان حسناتكم
    2 points
  13. أخي الكريم أبو حمادة حاول تستخدم خاصية البحث في المنتدى ، وإن شاء الله تجد أجوبة لكثير من الأسئلة إليك الكود التالي يوضع في حدث الفورم Private Sub UserForm_Initialize() With Application .WindowState = xlMaximized Zoom = Int(.Width / Me.Width * 80) Width = .Width: Height = .Height Left = 0: Top = 0 End With End Sub ودا ملف مطبق فيه الكود تقبل تحياتي Fit Screen Resolution YasserKhalil.rar
    2 points
  14. أخي الكريم مختار البركاني السطر الأول هو سطر للإعلان عن المتغيرات المستخدمة في الكود السطر التالي Set MyRange = Range(Cells(8, 1), Cells(Cells(Rows.Count, 1).End(3).Row, 1)) هذا السطر يتم فيه تعيين قيمة للمتغير الذي سنتعامل معه وهو النطاق الذي سنقوم بعمل حلقة تكرارية لخلاياه وهو يبدأ من الخلية في العمود الأول في الصف الثامن وينتهي في نفس العمود في آخر خلية بها بيانات هذا الجزء من الكود For Each Cel In MyRange If Cel.Value = 0 And Cel.Offset(, 4).Value = 0 Then If Not Cel Is Nothing Then If Rng Is Nothing Then Set Rng = Cel Else Set Rng = Union(Rng, Cel) End If Next Cel هنا حلقة تكرارية لكل خلية من خلايا النطاق المذكور في السطر السابق يتم اختبار قيمة الخلية وكذلك قيمة الخلية في العمود الخامس التي تبعد عن الخلية الحالية بمقدار 4 أعمدة في نفس الصف ، فإذا كانت الخليتين قيمتهما = صفر يتم تنفيذ السطر التالي والذي يقوم بتخزين نطاق الخلية الحالية في متغير آخر باسم Rng .. وفي كل حلقة يتم تخزين النطاق الجديد إضافة إلى النطاق القديم .. بمعنى يتم تجميع نطاقات الخلايا التي ينطبق عليها الشرط ثم If Not Rng Is Nothing Then Rng.EntireRow.Hidden = True يتم إخفاء الصفوف للنطاق المسمى Rng (الخلايا التي انطبق عليها الشرط) مرة واحدة وهذا أسرع من الكود الأول الذي يقوم بالتعامل مع صف صف ... الفكرة في السرعة هنا في أداء الكود أن الكود يتعامل مع الخلايا التي ينطبق عليها الشرط مرة واحدة ActiveSheet.PrintPreview أخيراً يتم معاينة أو طباعة ورقة العمل النشطة وفي نهاية المطاف يتم إظهار الصفوف التي تم إخفائها مرة أخرى أرجو أن تكون الصورة قد اتضحت أخي الكريم تقبل تحياتي
    2 points
  15. DAvg Method تستخدم دالة DAvg لحساب المتوسط لمجموعة من القيم الموجودة فى مجموعة محددة من السجلات ( مجال ) و يمكن استخدام هذه الدالة فى كود الفيجوال بيزيك أو فى ماكرو أو فى استعلام أو فى عنصر تحكم به قيمة محسوبة صيغة الدالة : DAvg(Expr, Domain, Criteria) Expr : قيمة نصية تعرف الحقل الذي يحوي البيانات الرقمية المطلوب الحصول علي متوسط لها ، و هي يمكن أن تكون نص يعبر عن إسم حقل فى جدول أو استعلام ، أو معادلة حسابية علي هذا الحقل ، و فى هذا التعبير يمكن ادراج اسم حقل ، عنصر تحكم فى نمموذج ، ثابت ، أو دالة و لكن فى حالة احتوائه علي دالة فيمكن أن تكون دالة من تصميم المستخدم أو دالة جاهزة فى أكسس ،ـ و لكن لا يمكن أن تكون دالة من دوال المجال التجميعية الأخري Domain : قيمة نصية تعرف مجموعة السجلات التي تمثل المجال ، و يمكن أن تكون جدول أو استعلام و كل من Expr و Domain قيم اجبارية لابد من ادراجها فى الدالة ، أما القيمة التالية Criteria فهي خيارية Criteria : قيمة خيارية ( قد توضع و قد لا توضع ) ، و هي معيار يوضع لتحديد مجال تطبيق الدالة ، و يمكن اعتبارها كشرط مناظر ل WHERE في عبارة SQL ، و في حالة عدم ادراجها يتم تطبيق الدالة علي المجال بأكمله. في حالة ادراج حقل فى هذا المعيار و هذا الحقل غير مدرج فى المجال ، تكون القيمة المعادة من الدالة null ، لذا أي حقل موجود فى المعيار Criteria يجب أن يكون أيضا مدرجا فى المجال. ملاحظات : الحقول التي تحوي قيم Null لا تدخل فى حساب المتوسط يمكن استخدام هذه الدالة كمعيار فى الاستعلام العادي أو كقيمة محسوبة فى استعلام تحديث يمكن استخدام DAvg or Avg كقيمة محسوبة فى استعلام تجميع Totals Query ، الفرق أنه فى حالة DAvg يتم حساب المتوسط قبل التجميع ، و فى حالة Avg يتم التجميع قبل حساب المتوسط من ميزات استخدام ال Davg هو حساب القيمة محسوبة فى عنصر تحكم موجود فى نموذج بناء علي بيانات مختلفة عن مصدر بيانات النموذج . قد يكون من المناسب عند استخدامها فى عنصر تحكم فى نموذج مستمر أن توضع فى رأس أو تذييل النموذج لكي لا تتغير القيمة مع التنقل بين السجلات . نوع البيانات المعادة من الدالة كمتوسط لقيم الحقول الرقمية ، تكون من نوع double . فاذا كان هناك حاجة لتحويلها الي نوع رقمي آخر فيرجي مراعاة ذلك بالرغم من أنك تستطيع الحصول علي متوسط القيم لحقل فى جدول مرتبط ، الا أنه ينصح فى هذه الحالة بعمل استعلام مبني علي الجدولين و استخدامه كمصدر لبيانات النموذج أو التقرير. القيم التي لم يتم حفظها بعد فى السجلات لا تدخل فى حسابات الدالة ، و لكن لادخالها لابد من حفظ السجل أولا ، و ذلك باختيار حفظ من أمر File أو بالانتقال الي السجل التالي ، أو باستخدام طريقة ال Update . مثال : =DAvg("[price]", "Orders", "[product] = 'mouse'") و المثال يعني أننا نحسب المتوسط لحقل السعر في جدول الطلبيات بشرط أن المنتج = mouse , يلاحظ أن القيمة النصية فى الشرط توضع بين ‘ ‘. و في حالة حقل الشرط رقمي لا توضع =DAvg("[price]", "Orders", "[productID] = 5") DFirst Method تستخدم دالة DFirst للحصول علي قيمة حقل محدد فى أول سجل فى جدول أو استعلام.. و يمكن استخدام هذه الدالة فى كود الفيجوال بيزيك أو فى ماكرو أو فى استعلام أو فى عنصر تحكم به قيمة محسوبة فى نموذج أو تقرير. و يكون نوع البيانات للقيمة الناتجة منها Variant صيغة الدالة : DFirst(Expr, Domain, Criteria) Expr : قيمة نصية تعرف الحقل الذي يحوي البيانات الرقمية المطلوب الحصول علي اول قيمة لها، و هي يمكن أن تكون نص يعبر عن إسم حقل فى جدول أو استعلام ، أو معادلة حسابية علي هذا الحقل ، و فى هذا التعبير يمكن ادراج اسم حقل ، عنصر تحكم فى نمموذج ، ثابت ، أو دالة و لكن فى حالة احتوائه علي دالة فيمكن أن تكون دالة من تصميم المستخدم أو دالة جاهزة فى أكسس ،ـ و لكن لا يمكن أن تكون دالة من دوال المجال التجميعية الأخري Domain : قيمة نصية تعرف مجموعة السجلات التي تمثل المجال ، و يمكن أن تكون جدول أو استعلام و كل من Expr و Domain قيم اجبارية لابد من ادراجها فى الدالة ، أما القيمة التالية Criteria فهي خيارية Criteria : قيمة خيارية ( قد توضع و قد لا توضع ) ، و هي معيار يوضع لتحديد مجال تطبيق الدالة ، و يمكن اعتبارها كشرط مناظر ل WHERE في عبارة SQL ، و في حالة عدم ادراجها يتم تطبيق الدالة علي المجال بأكمله. في حالة ادراج حقل فى هذا المعيار و هذا الحقل غير مدرج فى المجال ، تكون القيمة المعادة من الدالة null ، لذا أي حقل موجود فى المعيار Criteria يجب أن يكون أيضا مدرجا فى المجال. ملاحظات : اذا أردت الحصول علي أول سجل فى مجموعة سجلات ( مجال محدد ) ، يجب أن تنشيئ استعلام و يكون ترتيبه تنازليا اعتمادا علي هذا الحقل ، و تقوم باسناد قيمة الخاصية TopValues = 1 . مثال : = DFirst ("[price]", "Orders", "[product] = 'mouse'") و المثال يعني أننا نريد الحصول علي أول قيمة عشوائية لحقل السعر في جدول الطلبيات بشرط أن المنتج = mouse , يلاحظ أن القيمة النصية فى الشرط توضع بين ‘ ‘. و في حالة حقل الشرط رقمي لا توضع = DFirst ("[price]", "Orders", "[productID] = 5") للحصول علي قيمة عشوائية للتاكد من تجانس البيانات ، في نافذة ال immediate فى محرر الفيجوال بيزيك (للحصول عليها اضغط CTR+G ) نكتب المثال الاتي ? DFirst("[Orders]![OrderDate]", "[Orders]") -------------------------------------------------------------------------------------------- DLast Method تستخدم دالة DLast للحصول علي قيمة حقل محدد فى آخر سجل فى جدول أو استعلام.. و يمكن استخدام هذه الدالة فى كود الفيجوال بيزيك أو فى ماكرو أو فى استعلام أو فى عنصر تحكم به قيمة محسوبة فى نموذج أو تقرير. و يكون نوع البيانات للقيمة الناتجة منها Variant صيغة الدالة : DLast(Expr, Domain, Criteria) Expr : قيمة نصية تعرف الحقل الذي يحوي البيانات الرقمية المطلوب الحصول علي آخر قيمة لها ، و هي يمكن أن تكون نص يعبر عن إسم حقل فى جدول أو استعلام ، أو معادلة حسابية علي هذا الحقل ، و فى هذا التعبير يمكن ادراج اسم حقل ، عنصر تحكم فى نمموذج ، ثابت ، أو دالة و لكن فى حالة احتوائه علي دالة فيمكن أن تكون دالة من تصميم المستخدم أو دالة جاهزة فى أكسس ،ـ و لكن لا يمكن أن تكون دالة من دوال المجال التجميعية الأخري Domain : قيمة نصية تعرف مجموعة السجلات التي تمثل المجال ، و يمكن أن تكون جدول أو استعلام و كل من Expr و Domain قيم اجبارية لابد من ادراجها فى الدالة ، أما القيمة التالية Criteria فهي خيارية Criteria : قيمة خيارية ( قد توضع و قد لا توضع ) ، و هي معيار يوضع لتحديد مجال تطبيق الدالة ، و يمكن اعتبارها كشرط مناظر ل WHERE في عبارة SQL ، و في حالة عدم ادراجها يتم تطبيق الدالة علي المجال بأكمله. في حالة ادراج حقل فى هذا المعيار و هذا الحقل غير مدرج فى المجال ، تكون القيمة المعادة من الدالة null ، لذا أي حقل موجود فى المعيار Criteria يجب أن يكون أيضا مدرجا فى المجال. ملاحظات : اذا أردت الحصول علي أول سجل فى مجموعة سجلات ( مجال محدد ) ، يجب أن تنشيئ استعلام و يكون ترتيبه تصاعديا اعتمادا علي هذا الحقل ، و تقوم باسناد قيمة الخاصية TopValues = 1 . مثال : = DLast ("[Orders]![price]", "Orders", "[product] = 'mouse'") و المثال يعني أننا نريد الحصول علي آخر قيمة عشوائية لحقل السعر في جدول الطلبيات بشرط أن المنتج = mouse , يلاحظ أن القيمة النصية فى الشرط توضع بين ‘ ‘. و في حالة حقل الشرط رقمي لا توضع = DLast ("[Orders]![price]", "Orders", "[productID] = 5") للحصول علي قيمة عشوائية للتاكد من تجانس البيانات ، في نافذة ال immediate فى محرر الفيجوال بيزيك (للحصول عليها اضغط CTR+G ) نكتب المثال الاتي ? DLast("[Orders]![OrderDate]", "[Orders]") ------------------------------------------------------ DCount Method تستخدم دالة DCount للحصول علي عدد السجلات فى جدول أو استعلام . و يمكن استخدام هذه الدالة فى كود الفيجوال بيزيك أو فى ماكرو أو فى استعلام أو فى عنصر تحكم به قيمة محسوبة فى نموذج أو تقرير. صيغة الدالة : Expression.DCount(Expr, Domain, Criteria) Expr : قيمة نصية تعرف الحقل الذي يحوي البيانات التي تريد عدها ا ، و هي يمكن أن تكون نص يعبر عن إسم حقل فى جدول أو استعلام ، أو معادلة حسابية علي هذا الحقل ، و فى هذا التعبير يمكن ادراج اسم حقل ، عنصر تحكم فى نمموذج ، ثابت ، أو دالة و لكن فى حالة احتوائه علي دالة فيمكن أن تكون دالة من تصميم المستخدم أو دالة جاهزة فى أكسس ،ـ و لكن لا يمكن أن تكون دالة من دوال المجال التجميعية الأخري Domain : قيمة نصية تعرف مجموعة السجلات التي تمثل المجال ، و يمكن أن تكون جدول أو استعلام و كل من Expr و Domain قيم اجبارية لابد من ادراجها فى الدالة ، أما القيمة التالية Criteria فهي خيارية Criteria : قيمة خيارية ( قد توضع و قد لا توضع ) ، و هي معيار يوضع لتحديد مجال تطبيق الدالة ، و يمكن اعتبارها كشرط مناظر ل WHERE في عبارة SQL ، و في حالة عدم ادراجها يتم تطبيق الدالة علي المجال بأكمله. في حالة ادراج حقل فى هذا المعيار و هذا الحقل غير مدرج فى المجال ، تكون القيمة المعادة من الدالة null ، لذا أي حقل موجود فى المعيار Criteria يجب أن يكون أيضا مدرجا فى المجال. ملاحظات : تستخدم dcount لمعرفة عدد السجلات فى مجال محدد ، عندما لا نكون بحاجة لمعرفة القيم الخاصة بهذه السجلات و لكن ببساطة عددها. اذا كنت تريد مجرد عد كل السجلات فى تقرير ، استخدم دالة Count و التي تم تصميمها بحيث تحصل علي العدد بصورة سريعة . لذلك فى حالة تعبير فى استعلام استخدم Count بدلا من DCount . و استخدم DCount اذا كنت تريد العد من داخل الكود أو الماكرو. يمكن إستخدام DCount اذا كنت تريد الحصول علي عدد السجلات التي تحوي حقل معين ، و هذا الحقل المعين ليس موجودا فى مصدر بيانات النموذج أو التقرير الذي تقوم بالحساب فيه. الحقول التي تحوي قيم Null لا تدخل فى حساب عدد السجلات ، الا إذا كانت قيمة ال expr تساوي * ، أي أنه فى حالة كون ال expr يساوي * تقوم الدالة بعد جميع السجلات حتي تلك التي تحوي حقول Null . مثال : intX = DCount("*", "Orders") اذا كان المجال المحدد جدول به حقل مفتاح ، فيمكنك أن تضع قيمة ال expr تساوي حقل المفتاح ، حيث أنه لن يكون أبدا Null . اذا كانت expr تحوي أكثر من حقل ، يكون الفاصل بينها اما + و إما & ، اذا كان الفاصل ( & ) فان دالة dcount تقوم بعد السجلات فى أي من الحقول المذكورة ، أما اذا استخدمنا ال ( + ) فان الدالة تقوم بعد السجلات فى كل الحقول المذكورة . مثال : intW = DCount("[ShipName]", "Orders") intX = DCount("[ShipRegion]", "Orders") intY = DCount("[ShipName] + [ShipRegion]","Orders") intZ = DCount("[ShipName] & [ShipRegion]","Orders") intW = 831 intX =323 intY =323 intZ =831 ملاحظة : ال ampersand أي ال (&) هي أفضل معامل يمكن استخدامه فى الصاق النصوص ، و يجب تجنب استخدام ال (+) الا فى حالة جمع الارقام . القيم التي لم يتم حفظها بعد فى السجلات لا تدخل فى حسابات الدالة ، و لكن لادخالها لابد من حفظ السجل أولا ، و ذلك باختيار حفظ من أمر File أو بالانتقال الي السجل التالي ، أو باستخدام طريقة ال Update . مثال : = DCount ("[price]", "Orders", "[product] = 'mouse'") و المثال يعني نقوم بالعد لحقل السعر في جدول الطلبيات بشرط أن المنتج = mouse , يلاحظ أن القيمة النصية فى الشرط توضع بين ‘ ‘. و في حالة حقل الشرط رقمي لا توضع = DCount ("[price]", "Orders", "[productID] = 5") ---------------------------------------------------------------------------------------- DLookup Method تستخدم دالة DLookup للحصول علي قيمة حقل محدد من مجموعة سجلات (مجال) . و يمكن استخدام هذه الدالة فى كود الفيجوال بيزيك أو فى ماكرو أو فى استعلام أو فى عنصر تحكم به قيمة محسوبة فى نموذج أو تقرير. و يكون نوع البيانات للقيمة الناتجة منها Variant صيغة الدالة : DLookup(Expr, Domain, Criteria) Expr : قيمة نصية تعرف الحقل الذي يحوي البيانات التي تريد اعادتها بواسطة هذه الدالة ، و هي يمكن أن تكون نص يعبر عن إسم حقل فى جدول أو استعلام ، أو معادلة حسابية علي هذا الحقل ، و فى هذا التعبير يمكن ادراج اسم حقل ، عنصر تحكم فى نمموذج ، ثابت ، أو دالة و لكن فى حالة احتوائه علي دالة فيمكن أن تكون دالة من تصميم المستخدم أو دالة جاهزة فى أكسس ،ـ و لكن لا يمكن أن تكون دالة من دوال المجال التجميعية الأخري Domain : قيمة نصية تعرف مجموعة السجلات التي تمثل المجال ، و يمكن أن تكون جدول أو استعلام و كل من Expr و Domain قيم اجبارية لابد من ادراجها فى الدالة ، أما القيمة التالية Criteria فهي خيارية Criteria : قيمة خيارية ( قد توضع و قد لا توضع ) ، و هي معيار يوضع لتحديد مجال تطبيق الدالة ، و يمكن اعتبارها كشرط مناظر ل WHERE في عبارة SQL ، و في حالة عدم ادراجها يتم تطبيق الدالة علي المجال بأكمله. في حالة ادراج حقل فى هذا المعيار و هذا الحقل غير مدرج فى المجال ، تكون القيمة المعادة من الدالة null ، لذا أي حقل موجود فى المعيار Criteria يجب أن يكون أيضا مدرجا فى المجال. ملاحظات تعيد الدالة DLookup قيمة وحيدة بناء علي المعايير التي تحددها فى جزء ال criteria فى الدالة ، و هذا الجزء كما ذكرنا خياري ، فاذا لم نحدد المعيار فان الدالة تعيد قيمة عشوائية من ضمن المجال. اذا لم يوجد سجل يوفي الشروط المحددة فى المعيار ، فان الدالة DLookup تعيد قيمة Null . اذا حقق أكثر من سجل المعيار المطلوب فان الدالة ااا تعيد أول حدوث لتحقيق الشرط ، أي قيمة الحقل فى أول سجل يحقق المعيار ، علي الرغم من وجود سجلات أخري تحققه . لذا يفضل تحديد الشرط بدقة بحيث يعيد سجل وحيد Dim varX As Variant varX = DLookup("[LastName]", "Employees", "[EmployeeID] = 1") يمكن استخدام هذه الدالة كمعيار فى الاستعلام العادي أو كقيمة محسوبة فى استعلام تحديث يمكنك استخدام DLookup لاظهار قيمة حقل ليس من ضمن البيانات فى مصدر بيانات النموذج أو التقرير لنفرض أن لديك نموذج تفاصيل الطلبيات و هو مبني علي جدول تفاصيل الطلبيات ، و تريد إدراج اسم المنتج من جدول المنتجات فى مربع نص علي النموذج، بجيث يكون بالطبع يساوي رقم المنتج الذي يظهر فى مربع نص آخر علي النموذج اسمه ProductID. فنضع الكود التالي فى مربع النص الذي نريد إظهار الاسم فيه =DLookup("[ProductName]", "Products", "[ProductID] =" _ & Forms![Order Details]!ProductID) بالرغم من أنك تستطيع الحصول علي قيمة حقل فى جدول مرتبط باسنخدام DLookup ، الا أنه ينصح فى هذه الحالة بعمل استعلام مبني علي الجدولين و استخدامه كمصدر لبيانات النموذج أو التقرير. القيم التي لم يتم حفظها بعد فى السجلات لا تدخل فى حسابات الدالة ، و لكن لادخالها لابد من حفظ السجل أولا ، و ذلك باختيار حفظ من أمر File أو بالانتقال الي السجل التالي ، أو باستخدام طريقة ال Update . DMax Method تستخدم دالة DMax للحصول علي القيم القصوي فى مجموعة سجلات ( مجال ) . و يمكن استخدام هذه الدالة فى كود الفيجوال بيزيك أو فى ماكرو أو فى استعلام أو فى عنصر تحكم به قيمة محسوبة فى نموذج أو تقرير. و يكون نوع البيانات للقيمة الناتجة منها Variant صيغة الدالة : DMax(Expr, Domain, Criteria) Expr : قيمة نصية تعرف الحقل الذي يحوي البيانات التي تريد اعادة اقيمة القصوي لها بواسطة هذه الدالة ، و هي يمكن أن تكون نص يعبر عن إسم حقل فى جدول أو استعلام ، أو معادلة حسابية علي هذا الحقل ، و فى هذا التعبير يمكن ادراج اسم حقل ، عنصر تحكم فى نمموذج ، ثابت ، أو دالة و لكن فى حالة احتوائه علي دالة فيمكن أن تكون دالة من تصميم المستخدم أو دالة جاهزة فى أكسس ،ـ و لكن لا يمكن أن تكون دالة من دوال المجال التجميعية الأخري Domain : قيمة نصية تعرف مجموعة السجلات التي تمثل المجال ، و يمكن أن تكون جدول أو استعلام و كل من Expr و Domain قيم اجبارية لابد من ادراجها فى الدالة ، أما القيمة التالية Criteria فهي خيارية Criteria : قيمة خيارية ( قد توضع و قد لا توضع ) ، و هي معيار يوضع لتحديد مجال تطبيق الدالة ، و يمكن اعتبارها كشرط مناظر ل WHERE في عبارة SQL ، و في حالة عدم ادراجها يتم تطبيق الدالة علي المجال بأكمله. في حالة ادراج حقل فى هذا المعيار و هذا الحقل غير مدرج فى المجال ، تكون القيمة المعادة من الدالة null ، لذا أي حقل موجود فى المعيار Criteria يجب أن يكون أيضا مدرجا فى المجال. ملاحظات الدالة DMax تعيد أقصي قيمة تحقق المعيار المحدد ، و هذا فى حالة الحقل الرقمي ، أما فى حالة الحقل النصي فانها تعيد أو ل أو آخر قيمة بحسب الترتيب الابجدي. الدالة DMax تتجاهل قيم ال Null فى حقل البحث ، و أيضا اذا لم تجد حقل يحقق المعيار المحدد فانها تعيد القيمة Null. يمكن استخدام هذه الدالة كمعيار فى الاستعلام العادي أو كقيمة محسوبة فى استعلام تحديث يمكن استخدام DMax او Max فى حقل محسوب فى استعلام تجميع ، فى حالة DMax يتم اختبار القيم قبل تجميعها و فى حالة Max يتم التجميع ثم اختبار القيم. اذا كنت تريد ببساطة حساب أقصي قيمة فى مجال محدد فاستخدم الدالة Max . يمكنك استخدام DMax لاظهار أقصي قيمة حقل ليس من ضمن البيانات فى مصدر بيانات النموذج أو التقرير. بالرغم من أنك تستطيع الحصول علي قيمة حقل فى جدول مرتبط باسنخدام DMax ، الا أنه ينصح فى هذه الحالة بعمل استعلام مبني علي الجدولين و استخدامه كمصدر لبيانات النموذج أو التقرير. القيم التي لم يتم حفظها بعد فى السجلات لا تدخل فى حسابات الدالة ، و لكن لادخالها لابد من حفظ السجل أولا ، و ذلك باختيار حفظ من أمر File أو بالانتقال الي السجل التالي ، أو باستخدام طريقة ال Update . يمكنك استخدام DMax فى مربع نص حينما تريد تحديد معيار لتقليص المجال الذي تنفذ عليه الدالة مثال : = DMax ("[price]", "Orders", "[product] = 'mouse'") و المثال يعني أننا نريد إظهار أقصي قيمة لحقل السعر في جدول الطلبيات بشرط أن المنتج = mouse , يلاحظ أن القيمة النصية فى الشرط توضع بين ‘ ‘. و في حالة حقل الشرط رقمي لا توضع = DMax ("[price]", "Orders", "[productID] = 5") مثال آخر : فى حالة كون الشرط حقل تاريخ موجود علي عنصر تحكم فى نموذج ( مربع نص ) : Dim curX As Currency curX = DMax("[Freight]", "Orders", "[OrderDate] = #" _ & Forms!Orders!OrderDate & "#") و هنا نلاحظ أن عنصر التحكم المسمي OrderDate الموجود علي نموذج orders لم يتم احاطته ب "" ، و ذلك لأن القيمة به متغيرة و تتغير مع تغير السجلات ، و لو أحيطت ب "" لعوملت علي أنها قيمة نصية ثابتة . أيضا نلاحظ أن القيمة المعادة من عنصر التحكم نحيطها ب # و ذلك لأنها من نوع تاريخ. DMin Method تستخدم دالة DMin للحصول علي القيم الدنيا فى مجموعة سجلات ( مجال ) . و يمكن استخدام هذه الدالة فى كود الفيجوال بيزيك أو فى ماكرو أو فى استعلام أو فى عنصر تحكم به قيمة محسوبة فى نموذج أو تقرير. و يكون نوع البيانات للقيمة الناتجة منها Variant صيغة الدالة : DMin(Expr, Domain, Criteria) Expr : قيمة نصية تعرف الحقل الذي يحوي البيانات التي تريد اعادة اقيمة الدنيا لها بواسطة هذه الدالة ، و هي يمكن أن تكون نص يعبر عن إسم حقل فى جدول أو استعلام ، أو معادلة حسابية علي هذا الحقل ، و فى هذا التعبير يمكن ادراج اسم حقل ، عنصر تحكم فى نمموذج ، ثابت ، أو دالة و لكن فى حالة احتوائه علي دالة فيمكن أن تكون دالة من تصميم المستخدم أو دالة جاهزة فى أكسس ،ـ و لكن لا يمكن أن تكون دالة من دوال المجال التجميعية الأخري Domain : قيمة نصية تعرف مجموعة السجلات التي تمثل المجال ، و يمكن أن تكون جدول أو استعلام و كل من Expr و Domain قيم اجبارية لابد من ادراجها فى الدالة ، أما القيمة التالية Criteria فهي خيارية Criteria : قيمة خيارية ( قد توضع و قد لا توضع ) ، و هي معيار يوضع لتحديد مجال تطبيق الدالة ، و يمكن اعتبارها كشرط مناظر ل WHERE في عبارة SQL ، و في حالة عدم ادراجها يتم تطبيق الدالة علي المجال بأكمله. في حالة ادراج حقل فى هذا المعيار و هذا الحقل غير مدرج فى المجال ، تكون القيمة المعادة من الدالة null ، لذا أي حقل موجود فى المعيار Criteria يجب أن يكون أيضا مدرجا فى المجال. ملاحظات الدالة DMin تعيد أقل قيمة تحقق المعيار المحدد ، و هذا فى حالة الحقل الرقمي ، أما فى حالة الحقل النصي فانها تعيد أو ل أو آخر قيمة بحسب الترتيب الابجدي. الدالة DMin تتجاهل قيم ال Null فى حقل البحث ، و أيضا اذا لم تجد حقل يحقق المعيار المحدد فانها تعيد القيمة Null. يمكن استخدام هذه الدالة كمعيار فى الاستعلام العادي أو كقيمة محسوبة فى استعلام تحديث يمكن استخدام DMin او Min فى حقل محسوب فى استعلام تجميع ، فى حالة DMin يتم اختبار القيم قبل تجميعها و فى حالة Min يتم التجميع ثم اختبار القيم. اذا كنت تريد ببساطة حساب أقصي قيمة فى مجال محدد فاستخدم الدالة Min . يمكنك استخدام DMin لاظهار أقل قيمة حقل ليس من ضمن البيانات فى مصدر بيانات النموذج أو التقرير. بالرغم من أنك تستطيع الحصول علي قيمة حقل فى جدول مرتبط باسنخدام DMin ، الا أنه ينصح فى هذه الحالة بعمل استعلام مبني علي الجدولين و استخدامه كمصدر لبيانات النموذج أو التقرير. القيم التي لم يتم حفظها بعد فى السجلات لا تدخل فى حسابات الدالة ، و لكن لادخالها لابد من حفظ السجل أولا ، و ذلك باختيار حفظ من أمر File أو بالانتقال الي السجل التالي ، أو باستخدام طريقة ال Update . يمكنك استخدام DMin فى مربع نص حينما تريد تحديد معيار لتقليص المجال الذي تنفذ عليه الدالة مثال : = DMin ("[price]", "Orders", "[product] = 'mouse'") و المثال يعني أننا نريد إظهار أقصي قيمة لحقل السعر في جدول الطلبيات بشرط أن المنتج = mouse , يلاحظ أن القيمة النصية فى الشرط توضع بين ‘ ‘. و في حالة حقل الشرط رقمي لا توضع = DMin ("[price]", "Orders", "[productID] = 5") مثال آخر : فى حالة كون الشرط حقل تاريخ موجود علي عنصر تحكم فى نموذج ( مربع نص ) : Dim curX As Currency curX = DMin("[Freight]", "Orders", "[OrderDate] = #" _ & Forms!Orders!OrderDate & "#") و هنا نلاحظ أن عنصر التحكم المسمي OrderDate الموجود علي نموذج orders لم يتم احاطته ب "" ، و ذلك لأن القيمة به متغيرة و تتغير مع تغير السجلات ، و لو أحيطت ب "" لعوملت علي أنها قيمة نصية ثابتة . أيضا نلاحظ أن القيمة المعادة من عنصر التحكم نحيطها ب # و ذلك لأنها من نوع تاريخ. DStDev Method تستخدم دالة DStDev للحصول علي الانحراف المعياري لمجموعة سجلات ( مجال ) . و يمكن استخدام هذه الدالة فى كود الفيجوال بيزيك أو فى ماكرو أو فى استعلام أو فى عنصر تحكم به قيمة محسوبة فى نموذج أو تقرير. صيغة الدالة : DStDev(Expr, Domain, Criteria) Expr : قيمة نصية تعرف الحقل الرقمي الذي يحوي البيانات التي تريد حساب الانحراف المعياري لها بواسطة هذه الدالة ، و هي يمكن أن تكون نص يعبر عن إسم حقل فى جدول أو استعلام ، أو معادلة حسابية علي هذا الحقل ، و فى هذا التعبير يمكن ادراج اسم حقل ، عنصر تحكم فى نمموذج ، ثابت ، أو دالة و لكن فى حالة احتوائه علي دالة فيمكن أن تكون دالة من تصميم المستخدم أو دالة جاهزة فى أكسس ،ـ و لكن لا يمكن أن تكون دالة من دوال المجال التجميعية الأخري Domain : قيمة نصية تعرف مجموعة السجلات التي تمثل المجال ، و يمكن أن تكون جدول أو استعلام و كل من Expr و Domain قيم اجبارية لابد من ادراجها فى الدالة ، أما القيمة التالية Criteria فهي خيارية Criteria : قيمة خيارية ( قد توضع و قد لا توضع ) ، و هي معيار يوضع لتحديد مجال تطبيق الدالة ، و يمكن اعتبارها كشرط مناظر ل WHERE في عبارة SQL ، و في حالة عدم ادراجها يتم تطبيق الدالة علي المجال بأكمله. في حالة ادراج حقل فى هذا المعيار و هذا الحقل غير مدرج فى المجال ، تكون القيمة المعادة من الدالة null ، لذا أي حقل موجود فى المعيار Criteria يجب أن يكون أيضا مدرجا فى المجال. ملاحظات تستخدم هذه الدالة لحساب الانحراف المعياري لعينة من السكان اذا كان المجال المحدد يحوي أقل من عدد 2 سجل ، فان هذه الدالة تكون قيمتها Null مما يدل علي أن الانحراف المعياري لم يمكن حسابه. يمكن استخدام هذه الدالة كمعيار فى الاستعلام العادي أو كقيمة محسوبة فى استعلام تحديث يمكن استخدام DStDev او StDev فى حقل محسوب فى استعلام تجميع ، فى حالة DStDev يتم الحساب قبل التجميع و فى حالة StDev يتم التجميع ثم الحساب . اذا كنت تريد ببساطة حساب أقصي قيمة فى مجال محدد فاستخدم الدالة StDev. القيمة المعادة من هذه الدالة تكون من نوع Double . و يجب مراعاة ذلك عند ادخالها فى عمليات حسابية. القيم التي لم يتم حفظها بعد فى السجلات لا تدخل فى حسابات الدالة ، و لكن لادخالها لابد من حفظ السجل أولا ، و ذلك باختيار حفظ من أمر File أو بالانتقال الي السجل التالي ، أو باستخدام طريقة ال Update. يمكنك استخدام DStDev فى مربع نص حينما تريد تحديد معيار لتقليص المجال الذي تنفذ عليه الدالة مثال : = DStDev ("[price]", "Orders", "[product] = 'mouse'") و المثال يعني أننا نريد إظهار أقصي قيمة لحقل السعر في جدول الطلبيات بشرط أن المنتج = mouse , يلاحظ أن القيمة النصية فى الشرط توضع بين ‘ ‘. و في حالة حقل الشرط رقمي لا توضع = DStDev ("[price]", "Orders", "[productID] = 5") مثال آخر : فى حالة كون الشرط حقل تاريخ موجود علي عنصر تحكم فى نموذج ( مربع نص ) : Dim curX As Currency curX = DStDev ("[price]", "Orders", "[OrderDate] = #" _ & Forms!Orders!OrderDate & "#") و هنا نلاحظ أن عنصر التحكم المسمي OrderDate الموجود علي نموذج orders لم يتم احاطته ب "" ، و ذلك لأن القيمة به متغيرة و تتغير مع تغير السجلات ، و لو أحيطت ب "" لعوملت علي أنها قيمة نصية ثابتة . أيضا نلاحظ أن القيمة المعادة من عنصر التحكم نحيطها ب # و ذلك لأنها من نوع تاريخ. DStDevP Method تستخدم دالة DStDevP للحصول علي الانحراف المعياري لمجموعة سجلات ( مجال ) . و يمكن استخدام هذه الدالة فى كود الفيجوال بيزيك أو فى ماكرو أو فى استعلام أو فى عنصر تحكم به قيمة محسوبة فى نموذج أو تقرير. صيغة الدالة : DStDevP(Expr, Domain, Criteria) Expr : قيمة نصية تعرف الحقل الرقمي الذي يحوي البيانات التي تريد حساب الانحراف المعياري لها بواسطة هذه الدالة ، و هي يمكن أن تكون نص يعبر عن إسم حقل فى جدول أو استعلام ، أو معادلة حسابية علي هذا الحقل ، و فى هذا التعبير يمكن ادراج اسم حقل ، عنصر تحكم فى نمموذج ، ثابت ، أو دالة و لكن فى حالة احتوائه علي دالة فيمكن أن تكون دالة من تصميم المستخدم أو دالة جاهزة فى أكسس ،ـ و لكن لا يمكن أن تكون دالة من دوال المجال التجميعية الأخري Domain : قيمة نصية تعرف مجموعة السجلات التي تمثل المجال ، و يمكن أن تكون جدول أو استعلام و كل من Expr و Domain قيم اجبارية لابد من ادراجها فى الدالة ، أما القيمة التالية Criteria فهي خيارية Criteria : قيمة خيارية ( قد توضع و قد لا توضع ) ، و هي معيار يوضع لتحديد مجال تطبيق الدالة ، و يمكن اعتبارها كشرط مناظر ل WHERE في عبارة SQL ، و في حالة عدم ادراجها يتم تطبيق الدالة علي المجال بأكمله. في حالة ادراج حقل فى هذا المعيار و هذا الحقل غير مدرج فى المجال ، تكون القيمة المعادة من الدالة null ، لذا أي حقل موجود فى المعيار Criteria يجب أن يكون أيضا مدرجا فى المجال. ملاحظات تستخدم هذه الدالة لحساب الانحراف المعياري للسكان ( و ليس لعينة من السكان ) اذا كان المجال المحدد يحوي أقل من عدد 2 سجل ، فان هذه الدالة تكون قيمتها Null مما يدل علي أن الانحراف المعياري لم يمكن حسابه. يمكن استخدام هذه الدالة كمعيار فى الاستعلام العادي أو كقيمة محسوبة فى استعلام تحديث يمكن استخدام DStDevP او StDevP فى حقل محسوب فى استعلام تجميع ، فى حالة DStDevP يتم الحساب قبل التجميع و فى حالة StDevP يتم التجميع ثم الحساب . اذا كنت تريد ببساطة حساب أقصي قيمة فى مجال محدد فاستخدم الدالة StDevP. القيمة المعادة من هذه الدالة تكون من نوع Double . و يجب مراعاة ذلك عند ادخالها فى عمليات حسابية. القيم التي لم يتم حفظها بعد فى السجلات لا تدخل فى حسابات الدالة ، و لكن لادخالها لابد من حفظ السجل أولا ، و ذلك باختيار حفظ من أمر File أو بالانتقال الي السجل التالي ، أو باستخدام طريقة ال Update. يمكنك استخدام DStDevP فى مربع نص حينما تريد تحديد معيار لتقليص المجال الذي تنفذ عليه الدالة مثال : = StDevP ("[price]", "Orders", "[product] = 'mouse'") و المثال يعني أننا نريد إظهار أقصي قيمة لحقل السعر في جدول الطلبيات بشرط أن المنتج = mouse , يلاحظ أن القيمة النصية فى الشرط توضع بين ‘ ‘. و في حالة حقل الشرط رقمي لا توضع = StDevP ("[price]", "Orders", "[productID] = 5") مثال آخر : فى حالة كون الشرط حقل تاريخ موجود علي عنصر تحكم فى نموذج ( مربع نص ) : Dim curX As Currency curX = StDevP ("[price]", "Orders", "[OrderDate] = #" _ & Forms!Orders!OrderDate & "#") و هنا نلاحظ أن عنصر التحكم المسمي OrderDate الموجود علي نموذج orders لم يتم احاطته ب "" ، و ذلك لأن القيمة به متغيرة و تتغير مع تغير السجلات ، و لو أحيطت ب "" لعوملت علي أنها قيمة نصية ثابتة . أيضا نلاحظ أن القيمة المعادة من عنصر التحكم نحيطها ب # و ذلك لأنها من نوع تاريخ. DSum Method تستخدم دالة DSum للحصول علي المجموع لمجموعة سجلات ( مجال ) . و يمكن استخدام هذه الدالة فى كود الفيجوال بيزيك أو فى ماكرو أو فى استعلام أو فى عنصر تحكم به قيمة محسوبة فى نموذج أو تقرير. صيغة الدالة : DSum(Expr, Domain, Criteria) Expr : قيمة نصية تعرف الحقل الرقمي الذي يحوي البيانات التي تريد حساب الإجمالي لها بواسطة هذه الدالة ، و هي يمكن أن تكون نص يعبر عن إسم حقل فى جدول أو استعلام ، أو معادلة حسابية علي هذا الحقل ، و فى هذا التعبير يمكن ادراج اسم حقل ، عنصر تحكم فى نمموذج ، ثابت ، أو دالة و لكن فى حالة احتوائه علي دالة فيمكن أن تكون دالة من تصميم المستخدم أو دالة جاهزة فى أكسس ،ـ و لكن لا يمكن أن تكون دالة من دوال المجال التجميعية الأخري Domain : قيمة نصية تعرف مجموعة السجلات التي تمثل المجال ، و يمكن أن تكون جدول أو استعلام و كل من Expr و Domain قيم اجبارية لابد من ادراجها فى الدالة ، أما القيمة التالية Criteria فهي خيارية Criteria : قيمة خيارية ( قد توضع و قد لا توضع ) ، و هي معيار يوضع لتحديد مجال تطبيق الدالة ، و يمكن اعتبارها كشرط مناظر ل WHERE في عبارة SQL ، و في حالة عدم ادراجها يتم تطبيق الدالة علي المجال بأكمله. في حالة ادراج حقل فى هذا المعيار و هذا الحقل غير مدرج فى المجال ، تكون القيمة المعادة من الدالة null ، لذا أي حقل موجود فى المعيار Criteria يجب أن يكون أيضا مدرجا فى المجال. يمكنك استخدام هذه الدالة فى فى تعبير محسوب فى استعلام لحساب اجمالي المبيعات التي قام بها مندوب معين ، أو فى عنصر تحكم للحصول علي القيمة التراكمية للمبيعات لمنتج معين ( هذا فى النموذج ، أما فى التقرير فيمكن استخدام خاصية running sum لمربع النص للحصول علي القيمة التراكمية بدون Dsum ) . اذا لم توجد سجلات تحقق المعيار المحدد أو كان المجال لا يحوي سجلات ، فان قيمة الدالة تكون Null. يمكن استخدام هذه الدالة كمعيار فى الاستعلام العادي أو كقيمة محسوبة فى استعلام تحديث يمكن استخدام DSum او Sum فى حقل محسوب فى استعلام تجميع ، فى حالة DSum يتم الحساب قبل التجميع و فى حالة Sum يتم التجميع ثم الحساب . يمكنك استخدام DSum لاظهار أقل قيمة حقل ليس من ضمن البيانات فى مصدر بيانات النموذج أو التقرير. القيم التي لم يتم حفظها بعد فى السجلات لا تدخل فى حسابات الدالة ، و لكن لادخالها لابد من حفظ السجل أولا ، و ذلك باختيار حفظ من أمر File أو بالانتقال الي السجل التالي ، أو باستخدام طريقة ال Update . مثال : = DMin ("[price]", "Orders", "[product] = 'mouse'") و المثال يعني أننا نريد إظهار أقصي قيمة لحقل السعر في جدول الطلبيات بشرط أن المنتج = mouse , يلاحظ أن القيمة النصية فى الشرط توضع بين ‘ ‘. و في حالة حقل الشرط رقمي لا توضع = DMin ("[price]", "Orders", "[productID] = 5") مثال آخر : فى حالة كون الشرط حقل تاريخ موجود علي عنصر تحكم فى نموذج ( مربع نص ) : Dim curX As Currency curX = DMin("[Freight]", "Orders", "[OrderDate] = #" _ & Forms!Orders!OrderDate & "#") و هنا نلاحظ أن عنصر التحكم المسمي OrderDate الموجود علي نموذج orders لم يتم احاطته ب "" ، و ذلك لأن القيمة به متغيرة و تتغير مع تغير السجلات ، و لو أحيطت ب "" لعوملت علي أنها قيمة نصية ثابتة . أيضا نلاحظ أن القيمة المعادة من عنصر التحكم نحيطها ب # و ذلك لأنها من نوع تاريخ. DVar Method تستخدم دالة DVar للحصول علي تقديرات التنوع لمجموعة سجلات ( مجال ) . و يمكن استخدام هذه الدالة فى كود الفيجوال بيزيك أو فى ماكرو أو فى استعلام أو فى عنصر تحكم به قيمة محسوبة فى نموذج أو تقرير. تستخدم هذه الدالة فى تحليل التنوع خلال عينة من السكان ، مثلا حساب التنوع فى نتائج اختبارات مجموعة من الطلاب. صيغة الدالة : DVar(Expr, Domain, Criteria) Expr : قيمة نصية تعرف الحقل الرقمي الذي يحوي البيانات التي تريد حساب التنوع لها بواسطة هذه الدالة ، و هي يمكن أن تكون نص يعبر عن إسم حقل فى جدول أو استعلام ، أو معادلة حسابية علي هذا الحقل ، و فى هذا التعبير يمكن ادراج اسم حقل ، عنصر تحكم فى نمموذج ، ثابت ، أو دالة و لكن فى حالة احتوائه علي دالة فيمكن أن تكون دالة من تصميم المستخدم أو دالة جاهزة فى أكسس ،ـ و لكن لا يمكن أن تكون دالة من دوال المجال التجميعية الأخري . و يلاحظ أن أي حقل يرد فى هذا الجزء من الدالة لابد أن يكون رقمي . Domain : قيمة نصية تعرف مجموعة السجلات التي تمثل المجال ، و يمكن أن تكون جدول أو استعلام و كل من Expr و Domain قيم اجبارية لابد من ادراجها فى الدالة ، أما القيمة التالية Criteria فهي خيارية Criteria : قيمة خيارية ( قد توضع و قد لا توضع ) ، و هي معيار يوضع لتحديد مجال تطبيق الدالة ، و يمكن اعتبارها كشرط مناظر ل WHERE في عبارة SQL ، و في حالة عدم ادراجها يتم تطبيق الدالة علي المجال بأكمله. في حالة ادراج حقل فى هذا المعيار و هذا الحقل غير مدرج فى المجال ، تكون القيمة المعادة من الدالة null ، لذا أي حقل موجود فى المعيار Criteria يجب أن يكون أيضا مدرجا فى المجال. ملاحظات اذا كان المجال المحدد يحوي أقل من عدد 2 سجل ، فان هذه الدالة تكون قيمتها Null مما يدل علي أن الانحراف المعياري لم يمكن حسابه. يمكن استخدام هذه الدالة كمعيار فى الاستعلام العادي أو كقيمة محسوبة فى استعلام تحديث يمكن استخدام DVar او Var فى حقل محسوب فى استعلام تجميع ، فى حالة DVar يتم الحساب قبل التجميع و فى حالة Var يتم التجميع ثم الحساب . اذا كنت تريد ببساطة حساب أقصي قيمة فى مجال محدد فاستخدم الدالة Var. القيم التي لم يتم حفظها بعد فى السجلات لا تدخل فى حسابات الدالة ، و لكن لادخالها لابد من حفظ السجل أولا ، و ذلك باختيار حفظ من أمر File أو بالانتقال الي السجل التالي ، أو باستخدام طريقة ال Update. يمكنك استخدام DVar فى مربع نص حينما تريد تحديد معيار لتقليص المجال الذي تنفذ عليه الدالة مثال : = DVar ("[price]", "Orders", "[product] = 'mouse'") و المثال يعني أننا نريد إظهار أقصي قيمة لحقل السعر في جدول الطلبيات بشرط أن المنتج = mouse , يلاحظ أن القيمة النصية فى الشرط توضع بين ‘ ‘. و في حالة حقل الشرط رقمي لا توضع = DVar ("[price]", "Orders", "[productID] = 5") مثال آخر : فى حالة كون الشرط حقل تاريخ موجود علي عنصر تحكم فى نموذج ( مربع نص ) : Dim curX As Currency curX = DVar ("[price]", "Orders", "[OrderDate] = #" _ & Forms!Orders!OrderDate & "#") و هنا نلاحظ أن عنصر التحكم المسمي OrderDate الموجود علي نموذج orders لم يتم احاطته ب "" ، و ذلك لأن القيمة به متغيرة و تتغير مع تغير السجلات ، و لو أحيطت ب "" لعوملت علي أنها قيمة نصية ثابتة . أيضا نلاحظ أن القيمة المعادة من عنصر التحكم نحيطها ب # و ذلك لأنها من نوع تاريخ. DVarP Method تستخدم دالة DStDev للحصول علي الانحراف المعياري لمجموعة سجلات ( مجال ) . و يمكن استخدام هذه الدالة فى كود الفيجوال بيزيك أو فى ماكرو أو فى استعلام أو فى عنصر تحكم به قيمة محسوبة فى نموذج أو تقرير. تستخدم هذه الدالة فى تحليل التنوع لمجموع السكان ( و ليس عينة من السكان ) صيغة الدالة : DVarP(Expr, Domain, Criteria) Expr : قيمة نصية تعرف الحقل الرقمي الذي يحوي البيانات التي تريد حساب التنوع لها بواسطة هذه الدالة ، و هي يمكن أن تكون نص يعبر عن إسم حقل فى جدول أو استعلام ، أو معادلة حسابية علي هذا الحقل ، و فى هذا التعبير يمكن ادراج اسم حقل ، عنصر تحكم فى نمموذج ، ثابت ، أو دالة و لكن فى حالة احتوائه علي دالة فيمكن أن تكون دالة من تصميم المستخدم أو دالة جاهزة فى أكسس ،ـ و لكن لا يمكن أن تكون دالة من دوال المجال التجميعية الأخري . و يلاحظ أن أي حقل يرد فى هذا الجزء من الدالة لابد أن يكون رقمي . Domain : قيمة نصية تعرف مجموعة السجلات التي تمثل المجال ، و يمكن أن تكون جدول أو استعلام و كل من Expr و Domain قيم اجبارية لابد من ادراجها فى الدالة ، أما القيمة التالية Criteria فهي خيارية Criteria : قيمة خيارية ( قد توضع و قد لا توضع ) ، و هي معيار يوضع لتحديد مجال تطبيق الدالة ، و يمكن اعتبارها كشرط مناظر ل WHERE في عبارة SQL ، و في حالة عدم ادراجها يتم تطبيق الدالة علي المجال بأكمله. في حالة ادراج حقل فى هذا المعيار و هذا الحقل غير مدرج فى المجال ، تكون القيمة المعادة من الدالة null ، لذا أي حقل موجود فى المعيار Criteria يجب أن يكون أيضا مدرجا فى المجال. ملاحظات اذا كان المجال المحدد يحوي أقل من عدد 2 سجل ، فان هذه الدالة تكون قيمتها Null مما يدل علي أن الانحراف المعياري لم يمكن حسابه. يمكن استخدام هذه الدالة كمعيار فى الاستعلام العادي أو كقيمة محسوبة فى استعلام تحديث يمكن استخدام DVarP او VarP فى حقل محسوب فى استعلام تجميع ، فى حالة DVarP يتم الحساب قبل التجميع و فى حالة VarP يتم التجميع ثم الحساب . اذا كنت تريد ببساطة حساب أقصي قيمة فى مجال محدد فاستخدم الدالة VarP . القيم التي لم يتم حفظها بعد فى السجلات لا تدخل فى حسابات الدالة ، و لكن لادخالها لابد من حفظ السجل أولا ، و ذلك باختيار حفظ من أمر File أو بالانتقال الي السجل التالي ، أو باستخدام طريقة ال Update. يمكنك استخدام DVarP فى مربع نص حينما تريد تحديد معيار لتقليص المجال الذي تنفذ عليه الدالة مثال : = DVarP ("[price]", "Orders", "[product] = 'mouse'") و المثال يعني أننا نريد إظهار أقصي قيمة لحقل السعر في جدول الطلبيات بشرط أن المنتج = mouse , يلاحظ أن القيمة النصية فى الشرط توضع بين ‘ ‘. و في حالة حقل الشرط رقمي لا توضع = DVarP ("[price]", "Orders", "[productID] = 5") مثال آخر : فى حالة كون الشرط حقل تاريخ موجود علي عنصر تحكم فى نموذج ( مربع نص ) : Dim curX As Currency curX = DVarP ("[price]", "Orders", "[OrderDate] = #" _ & Forms!Orders!OrderDate & "#") و هنا نلاحظ أن عنصر التحكم المسمي OrderDate الموجود علي نموذج orders لم يتم احاطته ب "" ، و ذلك لأن القيمة به متغيرة و تتغير مع تغير السجلات ، و لو أحيطت ب "" لعوملت علي أنها قيمة نصية ثابتة . أيضا نلاحظ أن القيمة المعادة من عنصر التحكم نحيطها ب # و ذلك لأنها من نوع تاريخ.
    1 point
  16. بسم الله الرحمن الرحيم السلام عليكم ورحمة الله وبركاته أيها الأحبة منذ أن بدأت في تعلم الأكسس حيث كانت بداياتي في هذا المنتدى المبارك وكنت أتمنى طريقة شرح معينة حيث إن المبتدئ منا لا يحتاج للشيء النظري البحث إنما يحتاج لإنارة الطريق حتى يصل إلى المطلوب من خلال أمثلة مبسطة وذلك بحكم أن ليس كل مشارك في المنتدى متخصص في البرمجة ونحوها .. وكنت منذ أن بدأت أجمع الأمثلة ثم أقوم بفكها والنظر في الاكواد ونحوها وكان يشكل علي كثيرا معرفة اسم النموذج في الكود والسجل ونحوها وتمييزها عن بقية الكود فالكود أحيانا يكون به كلمات إنجليزية هي أساس في الكود فلا تتغير إنما الذي يتغير كلمات معينة كاسم النموذج أو السجل أو الاستعلام ونحوها ... وكم عانيت في ذلك وخاصة إذا كان المثال معقدا. ومن هذا أحببت أن نبدأ جميعًا في مشروع أظنه نافعا بإذن الله تعالى وما كان لي أن أطرحه دون إذن أساتذتي الفضلاء الذي لهم سبق فضل علي بعد فضل الله بارك الله في علمهم وعملهم ... وتكمن الفكرة في هذا الموضوع أن يتم تخصيص هذا الموضوع بموضع معين مثلا طرائق البحث في نموذج أكسس فكل منا يجتهد في طرح ما يعرفه من طرائق البحث في نماذج أكسس بشرط أن تشرح بشرح وافي بالمثال بحيث تكون مرجعا لمن أراد البحث في هذا الموضوع (طرق البحث في الأكسس) وعلى ذلك أستأذنكم في طرح مثال أُسرُّ من خلال برأيكم وملحوظاتكم حيث إني لم أقف في شبكة الإنترنت على من تولى مثل ذلك وأتمنى أن يكون لهذا المنتدى قصب السبق ... عنوان الموضوع طرائق البحث في الأكسس : الطريقة الأولى : البحث في النموذج بكتابة جز من الكلمة نفرض أن لدينا جدولا اسمه Book يهتم بأسماء الكتب ونرغب أن نبحث عن كتاب معين بمجرد كتابة جزء من اسمه فنعمل الآتي: 1)نصمم جدولا باسم Book بداخله أسماء كتب تحت سجل nameBook 2) نصمم نموذجا مبني على جدول Book بنماذج مستمرة وليكن اسم النموذج FormBook. 3) ندرج في أعلى النموذج (رأس النموذج ) مربع نص ونسميه فرضا Text1 وبالطبع التسمية من خلال الضغط على مربع التسمية بالزر الأيمن ثم خصائص ثم غير ذلك ثم في خانة الاسم نكتب الاسم المطلوب. 4) نقوم بعمل استعلام مبني على جدول Book وليكن اسمه Qry في الاستعلام نجد سجل NameBook نكتب في الحقل الفارغ الذي بجواره الكود التالي : nz([book].[namebook];"**") حيث إن Book اسم الجدول و NameBook اسم السجل الذي بداخل الجدول. 5) في الاستعلام في المعايير تحت حقل الذي تم عمله في الفقرة رقم (4) نضع الكود التالي Like "*" & [forms]![formbook]![text1] & "*" حيث FormBook هو اسم النموذج و Text1 اسم مربع النص الذي تم إدراجه في رأس النموذج. 6) نذهب إلى النموذج ونضع المؤشر على مربع النص text1 ثم الزر الأيمن ثم خصائص ثم حدث ثم بعد التحديث نضع الأمر التالي Me.Requery 7) نذهب إلى خصائص النموذج من خلال الضغط على أي مكان فارغ في النموذج ثم الزر الأيمن ثم خصائص ثم نختار بيانات ثم مصدر السجل ثم نختار منه اسم الاستعلام Qry بعد ذلك يكون النموذج جاهزا للبحث فيه عن أي كتاب ويمكن تكرار ذلك لأكثر من مربع نص بنفس الخطوات السابقة وبالمثال يتضح المقال. ((هذا نموذج إن كان مناسبا نستمر عليه ليكون مرجعا ثم ننتقل إلى موضوع آخر (ولا ولا ولا أستغني عن الرأي والمشووورة وهذا جهد المقل) ...) والله الموفق طرائق البحث.rar
    1 point
  17. تفضل هذا المرفق الجديد ، وان شاء الله يعمل المرفق واللي فيه اما الكود ذو الـ 1000 سطر ، فهو لإعادة ربط الـ FE مع BE ، ولا تهتم فيه ، فهو يعمل في الخلفية ولا يؤثر على شئ وممكن تستفيد من فكرة الاخ bhelmy وتستخدمها بدل الطريقة اللي انا عملتها لفتح النموذج ، بس اول شئ جرب برنامجي مثل ماهو جعفر 297.FE_BE_Password_Both_mdb.zip ولما تنتهي من هذه الخطوة ، يجب عليك حماية قاعدة البيانات بالكامل ، ومنع استعمال زر الشفت والدخول على البرنامج في هيئة التصميم ، وهذا الرابط يعطيك المطلوب: http://www.officena.net/ib/topic/62892-الحماية-من-برنامج-الغاء-وتمكين-الشفت-shift/ جعفر
    1 point
  18. نعم صح ، واحتياطا ، عملت في النموذج الفرعي على الحدث الحالي ، ان الحقل PartNo يجدد مصدر بياناته جعفر
    1 point
  19. وعليكم السلام ورحمة الله تفضل أخي مرفقك بعد التعديل.. بالاستعلام الذي أضفته للنموذج سيجعلك تستغنى عن الكود الذي أشرت إليه ملحوظة: ابتعد عن المسميات المكررة مثل رقم الهوية في جدول المستأجرين والمالك db1.rar
    1 point
  20. السلام عليكم مبدأيا أخي الفاضل عليك بتغيير الكود الموجود في أزرار التنقل بين النماذج ليكون هكذا.. وذلك لكي يفتح النموذج على البيان الحالي ونصيحة أخي الفاضل مادمت في مقتبل بناء برنامجك فاكتب مسميات الحقول والكائنات بالإنجليزية أو الفرانكو وبدون مسافات حتى لا تعاني من جراء ذلك عند كتابة الأكواد Dim stDocName As String Dim stLinkCriteria As String stDocName = "نموذج2" stLinkCriteria = "[N°]=" & Me![N°] DoCmd.OpenForm stDocName, , , stLinkCriteria DoCmd.Close acForm, "نموذج1", acSaveYes أما بالنسبة لتعدد النماذج فما رأيك لو استخدمت عنصر تحكم علامة الجدولة ستجده ضمن عناصر التحكم وسيوفر عليك النماذج وأكواد الانتقال بينها.. اطلع على مثالك بعد التعديل بالكود وبعنصر التحكم Test.rar
    1 point
  21. اخى الحبيب انت تامر لو قدر استطاعتى ما اتاخر عنك تقبل تحياتى
    1 point
  22. الله ينور عليك حبيب الكل ( الصقر ) تسلم ايدك بجد وليا طلب عندك لو ممكن
    1 point
  23. الف شكر اخى الكريم هو المطلوب اثباتة شكرا لمجهودك وجزاك الله خيرا
    1 point
  24. اخى الكريم جرب هذه المعادله =IF(AND(K5>J5;K5<>"");"تم تجديد الاجازة";IF(AND(J5>=TODAY()-30;J5<TODAY());"تنبية باقى شهر لانتهاء الاجازة";IF(J5>=TODAY();"أنتهت الاجازه";""))) تقبل تحياتى
    1 point
  25. استاذى الحبيب ابويوسف ما اروع لسانك العذب جزاكم الله خيرا أناقة وجمال لسانك هي ترجمة لأناقة وجمال روحك العطره التى ترى كل شئ جميلبصراحه كان بنيتى مناسبة المولد النبوى وليس العام الميلادى ولكن اعذرونى بقى انها جاءت متاخره لان قلت لازم اهنئكم بأى ابداع اكسلجى جديد فما أن انتهيت من تحضير الهديه رفعتها لكم بقالى اسبوع بفكر فى عمل اكسلجى اقدمه لكم يكون جديد الى ان هدانى ربى للفكره والعمل الذى قدمته لكم جزاكم الله خيرا وكل عام وانتم بخير تقبل تحياتى
    1 point
  26. تفضل أخي إبراهيم ThisWorkbook.Sheets("Sheet1").Range("A1:A10").Copy wb.Sheets("Sheet1").Range("A1")
    1 point
  27. أخي محمود قبل ان تبحث ، ارفق لك برنامج مقسّم الى قسمين ، واطلب منك ان تجربه لوسمحت: - BE وفيه جدول واحد - FE وفيه نموذج مرتبط بجدول BE لما تشغل FE ، تلقائيا راح يطلب منك اين BE. رجاء استعمل هذا في شبكتك: - BE على كمبيوترك ، وفي مجلد المشاركة ، _ FE نسخة على كمبيوترك ، ونسخة على الكمبيوتر الثاني (مهم ان النسخة الثانية تكون على الكمبيوتر الثاني) ، الآن جرب تشغيل البرنامج ، وشوف اذا لازلت تحصل على الرسالة. جعفر 297.FE_BE.zip
    1 point
  28. أخي الكريم السفياني المنتدى زاااااااااااااخر بالموضوعات والدورات هنا وهناك ..ابحث وستجد ما يسرك وفيه بخصوص البرمجة والبدايات موضوعين في غاية الأهمية رغم بساطتهم لكن هيفتحوا لك أبواب كثيرة جداً بداية الطريق لإنقاذ الغريق افتح الباب وادخل لعالم البرمجة (متخافوش يا أحباب من اللي ورا الباب)
    1 point
  29. السلام عليكم ورحمة الله الرد السابق كان مكتوب وجاهز من بعد العصر ولم ارسله لانشغالي ولما اتاحت الفرصة فقط ضغطت إضافة دون تحديث الموضوع ولم انتبه للردود آسف. ودوبي لاحظت الرد بخصوص الكود. اخس حسام فعلا كود سفير فوق العادة رائع جدا وتمام جزاك الله خير وبارك فيك بالمعادلات الشكر واصل للجميع اخواني زيزو الشيبه والصقر وسليم حاصبيا وياسر خليل آسف لازال محفوظ ولم يمتسح ما ادري المشكلة لاحظت كثير ردود اكتبها وارسلها ثم ارجع وافتح نفس الموضوع في نافذه اخرى نفس الرسالة اللي كتبتها
    1 point
  30. مشاركة بجانب مشاركات إخواني الكرام لماذا أخي كل هذه النماذج والجدول واحد؟
    1 point
  31. وعليكم السلام ورحمة الله إحذف القيمة الافتراضية الموجودة في حقل رقم الهوية بجدول المستأجرين لأنك جعلته حقل غير قابل للتكرار وفي نفس الوقت عندما يكون فارغ سيكون مكرر بالصفر (القيمة الافتراضية التي به).. أو عليك بإدراج رقم الهوية وبذلك لن تظهر معك الرسالة إن شاء الله
    1 point
  32. أخي الكريم أبا الحسن والحسين للأسف لا تعمل الأداة مع الإصدارات الحديثة أو ربما لا تعمل على 64 بت .. الرجاء ممن يستخدمون الإصدارات الحديثة 32 بت أن يوافونا بالنتائج
    1 point
  33. طبقها التوجيه السابع : حمل الملف المرفق التوجيه الثالث عشر : عند طرح موضوع يفضل أن يكون هناك طلب واحد فقط إذ أن الموضوع الذي تكثر فيه الطلبات ينفر الأعضاء الذين يريدون تقديم يد المساعدة ، بأن تطرح الموضوع بطلب واحد حتى إذا تم على خير قم على الفور بطرح موضع جديد بطلب جديد وهكذا إلى أن يتم الأمر احد اخطائي ولم اجد اجابات الا بعد تطبيقها
    1 point
  34. السلام عليكم ورحمة الله نعم لم اتعدى J28 بل ضمن الجدول المحدد والذي به بيانات فقط غيرت كلمة مبيعات الي مشتريات ضمن الجول . انا مالي بالمعادلات إلاً في حدود مايتناسب معي. فقط من باب الملاحظات والمتابعة للإستفاده منكم جميعا.
    1 point
  35. السلام عليكم ورحمة الله رد خاص بالاخ حسام: الرد السابق كان مكتوب وجاهز من بعد العصر ولم ارسله لانشغالي ولما اتاحت الفرصة فقط ضغطت إضافة دون تحديث الموضوع ولم انتبه للردود آسف. ودوبي لاحظت الرد بخصوص الكود. اخي حسام فعلا كود سفير فوق العادة رائع جدا وتمام جزاك الله خير وبارك فيك رد عام : بالمعادلات الشكر واصل للجميع اخواني زيزو الشيبه والصقر وسليم حاصبيا وياسر خليل الله يحفظكم ويبارك فيكم وجزاكم الله خير. تعمل 100 % ممتاز رائع اخي سليم مع تحديد السطر وتلوينه .
    1 point
  36. السلام عليكم ورحمة الله اخي وصاحبي واستاذي حسام نعم بارك الله انا ذكرت انني عملت التغيير داخل الجدول في J26 وغيرت من مبيعات الي مشتريات وما ادري هل عمود المبيعات او مشتريات مربوط بكلمة مشتريات. لكن بالنسبة لما طلبته حسب المرفق فالصفحة خاصة بالمشتريات.مع الاخذ بالإعتبار وجود اكثر من شراء في تاريخ واحد والذي يأخذ حالتين الحالة الاولي ممكن السعر لكل الشراء في ذلك التاريخ والحالة الثانية ممكن يكون الشراء مختلف .حسب الموضح ادناه كمثـــــال فقط: االحالة الاولي : الحالة الثانية : التاريخ السعر التاريخ السعر 01/12/2015 55 01/12/2015 55 01/12/2015 55 01/12/2015 50 01/12/2015 55 01/12/2015 58 01/12/2015 55 01/12/2015 60 01/12/2015 55 01/12/2015 57 وجزاك الله خير.
    1 point
  37. جرب الكود التالي عله يفي بالغرض Fit Screen Resolution On UserForm YasserKhalil.rar
    1 point
  38. اخى ياسر العربى الله أفكار جديده اظن هي بداية للوصول للحماية الكاملة انت اول من لفت نظرنا لربط الفيجوال بيسيك بالاكسيل والله ان من وجهه نظرى يخصص قسم الاكسيل مع لغات البرمجه جزاك الله خيرا في انتظار الشرح
    1 point
  39. شكرا اخي الغالي ياسر على مرورك الكريم باذن الله نضع الشرح قريبا ولكن اولا راجع اخر درس في السلسلة واعطنى مثال حتى تتمكن من معرفته ما هو قادم حبيبي ابو البراء الغالي طبعا حماية الملف بالطريقة دي كويسة ولكن مع الاكسيل نفسه يبقي انت كدا هتتعامل مع ملف عادي لا يوجد به اي اكواد ماكرو وبالتالي فقدنا جزء البرمجة ولكن مع الفيجوال مفيش مستحيل انا تعمدت اني اربط مثال Xlsx حتى تصل فكرة انو بنتعامل مع اي ملف ولو حتى لا يدعم الماكرو يبقي احنا كدا عملنا حماية لملف الاكسيل ممتازة وطبعا حماية الملف التنفيذي جيدة ايضا وربطناهم ببعض وتفضلو كلمة المرور اهي aseel&mohamed&yasser ودي كلمة سر البرنامج التنفيذي وبتبقي محفوظه داخل الاكسيل ونقدر نغيرها بس اللي محدش يقدر يغيرها كلمة سر ملف الاكسيل لانها من ضمن اكواد البرمجة وبنينا عليها خلاص والدرس القادم باذن الله عن كيفية عمل الحماية دي لكم مني كل الشكر والتقدير ياسر العربي
    1 point
  40. بسم الله الرحمن الرحيم اليوم سنقوم بشرح طريقة ربط الفيجوال بيسك بالإكسيل اولا نعمل مشروع جديد عبارة عن فورم وواحد كمبوبوكس وسته تكست وثمانية ليبل وخمس أزرار وملف اكسيل بامتدادxlsx واسمه aseel امتداده اظن لا يدعم وحدات الماكرو بس عادي مع الفيجوال شغال بنفس ترتيب الشكل الاتي: خلصنا الشكل السابق ندخل علي الشغل الجديد بقي كلنا أكيد سمعنا عن المتغيرات وكلنا تعاملنا معاها قبل ما نشوف المتغيرات الفيجوال عشان نربطه بالإكسيل لازم له مراجع ومتغيرات عامة على مستوى المشروع بأكمله إيه الكلام دا بيتعمل ازاي المرجع دا ولا بنجيبه منين شوفو معايا الصور بعد الخطوات دي ياترى بنعرف نضيف موديول زي ما بنضيف فورم جديد كدا اللي بيعرف يضيف اللي مش عارف ينزل للصورة معايا ويشوف ايه البيانات دي يامعلمين دي بقي المتغيرات العامة اللي بنقول عليها وبتكون علي مستوى المشروع بأكمله يعني لازم تتحط في موديول ولتبسيط الكلام اللي فوق دا بطريقة سهلة اول سطر Public YXL As New Excel.Application YXL دا متغير يشير الى برنامج الاكسيل نفسه بمعنى عندما نريد ان نكتب في الاكسيل Application. Visible = False نكتبه كدا YXL. Visible = False اكيد وصلت الفكرة ولو مش وصلت نكمل مثال كمان المتغير ونظيره في الإكسيل YWB= Workbook YSheet= Worksheet YRng= Range اكيد الامور اصبحت سهلة كدا أي كود في الإكسيل نستبدل المذكورين في أعلاه بنظره في الإكسيل وسيعمل الكود بإذن الله يعني مش هتخترع اكواد جديدة هي نفس القديمة بس تعديلات طفيفه المهم الكل يكون عمل الفورم والموديول والاداوت كما ذكرت سابقا بالترتيب الموجود عشان الاكواد متتبدلش مع الادوات نيجي بقي للاكواد Private Sub Combo1_Click() 'جدا الكمبوبوكس ومنه بيتم جلب البيانات بمعلومية الرقم والكود طبعا مفيهوش جديد نفس اكواد الاكسل With YSheet LastRow = .Cells(.Rows.Count, "B").End(xlUp).Row For iRow = 6 To LastRow If .Cells(iRow, 2) = Combo1.Text Then Text1.Text = .Cells(iRow, 2) Text2.Text = .Cells(iRow, 3) Text3.Text = .Cells(iRow, 4) Text4.Text = .Cells(iRow, 5) Text5.Text = .Cells(iRow, 6) Text6.Text = .Cells(iRow, 7) End If Next End With End Sub Private Sub Command1_Click() Dim lstrow As Long 'ودا كود ترحيل البيانات ونفس الشئ مش جديد كل اللي اتغير اللي ذكرنااه If Text1.Text = "" Then MsgBox "íÌÈ ÇÏÎÇá ÌãíÚ ÇáÈíÇäÇÊ" Else lstrow = YSheet.Range("b20000").End(xlUp).Row + 1 YSheet.Cells(lstrow, "b").Value = Text1.Text YSheet.Cells(lstrow, "c").Value = Text2.Text YSheet.Cells(lstrow, "d").Value = Text3.Text YSheet.Cells(lstrow, "e").Value = Text4.Text YSheet.Cells(lstrow, "f").Value = Text5.Text YSheet.Cells(lstrow, "g").Value = Text6.Text Text1.Text = "" Text2.Text = "" Text3.Text = "" Text4.Text = "" Text5.Text = "" Text6.Text = "" MsgBox ("ÊãÊ ÇáÚãáíÉ ÈäÌÇÍ") End If End Sub Private Sub Command2_Click() 'ودا كود اظهار برنامج الاكسيل بردو غيرنا اللي اشرنا ليه فقط YXL.Visible = True End Sub Private Sub Command3_Click() ' ودا لاخفاء برنامج الاكسل YXL.Visible = False End Sub Private Sub Command4_Click() 'لحفظ البرنامج المفروض المتغير يكون شغال بس مش عارف سبب المشكلة ايه حاليا فقلت اجرب الكود العادي اشتغل تمام مشي حالك 'åäÇ ãÔ ÚÇÑÝ ÇáãÊÛíÑ åäÇ ÞÝÔ ãÚÇíÇ æãÔ ÚÇíÒ íÍÝÙ ÞáÊ ÇÌÑÈ ÇáßæÏ ÇáÚÇÏí ÇÔÊÛá ÞáÊ Òí ÇáÝá 'YWB.save ActiveWorkbook.save End Sub Private Sub Command5_Click() 'وطبعاخروج YXL.Quit Set YXL = Nothing End End Sub Private Sub Form_Load() 'هنا بنستدعي ملف الاكسيل من نفس مسار البرنامج بتاعنا ونفتحه YXL.Workbooks.Open App.Path & "/aseel.xlsx" 'اخفاء البرنامج بعد فتحه طبعا YXL.Visible = False 'هنا بقي قولنا له ان يخلي Ysheet دي تبقى الشيت الاول والاكس شيت تبقي الشيت التاني Set YSheet = YXL.Worksheets(1) Set XSheet = YXL.Worksheets(2) عادي ليبل وبياخد بياناته من خليه معينه Label7.Caption = YSheet.Range("a1").Value Label8.Caption = YSheet.Range("a2").Value With Combo1 'ودا ا لكمبوبوكس بندرج فيه بيانات الصف b For Each Data In YSheet.Range("b6:b" & YSheet.Cells(Rows.Count, "b").End(xlUp).Row) .AddItem Data Next End With End Sub Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) ودا بقي عشان لما تدوس علي علامة الاكس فوق ميخرجشي من البرنامج ويسيب ملف الاكسيل مفتوح ومخفى '' YXL.Quit Set YXL = Nothing End End Sub وبكدا نكون انتهينا من وضع الاكواد اظن الكل واخد باله انه مفيش جديد وهو دا بالتحديد مفيش جديد كل اللي عملناه واحد تايه وعرفنا السكه خلاص وبعدين محدش ينسى يعمل ملف اكسيل اه بعد دا كله يجي حد يقولي البرنامج مش شغال ليه اقوله فين ملف الاكسيل بعد الاطلاع علي البرنامج هيجي واحد يقولي ايه القلب الجميل اللي علي الفورم دا اللي مكان السهم اهو دا من ضمن اللمسات الجمالية وبيتعمل ازاي يامعلم الشرح بسيط ف الصورة معلش بدل ما اكتب الماوس كتبت الموس شغال بقى اعذروني انا بعمل الشرح في وقت قياسي وانا شغال مرفق البرنامج ومعاه القلب عشان تعملوه مكان السهم يارب اكون وصلت المعلومة صح واي خطأ منى فدا لجهلى اعذروني منتظر الردود علي فكرة الدرس دا تقريبا بنسبة كبيرة يعتبرحصرى لمنتدى اوفيسنا انا بحثت عن ربط الفيجوال بالاكسيل كثيرا وكثيرا وكود من هنا وكود من هنا حتى اكتملت الصورة امامي وتوصلت لهذا والحمد لله مع تحياتي ياسر العربي يتبع ربط الفيجوال بالاكسل.rar
    1 point
  41. أخي الحبيب إبراهيم أبو ليلة جرب الكود التالي عله يكون المطلوب Dim Str1 As String, Str2 As String Sub CreateWorkbook() Dim WB As Workbook Set WB = Workbooks.Add Str1 = ThisWorkbook.Sheets("Sheet1").Range("A1").Value Str2 = ThisWorkbook.Sheets("Sheet1").Range("A2").Value Application.ScreenUpdating = False Application.DisplayAlerts = False WB.SaveAs Filename:=ThisWorkbook.Path & "\" & Str1 & Str2 & ".xlsx" WB.Close True Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub Sub OpenWorkbook() Str1 = ThisWorkbook.Sheets("Sheet1").Range("A1").Value Str2 = ThisWorkbook.Sheets("Sheet1").Range("A2").Value Workbooks.Open Filename:=ThisWorkbook.Path & "\" & Str1 & Str2 & ".xlsx" End Sub
    1 point
  42. السلام عليكم ورحمة الله وبركاته بعد الحمد لله والصلاة والسلام على رسول الله وبعد وبعد نزول الاصدارالثالث وقيام بعض التعديلات عليه وطلب بعض الاخوة جزاهم الله خيراً بطلب بعض التعديلات قررت مستعينا بالله ان انزل الاصدار الرابع اهم المميزات الاصدار الرابع 1 ) تعديل بعض الاخطاء البسيطة التي كانت في احد الورقات 2 ) بناءأً على طلب الاخوة اضفت ورقة شهادات للدور الثاني والان اترككم للتصفح وانا في انتظار ارائكم والسلام عليكم ورحمة الله وبركاته للعلم جميع المعلومات عن هذه المرحلة وما يخصها من درجات والقرارات الوزارية ماخوذة من الاستاذ //ahmed alimer فله الشكر كما اشكر كل من ساهم في امدادي ببعض المعلومات ومنهم الوالدة الفاضلة // أم عبد الله الاستاذ الفاضل // اسامة عطاالله الاستاذ الفاضل // حسين شاكر وعند وجود اي أخطاء ارجو الابلاغ لتعديلها واتمنى لمن هو مهتم بهذا الشيت ان يتابع اخر مشاركات لهذا الموضوع من حين لاخر فربما نجد اخطاء ويتم تعديلها.. والسلام عليكم ورحمة الله وبركاته.. شيت النقل للتعليم الفني 20 مادة تضاف للمجموع + 2 مادة لا تضاف للمجموع _الاصدار الرابع-السبت _12-4-2014.rar
    1 point
  43. 1 point
  44. أخى الكريم نحن نتحكم فى مدة الطباعة بطريقة غير مباشرة عن طريق التحكم فى عدد الأوراق يعنى لو عدد الأوراق طلع 60 ورقة قسم ذلك على مرتين أو ثلاث يعنى اطبع من 1 الى 20 ثم ريح الطابعة ثم اكتب من 21 الى 40 ثم ريح الطابعة ثم اكتب من 41 الى 60 وهكذا هل وصلت الفكرة ؟ أم أنك تريد شيئا آخر ؟ تم اضافة شيت بحث مطابق تماما لشيت الشهادة مع اضافة قائمة منسدلة للبحث تذكرنى بالخير كلما طبعت على هذه الطابعة المسكينة طباعة مرن مع البحث بدلالة رقم الجلوس.rar
    1 point
  45. لمعرفة رقم الصف لاول خلية غير فارغة في العامود A مثلاً (هذا الامرلا يأخذ بالحسبان الغراغات) المعادلات صفيف (ctrl+shift+enter) =MATCH(1,IF($A$1:$A$500<>0,IF($A$1:$A$500<>"",1)),0) لمعرفة عنوانها =ADDRESS(MATCH(1,IF($A$1:$A$500<>0,IF($A$1:$A$500<>"",1)),0),1) لمعرفة ماذا تحتوي =INDEX($A$1:$A$500,MATCH(1,IF($A$1:$A$500<>0,IF($A$1:$A$500<>"",1)),0)) لمعرفة رقم الصف لاخر خلية غير فارغة في العامود A مثلاً =MAX(($A$1:$A$500<>"")*ROW($A$1:$A$500)) لمعرفة عنوانها =ADDRESS(MAX(($A$1:$A$500<>"")*ROW($A$1:$A$500)),1) لمعرفة ماذا تحتوي =INDEX($A$1:$A$500,MAX(($A$1:$A$500<>"")*ROW($A$1:$A$500)))
    1 point
  46. مشكورين على الاهتمام انا بصراحه بغيت نفس الجدول اللى عمله الاستاذ المشرف طالب علم
    1 point
  47. اخواني الأعزاء نواصل حلول التقارير في اكسس مرفق لكم المثال السابق بعد إضافة مدول جديد وتقريرين وذلك لعمل خلفية تقرير برمجيا دون إثقال البرنامج بصور لجعلها خلفية للتفارير ارجو ان تكون مفيدة تحياتي,,, التقارير.rar
    1 point
  48. السلام عليكم ورحمة الله أخي الكريم، لا يوجد أي مشكلة في ذلك، قمت ببعض التغييرات على الصفحة من ناحية التنسيقات والتخريج واستعملت الكود الذي استعملته في رد سابق مع تغيير طفيف جدا... وانتظر أخي الكريم أيسم (الذي أسلم عليه سلاما حارا) ليدلي بدلوه في المسألة باستعمال الكود الذي وضعه (وأعتقد أن هذا الكود أحسن من الكود الذي وضعته)... إليك بالملف المرفق وفيه المطلوب... بن علية ali_3.rar
    1 point
  49. السلام عليكم ورحمة الله ،، اخي العزيزي انا عندي برنامج ايضا عملت فيه عدم تحرير الفاتورة ، ولكن << بعد عملية الطباعة >> الخطوات : 1- قم بإضافة حقل جديد الى جدول الفواتير وسمه مثلا edit ونوعه رقم 2- اجعل القيمة الافتراضيه للحقل 0 3- في نموذج الفواتير اجعل مربع النص الخاص بالحقل مخفي 4- في زر امر الطباعة بعد أمر الطباعة غير قيمة الحقل إلى 1 edit = 1 5- في current الخاصة بنموذج الفواتير اكتب if edit = 1 then me.allowedit = false else me.allowedit = true تحياتي
    1 point
×
×
  • اضف...

Important Information