• الإعلانات

    • فيصل الحربي

      تسجيل عضوية جديدة في المنتدى   01/31/2016

      السلام عليكم ورحمة الله وبركاته  عزيزي العضو الجديد :  حاليا رسالة الإيميل لتأكيد صحة إيميلكم تذهب للبريد العشوائي ( جاري حل المشكلة )  فإذا لم تجد رسالة التحقق من إيميلكم في صندوق الوارد لديكم إتجه للبريد العشوائي ( JUNK)  وقم بتفعيل إشتراككم من هناك   

abohajr

المشرفين القدامى
  • عدد المشاركات

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

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

كل شيء نشر بواسطة abohajr

  1. مبروك للفاروق

    الأخ الفاروق ألف مبروك فرق الله بك بين الحق والباطل وأعانك على البذل والعطاء
  2. موضوعات سابقة في هذه السلسلة كيف تتيح للمستخدم البحث بأي حقل من حقول البيانات ـ أبو هاجر (1) http://www.arabteam2000.com/vb/showthread....ht=%E5%C7%CC%D1 كيف تجعل برنامجك يتأكد من وجود إصدار أكسس المناسب قبل تشغيله - أبو هاجر (2) http://www.arabteam2000.com/vb/showthread....ht=%E5%C7%CC%D1 كيف تستخدم السحب والإفلات في أكسس - أبو هاجر (3) http://www.arabteam2000.com/vb/showthread....ht=%E5%C7%CC%D1 كيف تضغط البيانات بامتداد ZIP من داخل أكسس ـ أبو هاجر (4) http://www.arabteam2000.com/vb/showthread....&threadid=17512 الإخوة الكرام السلام عليكم ورحمة الله بركاته وبعد من المعلوم أن الاختلاف بين مقاس شاشة المبرمج أثناء التصميم ومقاس شاشة المستخدم من أكثر المشاكل التي تواجه المبرمجين عموماً ومبرمجي أكسس خصوصاً بالنظر إلى الخصائص المتميزة لنماذج أكسس مما يؤدي إلى ظهور النماذج بشكل غير مناسب أي في إحدى زوايا الشاشة لا سيما مع ظهور شاشات LCD ذات الدقة العالية عادة هناك طريقتان يتبعها المبرمجون للتغلب على هذه المشكلة الأولى / تغيير حجم عناصر التحكم والخطوط وغيرها بما يناسب مقاس الشاشة الثانية / تصغير شاشة البرنامج بحيث تكون مناسبة لوضع التصميم وتجاهل مقاس شاشة المستخدم بحيث تظهر شاشة البرنامج في وسط سطح المكتب في المثال المرفق نموذج للطريقتين لكن بما أن البرامج المصنوعة بأكسس تعمل داخل نافذة أكسس فسيجري التصغير لشاشة الأكسس نفسها بالطبع في المثال الثاني يمكنك ضبط المقاس حسب مقاس شاشتك عند تصميم البرنامج مع ملاحظة أن وضع خاصية من اليمين لليسار للنموذج سيؤثر على عمل الدالة كما أن هناك احتمالاً لظهور مشاكل أخرى لكنها قليلة في الغالب ِأخيراً أرفقت في المثال الثاني بعض الخيارات والأوامر الأخرى المتعلقة بهذا الموضوع للاستفادة منها تحياتي للجميع أخوكم / أبو هاجر acc_resize.zip
  3. موضوعات سابقة في هذه السلسلة شرح دوال أكسس ـ دوال تدفق البرنامج http://www.arabteam2000.com/vb/showthread....&threadid=18236 الإخوة الكرام السلام عليكم ورحمة الله وبركاته وبعد استكمالاً للشرح الذي بدأته حول دوال أكسس أقدم اليوم شرحاً من المستوى المتوسط لدوال التاريخ والوقت التي تبلغ 23 دالة ، ومعنى كون هذا الشرح من المستوى المتوسط أنني تركت شرح بعض الأشياء المتقدمة في هذه الدوال وبعض المتغيرات الاختيارية التي يمكن أن تؤثر على نتيجة الدالة حرصاً على عدم التشويش وركزت على الهدف الأساسي للدالة . ونظراً لطول الشرح فقد أرفقت الشرح مكتوباً بالكامل في ملف وورد حتى تسهل قراءته وتطبيقه دون الحاجة للرجوع إلى المنتدى كما أرفقت ملف أكسس يحتوي على أمثلة لاستخدام كل دالة في الاستعلامات والنماذج كلي أمل في أن يكون الشرح واضحاً ومفيداً لأحبتي وأنا على استعداد للإجابة على كافة التساؤلات حول هذه الدوال إخوتي الكرام / وضعت هذه المشاركة في هذا المنتدى وليس في منتدى الدروس نظراً لقلة مرتادي ذلك المنتدى مقارنة بهذا المنتدى فإن رأى الإخوة المشرفون إبقاء هذه المشاركة بضعة أيام حتى يطلع عليها معظم الأعضاء فربما يكون ذلك أعم للقائدة وإن رأوا نقلها مباشرة فذلك لهم أخيراً ... لا يزال لدي الأمل بأن أرى مساهمة من بقية الإخوة في شرح بعض الدوال وتحمل جزء من هذه المهمة الشاقة ، وأقدم اعتذاري عن التأخر في تقديم هذا الشرح فقد استغرقت كتابته أكثر من شهر ونصف ولم أكن متفرغاً بشكل كامل لذلك إليكم شرح دوال التاريخ والوقت Cdate تستخدم دالة Cdate من أجل تحويل سلسلة إلى تاريخ وتنصح مايكروسوفت باستخدام هذه الدالة دائماً مع متغيرات التاريخ لضمان تحويل المتغيرات الممررة إلى تاريخ كما أنها تقوم بالتأكد من أن المتغير الممرر من نوع تاريخ ، كما أنها مفيدة في التأكد من تحويل التاريخ الممرر للدالة إلى التقويم الحالي المحدد في قاعدة البيانات ( هجري ، ميلادي ) وتستخدم بالصيغة التالية : CDate(MyDate) على سبيل المثال فإن الدالة بالصيغة التالية : CDate("February 12, 1969") ستعيد متغيراً من نوع تاريخ CVdate وهي مثل دالة Cdate تماماً إلا أن المتغير الذي ترجعه الدالة هو من نوع Variant والألوية فيه لمتغير التاريخ أي أن النوع الفرعي له هو تاريخ Date وهي تقوم بإرجاع أو عرض تاريخ اليوم الحالي وتستخدم عند الرغبة في الحصول على تاريخ اليوم وتستخدم بالصيغة التالية : Date() حيث ترجع تاريخ اليوم Time وهي تقوم بإرجاع أو عرض الوقت الحالي للنظام وتستخدم عند الرغبة في الحصول على الوقت الحالي وتستخدم بالصيغة التالية : Time () حيث ترجع الوقت الحالي Now وهي تقوم بإرجاع أو عرض الوقت والتاريخ الحالي معاً وتستخدم عند الرغبة في الحصول على الوقت والتاريخ الحالي معاً وتستخدم بالصيغة التالية : Now() الوقت والتاريخ الحالي معاً DateAdd تعد دالة DateAdd من دوال التاريخ المهمة حيث تستخدم في إضافة مدة معينة على تاريخ معين لنفترض أن لديك تاريخاً ما وتريد معرفة التاريخ الموافق بعد إضافة 100 يوم مثلاً على هذا التاريخ في هذه الحالة ستكون دالة DateAdd هي الدالة المناسبة تتطلب دالة DateAdd تحديد ثلاثة متغيرات هي : 1- نوع الفترة التي تريد إضافتها وهل هي يوم ِأم شهر أم سنة أم ساعة إلخ ،،، 2- العدد أي ما هو عدد الأيام أو الأشهر التي تريد إضافتها 3- التاريخ الذي تريد الإضافة إليه وتستخدم بالصيغة التالية : DateAdd(الفترة, العدد, التاريخ) حيث تعيد متغيراً من نوع تاريخ هناك عدد من متغيرات الفترة التي يمكن استخدامها وفي القائمة التالية أهم هذه المتغيرات : yyyy سنة q ربع سنة m شهر d يوم w يوم الأسبوع ww أسبوع h ساعة n دقيقة s ثانية فإذا أردنا مثلاً إضافة (10) أيام إلى تاريخ "1/1/1423" فتكون الدالة بالصيغة التالية : DateAdd("d", 10, "1/1/1423") DateDiff وهي أيضاً من أهم دوال التاريخ وتستخدم لحساب المدة بين تاريخين بحسب متغير الفترة المحدد للدالة وربما تلاحظون أننا كثيراً ما نستخدم هذه الدالة لعدد من الأغراض مثل حساب عدد أيام الإجازة أو الغياب أو خارج الدوام أو العمر أو غيرها وتستخدم هذه الدالة بالصيغة التالية : DateDiff(الفترة, تاريخ1, تاريخ2[, أول يوم في الأسبوع], أول أسبوع في السنة]]) ومتغيرات الدالة كالتالي : الفترة : وهو أحد المتغيرات المذكورة سابقاً مثل m , d , w وغيرها تاريخ1 : التاريخ الأول وهو التاريخ الأصغر تاريخ 2 : التاريخ الثاني وهو التاريخ الأكبر ولو عكست لكانت قيمة الدالة بالسالب أول يوم في الأسبوع : متغير اختياري أي يمكن عدم استخدامه وهو مفيد في حالة حساب عدد الأسابيع بين تاريخين إذ يتم الاعتماد عليه في تحديد أول يوم في الأسبوع وبالتالي قد يتغير عدد الأسابيع بحسب هذا المتغير ، فلو افترضنا مثلاً أننا نريد حساب المدة مثلاً من يوم السبت هذا الأسبوع حتى يوم الاثنين الأسبوع القادم فلو جعلنا أول يوم في الأسبوع هو الأحد فستكون النتيجة هي ( 2 ) أسبوعان لكن لو جعلنا أول يوم في الأسبوع هو يوم الأربعاء مثلاً فالنتيجة ستكون ( 1 ) أسبوع واحد لأنه لا يوجد خلال هذه الفترة سوى يوم أربعاء واحد وهكذا زد على ذلك أن هذا المتغير مهم في حالة رغبتنا في حساب عدد أحد أيام الأسبوع بين تاريخين مثل لو أردنا حساب أيام السبت بين تاريخين ففي هذه الحالة نجعل متغير الفترة هو W أي يوم في الأسبوع ومتغير أول يوم في الأسبوع هو يوم السبت وهذا مفيد في حالة رغبتك في حساب المدة بالأيام بين تاريخين بدون أيام الإجازات ( الخميس والجمعة مثلاً ) حيث تستخرج عدد أيام الخميس خلال التاريخين وعدد أيام الجمعة ثم تجمعها وتطرحها من مجموع الأيام بين التاريخين متغير أول يوم في الأسبوع يستخدم أحد المتغيرات التالية : vbUseSystem 0 نظام الويندوز vbSunday 1 الأحد وهو الافتراضي vbMonday 2 الاثنين vbTuesday 3 الثلاثاء vbWednesday 4 الأربعاء vbThursday 5 الخميس vbFriday 6 الجمعة vbSaturday 7 السبت أما متغير أول أسبوع في السنة فهو اختياري أيضاً وهو مفيد في حالة حساب عدد الأسابيع أي في حالة استخدام متغير الفترة ww حيث يحدد ما هو أول أسبوع سيتم اعتباره ضمن هذه السنة وهو يستخدم أحد المتغيرات التالية : vbUseSystem 0 نظام الويندوز vbFirstJan1 1 أول أسبوع يحتوي على أي يوم في السنة الجديدة وهو الافتراضي vbFirstFourDays 2 الأسبوع الذي يحتوي على أربعة أيام أو أكثر في السنة الجديدة vbFirstFullWeek 3 الأسبوع الذي تكون جميع أيامه في السنة الجديدة DatePart وتستخدم هذه الدالة للحصول على جزء معين من التاريخ الممرر لها مثل العام أو اليوم أو الشهر حيث تعيد متغيراً من نوع Variant (Integer) وتستخدم بالصيغة التالية DatePart(الفترة, التاريخ) حيث يحدد متغير الفترة الجزء المطلوب استخراجه من التاريخ المرر لها فعلى سبيل المثال ترجع الدالة التالية العام ( 1423 ) DatePart("yyyy","1/5/1423") بينما ترجع الدالة التالية الشهر ( 5 ) DatePart("m","1/5/1423") وترجع الدالة التالية اليوم ( 1 ) DatePart("d","1/5/1423") DateSerial تستخدم دالة DateSerial لإرجاع متغير من نوع تاريخ من ثلاث متغيرات رقمية تمثل السنة والشهر واليوم وتسخدم بالصيغة التالية DateSerial(year, month, day)حيث يتم تمرير ثلاثة أرقام لها يمثل الأول السنة والثاني الشهر والثالث اليوم ، ويمكن استخدام المعادلات الحسابية في هذه الأرقام فالمثال التالي : DateSerial(1990 - 10, 8 - 2, 1 – 1) يرجع التاريخ التالي : "31/5/1980" وهكذا TimeSerial تستخدم دالة TimeSerial لإرجاع متغير من نوع وقت من ثلاث متغيرات رقمية تمثل الساعات والدقائق والثواني وتسخدم بالصيغة التالية TimeSerial(hour, minute, second) حيث يتم تمرير ثلاثة أرقام لها يمثل الأول الساعات والثاني الدقائق والثالث الثواني ، ويمكن استخدام المعادلات الحسابية في هذه الأرقام فالمثال التالي : TimeSerial(12 - 6, -15, 0) يرجع الوقت التالي : " 5:45:00 " وهكذا DateValue تستخدم دالة DateValue من إجل تحويل تعبير معين إلى تاريخ ، وهي مفيدة في حالة وجود تعبير معين نرغب في تحويله إلى تاريخ حتى يتم التعامل معه كتاريخ ، وتستخدم بالصيغة التالية : DateValue(date)على سبيل المثال لو مررنا للدالة سلسلة نصية تصلح لأن تكون تاريخاً فإن هذه الدالة ستقوم بتحويلها إلى تاريخ مثل DateValue("12 12 1423") TimeValue تستخدم دالة TimeValue من إجل تحويل تعبير معين إلى وقت ، وهي مفيدة في حالة وجود تعبير معين نرغب في تحويله إلى وقت حتى يتم التعامل معه كوقت ، وتستخدم بالصيغة التالية : TimeValue(time)على سبيل المثال لو مررنا للدالة سلسلة نصية تصلح لأن تكون وقتاً فإن هذه الدالة ستقوم بتحويلها إلى وقت مثل TimeValue("4:35:17 PM") Day – Month – Year - Weekday تستخدم هذه الدوال الأربع لاسترجاع جزء معين من التاريخ حيث يمرر لأي منها تاريخ معين وتعيد قيمة جزء معين من هذا التاريخ وذلك على النحو التالي : Day تعيد اليوم Weekday تعيد يوم الأسبوع ( 1= الأحد ، 2= الاثنين ..... ) Month تعيد الشهر Year تعيد السنة وكلها تستخدم بنفس الصيغة التالية Day(date) Weekday(date) Month(date) Year (date)على سبيل المثال فإن المثال التالي : Month("1/5/2002")يرجع القيمة ( 5 ) وهي قيمة جزء الشهر في التاريخ الممرر للدالة ، وهكذا Second – Minute – Hour تستخدم هذه الدوال الثلاث لاسترجاع جزء معين من الوقت حيث يمرر لأي منها وقت معين وتعيد قيمة جزء معين من هذا الوقت وذلك على النحو التالي : Second تعيد الثواني Minute تعيد الدقائق Hour تعيد الساعات وكلها تستخدم بنفس الصيغة التالية Second(time ) Minute(time ) Hour(time)على سبيل المثال فإن المثال التالي : Minute("4:35:17 PM")يرجع القيمة ( 35 ) وهي قيمة جزء الدقائق في الوقت الممرر للدالة ، وهكذا MonthName وتستخدم لعرض اسم الشهر الموافق للرقم المحدد مع خيار لعرض الاسم المختصر أو الكامل وتكون بالصيغة التالية : MonthName(رقم الشهر[, خيار لعرض الاسم المختصر])حيث يتم تمرير رقم الشهر لها في المتغير الأول ومتغير من نوع Boolean ( منطقي ) في المتغير الثاني أي ( falsetrue ) حيث سيتم عرض الاسم المختصر مع true والاسم الطويل مع false لعل من المفيد أن أقول إنه يمكن استخدام هذه الدالة مع دالة Month بحيث يتم التعرف على رقم الشهر في التاريخ ثم على اسمه وذلك بالصيغة التالية : MonthName(Month("1/5/2002"( , false)   لعرض الاسم الكامل MonthName(Month("1/5/2002"( , true)   لعرض الاسم المختصر WeekdayName وتستخدم لعرض اسم يوم الأسبوع الموافق للرقم المحدد مع خيار لعرض الاسم المختصر أو الكامل وتكون بالصيغة التالية : WeekdayName(رقم اليوم, خيار لعرض الاسم المختصر, أول يوم في الأسبوع)حيث يتم تمرير رقم اليوم داخل الأسبوع لها في المتغير الأول ومتغير من نوع Boolean ( منطقي ) في المتغير الثاني أي ( falsetrue ) حيث سيتم عرض الاسم المختصر مع true والاسم الطويل مع false ، أما الخيار الثالث فيستخدم لتحديد اليوم الأول في الأسبوع حيث سيتم بناء عليه حساب الأرقام ويمكن استخدام أي من القيم التالية في هذا المتغير : vbUseSystem 0 سيتم استخدام إعدادات النظام vbSunday 1 الأحد وهو الافتراضي vbMonday 2 الاثنين vbTuesday 3 الثلاثاء vbWednesday 4 الأربعاء vbThursday 5 الخميس vbFriday 6 الجمعة vbSaturday 7 السبت لعل من المفيد أن أقول إنه يمكن استخدام هذه الدالة مع دالة Weekday بحيث يتم التعرف على رقم اليوم في التاريخ ثم على اسمه وذلك بالصيغة التالية : WeekdayName (Weekday("1/5/2002"( , false , 0)   لعرض الاسم الكامل WeekdayName (Weekday("1/5/2002"( , true , 0)   لعرض الاسم المختصرTimer تعيد قيمة تمثل عدد الثواني التي مرت منذ منتصف الليل وتستخدم عادة لحساب المدة الزمنية التي استغرقتها عملية ما حيث يتم إسناد قيمة الـ Timer إلى متغير قبل بدء التنفيذ ، وبعد تنفيذ العملية تتم المقارنة بين القيمة الحالية لـ Timer والقيمة السابقة لمعرفة المدة الزمنية . على سبيل المثال يمكنك استخدام الإجراء التالي لحساب المدة الزمنية التي استغرقها تنفيذ الاستعلام المرر للدالة وهو من أمثلة التعليمات : Sub QueryTimer (strQueryName As String( Dim sngStart As Single, sngEnd As Single Dim sngElapsed As Single sngStart = Timer       DoCmd.OpenQuery strQueryName, acNormal   sngEnd = Timer         sngElapsed = Format(sngEnd - sngStart, "Fixed") MsgBox ("استغرق تنفيذ الاستعلام  " & strQueryName & " " & sngElapsed     &    ثانية "") End Sub IsDate تستخدم دالة IsDate لفحص ما إذا كان المتغير الممرر لها تاريخ أم لا حيث تعيد true إذا كان المتغير تاريخاً و تعيد false إذا لم يكن تاريخاً ، وتستخدم بالصيغة التالية : IsDate(تعبير)و يتم تمرير متغير ما لها لفحص إن كان يصلح لأن يكون تاريخاً أم لا وعلى سبيل المثال ترجع دالة IsDate القيمة true في المثال التالي : IsDate("2/12/1990 ") بينما ترجع القيمة false في المثال التالي : IsDate("أبو هاجر ") تحياتي وتقديري للجميع أخوكم / أبو هاجر functions.zip
  4. الإخوة الكرام السلام عليكم وبعد بداية أعتذر عن طرح هذا الدرس في مشاركة مستقلة لكنني لاحظت أن الموضوع الذي طرح سابقاً بهذا الخصوص قد امتلأ بالمشاركات قبل أن يبدأ الشرح ولذلك آثرت هذه الفكرة ولعلها أفضل من فكرة جمع الدوال كلها في مشاركة واحدة مثبتة نظراً لكثرة هذه الدوال والفكرة الجديدة التي أطرحها كالتالي : 1- كل مجموعة من الدوال يتم شرحها في مشاركة مستقلة ويكون عنوان المشاركة كعنوان هذه المشاركة أي بالصيغة التالية شرح دوال أكسس ـ ( نوع الدوال التي تريد شرحها ) 2- يجب أن يجرص الأخ على شرح جميع الدوال التي تنتمي إلى فئة واحدة ولا يقتصر على بعضها وإذا كان ذلك يتطلب بعض الجهد فبإمكان الأخ تجهيز ذلك على جهازه بحيث يقوم كل يوم بشرح دالة وكتابة الأمثلة لها وحين ينتهي من جميع الدوال يقوم بطرح الموضوع في المنتدى حتى يختصر عدد المشاركات وللمعلومية فقد قضيت حوالي ثلاثة أيام في كتابة هذا الدرس حيث كنت أكتب كل يوم جزءاً منه حسب ما يسمح به الوقت ثم جمعت ما كتبت وطرحته بهذا الشكل 3- لي رجاء عند الإخوة بأن تكون طريقة الشرح بنفس الطريقة التي اتبعتها أي - استخدام الدالة - صيغة الدالة - متغيرات الدالة - القيمة التي ترجعها الدالة - إرفاق ملف يحتوي على أمثلة لاستخدام الدالة في الاستعلامات والنماذج 4- يرجى من كل أخ يريد أن يشرح بعض الدوال أن يضع في أعلى مشاركته روابط جميع الموضوعات السابقة التي قامت بشرح دوال أخرى حتى يسهل الرجوع إليها وحتى يتكون لدينا في نهاية المطاف أرشيف كامل لدوال أكسس 5- أخيراً لي طلب عند الأخ فهد الدوسري بأن يقوم بتجميع كل ما يطرح في هذا الموضوع ووضع الأمثلة في قاعدة بيانات واحدة حتى يسهل الرجوع إليها فيما بعد وإن أمكن وضع الشرح مع كل دالة فذلك نور على نور وهذا طلب ورجاء من الأخ فهد آمل أن يتقبله بصدر رحب فهو متميز في هذا المجال بعد هذه المقدمة الطويلة التي آمل ألا أكون قد أزعجتكم بها أقدم لكم شرحا مبسطاً عما يسمى بدوال تدفق البرنامج وهي الدوال التالية : دالة Choose تستخدم دالة Choose من أجل تحويل قيمة حقل من رقم إلى نص أو بمعنى آخر لنفترض أن لديك في الجدول حقلاً يحتوي على قيم رقمية ابتداء من 1 حتى 6 مثلاً وكل رقم تستخدمه في الدلالة على شيء معين مثلاً 1 يعني سعودي 2 يعني مصري وهكذا بالطبع حين تريد عرض هذه القيم للمستخدم فإنك تحتاج إلى تفسيرها أي تحويلها إلى نص في هذه الحالة فإنك ستحدد الحقل الذي يحتوي على الأرقام في متغير الفهرس بالنسبة للدالة وترتب القيم النصية حسب ما يعنيه كل رقم بالترتيب وتستخدم دالة Choose بالصيغة التالية : Choose(index, value1, value-2, value-3) حيث index هو الحقل أو المتغير الذي يحتوي على الفهرس value1, value-2, value-3 القيم 1 و2 و3 بحسب ما تستوعبه الدالة وهي تستوعب متغيرات بطول 255 حرفاً في حالة وجود قيم في الفهرس أصغر من 1 أو أكبر من القيم المحددة فإن الدالة ترجع قيمة خالية NULL دالة Switch تستخدم دالة Switch بنفس الطريقة التي تستخدم بها عبارة Select Case أي تبدأ بشرط ثم قيمة ثم شرط ثم قيمة وهكذا فإذا تحقق الشرط 1 أرجعت الدالة القيمة 1 وإذا تحقق الشرط 2 أرجعت الدالة الشرط 2 وهكذا أما إذا لم يتحقق أي من الشروط فإن الدالة ترجع قيمة خالية NULL وتستخدم دالة Switch بالصيغة التالية : Switch(expr-1, value-1, expr-2, value-2, expr-3,value-3) حيث expr هو الشرط و value القيمة التي سيتم عرضها عند تحقق الشرط السابق لها دالة IIF تستخدم دالة IIF بنفس الطريقة التي تستخدم بها عبارة If then else حيث يتم تمرير شرط واحد وقيمتين إلى الدالة فإذا تحقق الشرط فإن الدالة ترجع القيمة الأولى أما إذا لم يتحقق فإن الدالة ترجع القيمة الثانية وتستخدم دالة IIF بالصيغة التالية IIf(expr, truepart, falsepart) حيث expr هو الشرط و truepart القيمة التي ترجعها الدالة عند تحقق الشرط و falsepart القيمة التي ترجعها الدالة عند عدم تحقق الشرط functions.zip
  5. موضوعات سابقة في هذه السلسلة كيف تتيح للمستخدم البحث بأي حقل من حقول البيانات ـ أبو هاجر (1) http://www.arabteam2000.com/vb/showthread....&threadid=16992 كيف تجعل برنامجك يتأكد من وجود إصدار أكسس المناسب قبل تشغيله - أبو هاجر (2) http://www.arabteam2000.com/vb/showthread....&threadid=17052 كيف تستخدم السحب والإفلات في أكسس - أبو هاجر (3) http://www.arabteam2000.com/vb/showthread....&threadid=17067 كيف تضغط البيانات بامتداد ZIP من داخل أكسس ـ أبو هاجر (4) http://www.arabteam2000.com/vb/showthread....&threadid=17512 كيف تجعل نماذجك مناسبة لمقاس شاشة المستخدم - أبو هاجر (5) http://www.arabteam2000.com/vb/showthread....&threadid=17919 الإخوة الكرام السلام عليكم ورحمة الله بركاته وبعد سبق أن سأل أحد الإخوة عن كيفية العثور على ملف ما من خلال الأكسس لا سيما حين تكون الجداول مفصولة عن البرنامج ومن المحتمل أن يقوم المستخدم بتغيير موقع القاعدة أو اسمها لذلك أقدم لكم هذا المثال الذي يتيح لك البحث عن أي ملف من خلال الأكسس بخيارات متعددة مثل موقع الملف البحث في المجلدات الفرعية اسم الملف أو جزء منه نوع الملف نص أو خاصية معينة في الملف آخر تعديل بالإضافة إلى خيارات متعددة في عرض الملف حسب التاريخ أو الحجم أو الاسم أو غيرها إليكم الملف آملاً أن تجدوا فيه ما يفيد أخوكم / أبو هاجر file_ser.zip
  6. الإخوة الكرام السلام عليكم منذ فترة طرح موضوع تخزين الصور في أكسس من خلال السكانر مباشرة ورغم اهتمامي بالموضوع ألا أنني أحببت أن أؤجل الحديث فيه حتى أصل إلى قول فصل أرى أنه الأسهل والأفضل إذا كنت أعلم أن مثل هذه الميزة تستخدم أدوات خارجة عن البرنامج وقد وجدت الكثير منها لكنني حرصت على اختيار الأيسر الأداة التي اخترتها هي مكتبة DLL وليست أداة OCX وميزتها المهمة أنها لا تحتاج إلى تعريف بل كل ما عليك هو وضعها في دليل system في الويندوز وسوف تعمل مباشرة كما أنها تستدعي برنامج السكانر الخاص بها وهذا أفضل من استخدام أدوات تحتوي هي على البرنامج لأنك تستطيع الاستفادة من كافة الميزات الموجودة في البرنامج الأصلي للسكانز الملف المرفق يحتوي على ملفين ملف TWAIN32d.dll الذي يجب وضعه في دليل c:windowssystem أو حسب دليل ويندوز في جهازك وملف قاعدة البيانات الذي يحتوي على المثال في البداية حدد السكانر التي تريد استخدامها ثم انقر زر سكان الصورة وسوف يعمل تلقائياً برنامج السكان الخاص بالسكانز وبعد النقر على زر سكان في برنامج السكانز سيتم تلقائياً تخزين الصورة في جدول البيانات آمل من جميع الإخوة الذي لديهم أو لدى أصدقائهم سكانر تجربة البرنامج لأنني جربته على سكانز من نوع Genuis وأود التأكد من نجاحه مع الأنواع الأخرى حتى نصل إلى قول فصل في هذا الموضوع ونغلقه إلى الأبد بإذن الله تحياتي أخوكم / أبو هاجر scan_access.zip
  7. الأخ طارق السلام عليكم جهد رائع ومشكور حقيقة كنت أجمع بعض المعلومات والأدوات لطرح هذا الموضوع لكنك كفيتني كفاك الله شر ما تخشاه أخوك / أبو هاجر
  8. كيف ادرج صوره متحركه فى النموذج

    أخي الكريم السلام عليكم استخدم البحث في المنتدى وسوف تجد بغيتك بإذن الله تحياتي
  9. مشكلة في الفرز التصاعدي

    أخي الكريم السلام عليكم وبعد ضع الكود مع أي استعلام فقط غير اسم الحقل والجدول تحياتي أخوك / أبو هاجر
  10. مشكلة في الفرز التصاعدي

    أخي الكريم السلام عليكم وبعد أنشئ استعلاماً جديداً وفي صفحة عبارة SQL ألصق العبارة التالية SELECT order.ser, Left([ser],2) AS Expr1, CDbl(Mid([ser],4)) AS Expr2 FROM [order] ORDER BY Left([ser],2), CDbl(Mid([ser],4)); والفكرة تعتمد على تقسيم الحقل ثم تحويل الجزء الرقمي من السلسلة النصية إلى رقم باستخدام الدالة CDb ثم الفرز على أساس الأحرف أولاً ثم الأرقام ثانياً تحياتي أخوك / أبو هاجر
  11. مشكلة في الفرز التصاعدي

    أخي الكريم السلام عليكم وبعد أعطني اسم الجدول والحقل الذي يوجد فيه الرقم وسوف أقوم بكتابة استعلام لك يقوم بالعملية بإذن الله تحياتي أخوك / أبو هاجر
  12. مشكلة في الفرز التصاعدي

    أخي الكريم السلام عليكم وبعد المشكلة الرئيسة بالطبع هي أن أكسس يتعامل مع الرقم في هذه الحالة كنص وبالتالي فإنه ينفذ عملية الفرز بالترتيب من اليسار إلى اليمين جرب هذا الحل رغم أنه حل معقد عن طريق استخدام دالة left استخرج أول حرفين من اليسار ثم افرز على أساسها عن طريق دالة mid استخرج بقية الرقم ثم افرز على أساسه آمل أن تكون الطريقة واضحة تحياتي أخوك / أبو هاجر
  13. مشكلة في الفرز التصاعدي

    أخي الكريم السلام عليك وبعد مشكلتك محلولة بإذن الله ولكن هل من الممكن ذكر بعض الأرقام على سبيل المثال تحياتي
  14. مشكله فى تحويل التاريخ

    أخي الكريم مسلم المسلم السلام عليكم وبعد جر ب الطريقة التالية : التاريخ مخزن عندك في البرنامج القديم بالهجري وعلى ذلك قم باستيراد التواريخ إلى حقل نصي وليس إلى حقل تاريخ حول تاريخ قاعدة البيانات إلى هجري حول الحقل من نص إلى تاريخ تحياتي
  15. مشكله فى تحويل التاريخ

    أخي الكريم السلام عليكم وبعد الفكرة كالتالي التاريخ مخزن بالهجري وعندما أردت أن تنقله للأكسس نقلته دون تحويل تاريخ الأكسس إلى الهجري وبالتالي فإن الأكسس افترض أن هذه التواريخ بالميلادي ونقلها كذلك وعندما حولت التاريخ إلى الهجري في أكسس جاءت التواريخ كما ذكرت إذن فما هو الحل ؟ الحل هو تحويل التاريخ إلى هجري في قاعدة البيانات قبل نقل التواريخ إليها ومعنى ذلك إن هذا يتطلب منك إعادة تحويل التاريخ من برنامجك السابق مرة أخرى تحياتي أخوك / أبو هاجر
  16. أخي الكريم السلام عليكم وبعد كنت آمل في أنك استخدمت محرك البحث قبل أن تكتب سؤالك على كل آمل منك مراجعة الموضوع التالي : كيف يمكن للأكسس ان يتجاهل حروف معينة اثناء عملية البحث على الرابط التالي http://www.arabteam2000.com/ib/index.php?s...c=19974&hl=همٍé ففيه ما تريد بإذن الله تحياتي أخوك / أبو هاجر
  17. أخي الكريم السلام عليكم وبعد لتنفيذ أمر معين عند الاختيار من قائمة عليك إنشاء وحدة نمطية ووضع كل أمر أو مجموعة أوامر في Function أو إجراء فرعي sub ثم افتح شريط الأودات في عرض التصميم وانقر بزر الفارة الأيمن على الأمر المعين في شريط الأدوات ثم من القائمة المنسدلة اختر خصائص وسوف تجد من ضمن الخصائص خاصية عند الإجراء اكتب فيها اسم الـ Function أو الـ sub مع قوسين بعد بالشكل التالي FFFFFF() تحياتي
  18. كيف اخفي شريط القوائم

    أخي الكريم السلام عليكم آمل اتباع الخطوات التالية أنشئ شريط أدوات جديداً وغير الخاصية إلى شريط قوائم عن طريق عرض خصائص الشريط من عرض >>> أشرطة أدوات >>> تخصيص ثم حدد الشريط ثم انقر زر خصائص ثم حدد شريط قوائم من القائمة افتح النموذج الرئيسي في برنامجك والذي يتم فتحه عند تشغيل البرنامج وفي صفحة الخصائص الخاصة بالنموذج سوف تجد خاصية شريط القوائم حدد فيها الشريط الذي أنشأته تحياتي
  19. التاريخ الهجري مهم جداً

    أخي فتى الوادي السلام عليكم ما هي الرسالة التي تظهر لك تحياتي
  20. كيف اخفي شريط القوائم

    أخي الكريم السلام عليكم أسهل حل هو إنشاء شريط قوائم فارغ وتحديده كشريط قوائم لأول نموذج في البرنامج تحياتي
  21. سؤال عن الامر dsum

    أخي الكريم السلام عليكم استخدم الدالة nz لتحويل القيمة الخالية إلى صفر NZ(Dsum....) تحياتي
  22. كيف اخفي شريط القوائم

    أخي الكريم السلام عليكم يمكنك استخدام الكود التالي Dim CBar As CommandBar   Set CBar = CommandBars("NameOfCommandBar")   CBar.Visible = False تحياتي
  23. التاريخ الهجري مهم جداً

    أخي الكريم السلام عليكم ضع هذا الكود بحيث يتم تشغيله عند تشغيل البرنامج لأول مرة تحياتي
  24. MaxLocksPerFile

    أخي الكريم السلام عليكم بالنسبة لقراءة القيم من الريجسري والتعديل فيها يمكنك ذلك باستخدام دوال API وهناك العديد منها في الإنترنت خاصة في مواقع البرمجة بالفيجوال بيسك علماً بأنها تعمل في الأسس كما في الفيجوال هناك مثال لتعديل قيمة في الريجستري يمكنك الاستفادة منه على الرابط التالي http://www.officena.com/ib/index.php?showtopic=257 تحياتي
  25. التواريخ بالأكسس ؟

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