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

الردود الموصى بها

قام بنشر

السلام عليكم و رحمة الله تعالى وبركاته أساتذة و خبراء منتدانا الغالي حياكم الله

      أردت أن أنجز عمل بمعيتكم الكريمة . و هو إنجاز سلسلة دروس في vba الأكسس لتقوم إدارة المنتدى من بعد ذلك بتثبيت هذا الموضوع ليطلع عليه كل من يريد التعلم و يبقى صدقة جارية لكل من ساهم فيه و لو بحرف واحد.

العمل سوف يقسم إلى مجموعة دروس مثلا : المتغيرات ,الجمل الإختيارية , الجمل التكرارية , الكائنات ......الخ.

و سوف نحاول شرح جميع دوال و تعليمات VBA أكسس الموجودة مع إعطاء أمثلة في نهاية كل درس.

على أن يتم تجميعه في الأخير مرتبا حسب تسلسل الدروس و لا يتم الإنتقال من درس لآخر حتى نستوفي كل ما نستطيع حول هذا الدرس.

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

و قبل البدء أنتظر إقتراحاتكم فيما يخص طريقة العمل أو ترتيب دروس و عناوينها. و إن شاء الله غدا أو بعد غد سوف نبدأ بالعمل على بركة الله.

  • Like 16
  • Thanks 6
قام بنشر

على بركة الله نبدأ أول درس و ننتظر ملاحظاتكم حول أي شيء نسيته و هو متعلق بهذا الدرس أو أي معلومة أخطأت بها:

الــدرس الأول : المتغيرات

    تعتبر المتغيرات النواة الأساسية أو حجر الأساس بالنسبة لكل برنامج في أي لغة برمجة كانت. يعني قبل البدأ يجب أن تقوم بتعريف المتغيرات التي تحتاجها و تحدد نوعها قبل كل شيء.

11-    أنواع المتغيرت:

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

String: نص يتسع المتغير النصي إلى 2 جيجا بايت  و كل حرف يشغل 1 بايت

Boolean: ياخذ نوعين من القيم True  و False (طوله 2 بيت )

Byte: بايت يكون رقم بين 0 من 255 (طوله 1 بايت)

Integer : عدد صحيح (طوله 2 بيت ) قيمته من 32768- إلى 32767

Long : عدد صحيح طويل (طوله 4 بيت) قيمته من  2,147,483,648- إلى 2.147.483.647

Signal: عدد عشري (طوله 4 بيت) قيمته من 3.402823x1038- إلى 1.401298x10-45- للقيم السالبة

                   و من 1.401298x10-45 إلى 3.402823x1038 للقيم الموجبة

Currency: عملة (طوله 8 بيت)  قيمته من 922،337،203،685،477.5808- إلى 922،337،203،685،477.5807

Double : مزدوج عدد عشري (طوله 8 بيت) قيمته من 1.79769313486231x10308- إلى 4.94065645841247x10-324- للقيم السالبة.

       و من 4.94065645841247x10-324 إلى 1.79769313486232x10308 للقيم الموجبة

Date: نوع البيانات تكون على شكل تاريخ (طوله 8 بيت) يبدأ تاريخ vba من 1/1/100 حتى 31/12/9999

Object : لتخزين الكائنات التي تحتوي على خصائص و وظائف و يتم تعيينه بجملة set ويشغل في الذاكرة 4 بايت أو حسب خصائص و وظائف الكائن المحدد. و سوف نخصص درس لعرض أنواع الكائنات.

Variant :  لتخزين كل الأنواع السابقة ويمكن تخزين المصفوفات بداخله أيضاً

2-    طريقة الإعلان عن المتغيرات: الإعلان عن متغير يعني حجز مكان في ذاكرة الكمبيوتر باسم هذا المتغير و يحدد حجمه حسب نوع المتغير. و يتم تعريف المتغير أو الإعلان عنه بواسطة العبارة DIM .

مثال:  Dim A as Integer

للإعلان عن أكثر من متغير:

Dim a,b as integer

للإعلان عن أكثرمن متغير لأنواع مختلفة في نفس السطر:

Dim A As Double, B As Integer

3-    ملاحظات:

-        -  يفضل الإعلان عن نوع المتغير لزيادة سرعة التعامل معه .

-       -   المتغيرات التي لم تحدد نوعها يعمل فيجول بيسك علي الإعلان عنها تلقائيا من النوع Variant وهو أبطأ أنواع المتغيرات .

-         - بالنسبة للإعلان عن أكثر من متغير من نفس النوع بالطريقة التالي: Dim a,b as integer هنا b فقط من النوع integer أما a فهو في هذه الحالة يعتبر من النوع Variant

يجب أن يتم التعريف بهذا الشكل: Dim a integer,b as integer

أو

Dim a as Integer
Dim b as Integer

4-    شروط تسمية المتغيرات:

-   -  اسم المتغير يجب أن يبتدأ بحرف .

-   -  يمكن استعمال الحروف التي تلي الحرف الأول رقم أو حرف أو الإثنين معا.

-   -   لا يجب أن تكون هناك فراغات بين أسماء المتغير و يمكن استعمال الشكل التالي: id_user

-     -  يجب عدم استعمال نقطة أو رمز خاص مثل ( ؟ ، * ، ) ، ( ، /......... إلخ ) ولكن يمكن استخدام الشرطة السفلية ( _ )

-    - أن لا يكون اسم المتغير من الكلمات المحجوزة في الأكسس.

  • Like 17
  • Thanks 3
قام بنشر
10 ساعات مضت, صالح حمادي said:

2-    طريقة الإعلان عن المتغيرات:

 

طرق استعمالها:

1. اذا اردنا استعمال المتغير في الحدث / الوحدة النمطية فقط (يعني لا يمكن اخذ قيمتها من نماذج/تقارير/استعلامات/وحدات نمطية اخرى) ، فنستخدم:

Dim UserName as string

او
Private UserName as string

ويجب ان نستخدم Dim لكل حدث في النموذج/التقرير ، اي نعيد كتابته لكل حدث ،

بينما يمكننا ان نضع Dim / Private مرة واحدة في اعلى الصفحة ، ولا تكون داخل اي حدث ، هكذا

Option Compare Database
Private User_Name As String

 

2.  بينما اذا اردنا ان تكون القيمة متوفرة في جميع كائنات البرنامج ، فنستخدم التالي في وحدة نمطية (حتى ولو كانت وحدة نمطية فارغة):

Public UserName as string

مثال هذا ، عندما تستعمل نموذج المستخدمين ، ثم تريد الاحتفاظ باسم المستخدم في الكود ، فكل الذي تعمله هو:

UserName = "jjafferr"

ثم من اي مكان في البرنامج تستطيع ان تستعمل هذا المتغير UserName ، مثلا:

User_Prevliage = iif(UserName = "jjafferr" , "Admin", "User")

.

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

وهكذا نجعل الكود يفرض علينا استعمال المعرف:

00.z_0006.jpg

.

00.z_0007.jpg

.

واهمية هذه الخطوة هي عندما تريد ان تحفظ البرنامج لاحقا بصيغة mde او accde ، فيجب عليك ان:

00.z_0008.jpg

.

واذا كانت المتغيرات في الكود معرّفة ، فلن تحصل على اخطاء في التحويل:smile:

 

جعفر

  • Like 14
  • Thanks 1
قام بنشر
اقتباس

4-    شروط تسمية المتغيرات:

أحد الشروط التي التزم بها دائما ، هي كتابة اسم متغير مفهوم وله معنى ، مثلا: File_Name او How_Many ،

بحيث بعد مدة لما أرجع لتصحيح الكود ، افهم ما هو عمل المتغير.

 

والمحترفين يذهبون إلى ابعد من هذا ، فبالاضافة إلى استعمالهم مسمى مفهوم المعنى ، فإنهم يسبقون الاسم بحروف تدل على ان المتغير رقم أو كلمات ، هكذا:

للارقام: intRows او nColumns ،

وللكلمات: strName.

 

واستغرب من بعض المتغيرات المستعمله في كود معقد مثل: a او b !!

 

جعفر

  • Like 14
  • Thanks 1
قام بنشر

اضفت بعض الملاحظات في مشاركتي الاولى:

شو قصدك اخي صالح ،

انا اعرف ان المتغيرات باللغة اللاتينية ، فرجاء اعطنا مثال لوسمحت :smile:

 

جعفر

  • Like 4
قام بنشر

ملاحظاتك ممتاز و في محلها و متممة للمعنى

ربما هنا من يستعمل اللغة العربية في تعريف المتغير بهذا الشكل :

Dim الرقم_الأول As Integer

ملاحظة:

- القيمه الإفتراضية للمتغيرات النصيه هي فراغ " "
- أما القيمه الإفتراضية للمتغيرات الرقميه هي صفر 0
 
  • Like 8
قام بنشر

الــدرس الثاني : الجملة الشرطية ( IF )

 

تعتبر الجملة IF  من أشهر الجمل الشرطية و أكثرها استعمالا في جميع لغات البرمجة ولها عدة صيغ كلها تبدأ بــIf  و تنتهى بكلمة  End If ما عدى صيغة واحدة.

وتستخدم الجملة IF لتنفيذ عمليات معينة حسب شرط محدد, يعني إذا تحقق الشرط ينفذ و إلا فلا.

طرق استعمال الجملة ((if:

 

1-  الصيغة ( If –Then ) :

 

  - وصيغتها العامة :

IF  condition   THEN   statements 

  - ومعنى هذه الصيغة : انه اذا تحقق الشرط (condition  ) فسيتم تنفيذ الامر ( statements )

مثال : " مسن"    IF  age >=65  THEN  category =

  2- الصيغة ( If – Then – End If ) :

 

              صيغتها العامة :

IF condition THEN 
   statements1 
   Statements2
END IF      

تقوم هذه الصيغة بتنفيذ مجموعة من الاوامر اذا تحقق الشرط (Condition) بدلا من تنفيذ امر واحد.

مثال :

If age >= 25 Then 
   category ="شباب"
   travail ="السن مقبول"
End if

3- الصيغة ( If – Then – Else ) :

 

         صيغتها العامة :

If condition  Then 
   statements1(التعليمات المنفذة في حال تحقق الشرط )
Else
   statements2(التعليمات المنفذة في حال عدم تحقق الشرط)
End If

         - هذه الصيغة تنفذ مجموعة الأوامر (statements1 ) عندما يتحقق الشرط (condition )

و عندما لا يتحقق الشرط فإنها تنفذ مجموعة الأوامر (Statements2).

مثال :

If grade >= 50 Then 
   Text1 ="ناجح"
Else
   Text1 ="راسب"
End If

4- الصيغة  ( If – Then –ElseIf ) :

- صيغتها العامة :

If  condition1  Then 
    statements1(  التعليمات المنفذة في حال تحقق الشرط الأول)
ELSEIF  condition2  THEN 
    statements2(التعليمات المنفذة في حال عدم تحقق الشرط الأول و تحقق الشرط الثاني)
ELSE
    statements2(التعليمات المنفذة في حال عدم تحقق جميع الشروط السابقة)
End If

مثال :

If grade >= 90 Then 
   Text1 ="ممتاز"
ElseIf grade >= 80 Then
   Text1 ="جيد جدا"
ElseIf grade >= 70 Then
   Text1 ="جيد"
ElseIf grade >= 60 Then
   Text1 ="مقبول"
Else
   Text1 ="راسب"
End If

ملاحظات:

- في الصيغة الأخيرة ( If – Then –ElseIf ) اذا تحقق احد الشروط فان البرنامج ينفذ العملية ثم يذهب الى نهاية الجملة و لا يتحقق من الشروط الباقية.

- في حالة أردنا إستعمال شرطين معا أو أكثر نستعمل العبارة And.

- في حالة أردنا تحقق أحد شرطين ليتم تنفيذ العملية نستعمل Or

 

  • Like 16
  • Thanks 1
قام بنشر

مثال على استعمال And:

If UserName="أبو خليل" And Password=2017 Then
   MsgBox"مرحبا أستاذ أبو خليل"
End If

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

MsgBox"مرحبا أستاذ أبو خليل"

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

مثال على استعمال Or:

If Died_Father=true Or Died_Mother=False Then
   MsgBox "يتيم"
End If

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

إذا هناك شخص أبوه متوفي فهو يتيم و إذا كانت أمه متوفية فهو يتيم و إذا كان كلا والديه متوفيين فهو أيضا يتيم.

((((((اللهم أرحم جميع موتى المسلمين يا أرحم الراحمين يا رب العالمين))))))

  • Like 9
  • Thanks 2
قام بنشر

ماشاء الله عليك اخوي صالح ، كفيت ووفيت ، وما بقيت لي شئ اكتبه :wink2:

 

التنسيق: وذلك بإستخدام زر الـ Tab (لتحريك السطر Indenting) ، و زر Enter (للإنتقال الى السطر التالي)

تنسيق وتجميع مجموعات اللـ IF مهم ، وكلما كان تنسيقك افضل ، كلما قلّت اخطاءك ، وكلما استطعت الوصوت للخطأ بسرع :smile:

في الصور كود لبرنامج أحد الاعضاء (واعتذر مسبقا من صاحب الاكواد) ،

لاحظ طريقة عرض الكود ، بدون تنسيق ، وصعوبة معرفة بداية ونهاية الشرط IF :

قبل التنسيق 00.z_0013.jpg 

وسهولة القراءة بعد التنسيق 00.z_0014.jpg

.

اما الكود التالي ، فذكرني بالكاريكاتير "ابحث عن فضولي" ، وهنا نبحث عن بداية ونهاية الشرط IF :

00.z_0012.jpg

.

وتم تعديل التنسيق (تغيير الكود هو للتوضيح) الى:

00.z_0009.jpg

.

هناك شيئين في التنسيق ،

الاول: لاحظ انه من السهل معرفة بداية ونهاية كل شرط ،

وحتى الشروط المتداخلة في الشرط الاصلي ، اصبح من السهل معرفة بدايتها ونهايتها ،

ونافذة الكود تخبرنا 1: على اي سطر نحن (Line, Ln) ، و 2: في اي عمود (Column, Col) ، مما يساعدنا في عملية التنسيق

00.z_0010.jpg

.

ثانيا: لاحظ اني عندما اقفل الجملة الشرطية End If ، فاني اكتب تعليق خلفها ، وهذا التعليق مأخوذ من جزء من بداية الشرط IF ،

هذا يسهل عليّ كثيرا معرفة بداية ونهاية الجملة الشرطية:

00.z_0011.jpg

.

جعفر

  • Like 9
  • Thanks 1
قام بنشر (معدل)

الدرس الثالث: الدالة Select Case

 

تشبه الدالة Select Case  إلى حد كبير الدالة If و لكنها تختلف عنها بالتعدد أي أنها تكون في الشروط المتعددة.

طريقة الاستعمال:

 

الصيغة الأولى:

 

Select Case Expression
    Case Expression_1
        Statement_1
    Case Expression_2
        Statement_2
    Case Expression_n
        Statement_n
End Select

تقوم الدالة Select Case باختبار حالة الكائن أو المتغير Expression و مقارنتها أو مطابقتها مع الحالات الموجودة بداخلها.

و عند تحقق الشرط مع إحدى الحالات يقوم البرنامج بتنفيذ التعليمة Statement التابعة لهذه الحالة.

و عند عدم مطابقة الكائن أو المتغير لجميع الحالات فإن البرنامج لا يعطينا أي نتيجة.

مثال1:  كتابة الأرقام من 1 إلى 4 بالحروف

Select Case me.le_nombre
   Case 1
     Me.y = "واحد"
   Case 2
     Me.y = "إثنان"
   Case 3
     Me.y = "ثلاثة"
   Case 4
     Me.y = "أربعة"
End Select

أضفنا مربع نص اسمه le_nombre لإدخال الأرقام و مربع نص اسمه y من أجل ظهور النتيجة.

الصيغة الثانية:

Select Case Expression
    Case Expression_1
        Statement_1
    Case Expression_2
        Statement_2
    Case Expression_n
        Statement_n
    Case Else 
    Other_statement
End Select

في هذه الصيغة عند عدم تحقق الشرط مع جميع الحالات يتم إرجاع التعليمة الإستثنائية Other_statement

مثال2:  نفس المثال الأول

Select Case me.le_nombre
   Case 1
    Me.y = "واحد"
   Case 2
    Me.y = "إثنان"
   Case 3
    Me.y = "ثلاثة"
   Case 4
    Me.y = "أربعة"
   Case Else
    me.y = "هذا الرقم غير موجود"
End Select

هذا عندما نضيف أي رقم يختلف عن 1 أو 2 أو 3 أو 4 يطبع لنا "هذا الرقم غير موجود"

مثال 3: برنامج كتابة ملاحظات التلاميذ حسب الدرجة

Select Case Me.Degre
  Case 0 To 30
    Me.y = "ضعيف"
  Case 30 To 49
    Me.y = "دون الوسط"
  Case 50 To 69
    Me.y = "مقبول"
  Case 70 To 89
    Me.y = "جيد جدا"
  Case 90 To 100
    Me.y = "ممتاز"
  Case Else
    Me.y = "هذه الدرجة خاطئة"
End Select

هنا إستخدمنا To معناه إلى مثلا: من 0 إلى 30

تم تعديل بواسطه صالح حمادي
  • Like 10
  • Thanks 2
قام بنشر

السلام عليكم أخي صالح:smile:

 

إطراء وتعقيب:

 

الموضوع متكامل ، والتنسيق رائع:smile:

والشئ الوحيد الذي لم تشر اليه هو (مأخوذ من برنامج الاكسس) ، هو خلط المتغير Expression

 

Case 9, 11, 13

و

Case 1 To 4, 7 To 9, 11, 13

.

ومع ان تشبه الدالة Select Case  إلى حد كبير الدالة If ،

إلا ان المبرمجين المحترفين يفضلون استخدام Select Case على If :smile:

 

جعفر

 

  • Like 7
قام بنشر

الــدرس الرابع: الجملة الشرطية ( IIF )

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

طريقة استعمال ((iif:

iif(expr, truepart, falsepart)

iif(القيمة المطلوب تقييمها, اذا كان التقييم صح فستأخذ هذه القيمة, اذا كان التقييم خطأ فستأخذ هذه القيمة)

مثال:

Age=50

Age_Now = iif(Age=50 , "Yes it is", "No it is not")

 

ميزاتها:

نستطيع استعمالها في الكود ، والاستعلام

نستطيع ان نضع اكثر من شرط واحد فيها

مثال:

Price=10

Qty=5

Sale_is= iif(Price* Qty = 50 , "Low sale", iif(Price * Qty = 100 , "Middle sale" , "Big sale"))

 

عيوبها:

الدالة تختبر جميع الحالات ، ولا تختبر القيمة الاولى وتخرج (مثل الـ IF):

1. المثال السابق ، مع ان اول تقييم هو الجواب الصحيح 10*5=50 ، إلا ان الدالة ستقوم بتقييم جميع الاختيارات ، مما يجعلها تأخذ وقت اطول للتقييم ،

2. بسبب اختبارها لجميع الحالات ، فيجب ان نكون دقيقين في وضع التقييم ، مثلا اذا اردنا اختبار قيمة

مثال:

Divide = iif(n2 = 0, MsgBox("القيمة صفر"), MsgBox(n1 / n2))

فاننا سنحصل على خطأ ، لأن الدالة تحققت من القيمتين ، والقيمة الثانية هي تقسيم رقم على صفر ،

3. بطيئه نوعا ما ، لأنها تحول الارقام الى Variant (رجاء مراجعة الدرس الاول للأخ صالح) ، ثم تقوم بالحساب ،

4. لا تستطيع ان تستخدم اكثر من 7 شروط في الاستعلام ، مثلا عندنا ارقام الاشهر ونريد نستخرج اسمائها ،

5. ببساطة مكن ان تخطأ في عدد الاقواس والفواصل ، 

6. لا تستطيع قراءة ولا تغيير اي شئ بسهولة ، وخصوصا اذا كان عندنا اكثر من تقييم ،

 

امثلة عملية:

1.     اذا عندنا ارقام الاسبوع ، ونريد ان نستخرج ايامها ، فاذا عملنا الكود في الاستعلام مباشرة ، فسيكون صعب ، لذا ، فالطريقة التي اعملها انا هي:

أ‌- عمل الكود في محرر VBA ، هكذا:

لاحظ اني عملت اول شرط ونتيجة القيمة الصحيحة ، ثم انهيت السطر بخط سفلي _ (واللي معناه في البرمجة ان الكود سيتواصل في السطر التالي ،

ثم انتقلت السطر التالي ، ونفس الشئ ، عملت الشرط التالي ونتيجة القيمة الصحيحة و.... كما سبق و... الى ان نوصل للسطر الاخير ،

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

iDay = 2

Today_is = IIf(iDay = 1; "Sun"; _

                               IIf(iDay = 2; "Mon"; _

                               IIf(iDay = 3; "Tue"; _

                               IIf(iDay = 4; "Wed"; _

                               IIf(iDay = 5; "Thu"; _

                               IIf(iDay = 6; "Fri"; "Sat"))))))

ب- والخطوة التالية ان نجعلها في سطر واحد ، حتى نأخذها للإستعلام ،

 وهي ان نحذف الاشارة _ ، لتكون النتيجة

Today_is = IIf(iDay = 1; "Sun"; IIf(iDay = 2; "Mon"; IIf(iDay = 3; "Tue"; IIf(iDay = 4; "Wed"; IIf(iDay = 5; "Thu"; IIf(iDay = 6; "Fri"; "Sat"))))))

.

هكذا

Make_iif.thumb.gif.691460af579f75476118173d14a8419e.gif

.

 

2.     اذا عندنا سجلات الصف الاول والثاني ، واردنا معرفة عدد الطلاب لكل صف:

iif([Section]= "A" ; 1;0)

وهكذا تكون في الاستعلام:

medium.L.Clipboard01.jpg.528668a88b5cbeb

 

 

3.    اذا عندنا اكثر من 7 شروط (ارقام الاشهر نريد تحويلها الى اشهر) ، فهنا نضطر الى عمل وحدة نمطية:

Function What_Month(M)


    Select Case M
        Case 1
            What_Month = "Jan"
        Case 2
            What_Month = "Feb"
        Case 3
            What_Month = "Mar"
        Case 4
            What_Month = "Apr" 
        Case 5
            What_Month = "May"  
        Case 6
            What_Month = "Jun"      
        Case 7
            What_Month = "Jul"     
        Case 8
            What_Month = "Aug"
        Case 9
            What_Month = "Sep"
        Case 10
            What_Month = "Oct"
        Case 11
            What_Month = "Nov"
        Case 12
            What_Month = "Dec"
    End Select   


End Function  

ونرسل لها ارقام الاشهر ، هكذا

00.z_0051.jpg.3d8d083eeb96e16043bb70f41dca413b.jpg

.

والنتيجة

00.z_0052.jpg.77913a51d06c96f856d7c1f762613acc.jpg

 

  • Like 12
قام بنشر

شكرا أخي صالح:smile:

 

في الواقع انا لم ادرس البرمجة (نعم مادة الفورتران في بداية دراستي الجامعية) ، ولم ادخل في تدريب ، وحتى ما عندي رخصة سواقة الحاسوب :wink2: وانما كل الذي عندي من تجارب عملية ،

لذلك ترى الفرق واضح من طريقة عرضك للموضوع ، وطريقة عرضي:smile:

 

جعفر

  • Like 6
قام بنشر
58 دقائق مضت, jjafferr said:

شكرا أخي صالح:smile:

 

في الواقع انا لم ادرس البرمجة (نعم مادة الفورتران في بداية دراستي الجامعية) ، ولم ادخل في تدريب ، وحتى ما عندي رخصة سواقة الحاسوب :wink2: وانما كل الذي عندي من تجارب عملية ،

لذلك ترى الفرق واضح من طريقة عرضك للموضوع ، وطريقة عرضي:smile:

الحمد لله نحن نشترك في هذا الأمر

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

  • Like 6
قام بنشر

الدرس الرابع: الحلقات التكرارية أو الدورانية  Looping

 

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

 

أولا: الحلقة (For … Next)

تستخدم الحلقة (For … Next) لتكرار عدد من المرات بحيث يكون عدد التكرارات معلوم.

For counter = start To end [step increment]
   Statement
Next counter

Counter: متغير يمثل عداد الحلقة

Start: القيمة الابتدائية للدوران

End: القيمة النهائية للدوران

Increment: مقدار الزيادة في كل حلقة من حلقات الدوران و إذا لم يوضع يأخذ القيمة 1 افتراضيا

 

مثال1:

 

 

 

For i = 1 To 10
   Me.y = Me.y + i
Next i

هذا البرنامج يقوم بحساب مجموع الأعداد من 1 إلى 10 .

بحيث i هو العداد و y مربع نص تظهر به النتيجة و القيمة الابتدائية له يجب أن تكون 0

مثال2:

 

For i = 0 To 10 Step 2
   Me.y = Me.y + i
Next i

في هذا البرنامج وضعنا قيمة الانتقال 2 يعني أن البرنامج سوف يحسب مجموع الأعداد الزوجية فقط (من 0 إلى 10)

 

ثانيا: الحلقة (For Each … Next)

 

تستخدم الحلقة (For  Each… Next) عندما نريد تنفيذ تعليمة أو مجموعة من التعليمات لكل عنصر في مصفوفة أو مجموعة. و رغم أنها تشبه (For … Next) كثير إلا أنها تقوم بتنفيذ حلقة لكل عنصر مما يعني أنه لا يوجد عداد في هذا النوع من الحلقات.

و يمكن استخدامها في المصفوفات أو مع الكائنات.

صيغتها:

For Each element In Group
  [statement 1]
  [statement 2]
  ....
  [statement n]
Next

مثال1:

Dim Array_n() as string

Array_n = Array(1, 2, 3, 5)
Dim sum As Integer
sum=0

For Each Item In Array_n
   sum = sum + Item
Next

Me.y = sum

 Array_n هي مصفوفة بها 4 عناصر.

هذا البرنامج يقوم بحساب مجموع هذه العناصر و يضعها في مربع النص y

Item : هي العنصر

i: هو العداد

 

مثال2:

Dim frm As Form
Dim fc As Control

Set frm = Me

For Each fc In frm.Controls
   Me.listbox.AddItem (fc.Name)
Next

هذا البرنامج يقوم بإضافة جميع أسماء عناصر النموذج الحالي إلى مربع قائمة listbox.

السطر الأول هو تعريف المتغير frm من Form (نموذج)

السطر الثاني تعريف المتغير fc من Control (عنصر تحكم)

السطر الثالث إسناد النموذج الحالي (Me)  للمتغير frm و ذلك باستعمال عبارة set لأن النموذج عبارة عن كائن (Object) .

السطر الرابع هو القيام بالدوران لكل عنصر من عناصر النموذج(frm.Controls) 

السطر الخامس إضافة اسم العنصر(fc.Name) Listbox إلى مربع القائمة   و ذلك بإستعمال التعليمة AddItem

 

ثالثا: الحلقة (Do Until  condition ... Loop)

 

تقوم هذه الحلقة بتفحص الشرط قبل الدخول للحلقة إذا كان الشرط محقق (True) فإن البرنامج يقفز إلى ما بعد حلقة التكرارية أي أنه لن يتم الدخول للحلقة. و إذا كان الشرط غير محقق (False) فسيتم تنفيذ التعليمات Statments, ثم يرجع للسطر Do until لاختبار الشرط ثانية. و هكذا.

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

صيغتها:

Do Until condition
  Statments
Loop

مثال:

Dim i As Integer
Dim sum As Integer
i = 1
sum = 0

Do Until i > 10
  sum = sum + i
  i = i + 1
Loop

Me.y = sum

يقوم هذا البرنامج بحساب مجموع الأعداد من 1 إلى 10 .

i متغير من نوع integer يمثل العداد بالنسبة للحلقة في كل حلقة يزداد 1 و فيمته الابتدائية هي 1.

sum متغير من نوع integer يمثل مجموع الأعداد قيمته الابتدائية هي 0.

 

مادام i<10 فإن البرنامج يبقى يكرر العملية حتى يصبح i>10 و بعد نهاية الدوران يضع القيمة النهائية في مربع النص y

رابعا: الحلقة (Do ... Loop Until condition )

 

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

صيغتها:

Do
  Statements
Loop Until condition

مثال:

Dim i As Integer
Dim sum As Integer
i = 1
sum = 0

Do 
  sum = sum + i
  i = i +2
Loop Until i > 10

Me.y = sum

هذا البرنامج يقوم بحساب مجموع الأعداد الفردية من 0 إلى 10

لأن القيمة الابتدائية للعداد هي 1 و مقدار الزيادة في كل حلقة (الخطوة) هو 2

خامسا: الحلقة (Do While condition ... Loop)

هذا النوع من الحلقات يقوم بتنفيذ الدوران مادام الشرط Condition محقق وإلا يتم التوقف عن الدوران في الحلقة و تقوم هذه الدالة بتفحص الشرط في بداية الحلقة.

صيغتها:

 

Do While Condition
  Statements
Loop 

مثال:

Dim i As Integer
Dim sum As Integer
i = 0
sum = 0

Do While i <= 10
  sum = sum + i
  i = i + 2
Loop
               
Me.y = sum

يقوم هذا البرنامج بحساب مجموع الأعداد الزوجية من 0 إلى 10

مادام i<=10 فإن البرنامج يعيد الدوران. في كل دورة يقوم بإضافة 2 للعداد  حتى يصبح i>10

سادسا: الحلقة (Do ... Loop While condition)

 

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

صيغتها:

Do 
  Statements
Loop While Condition

مثال:

Dim i As Integer
Dim mult As Long
i = 10
mult = 1

Do
  mult = mult * i
  i = i - 1
Loop While i > 0

Me.y = mult

هذا البرنامج يقوم بحساب جداء الأعداد من 10 إلى 1 و يضع النتيجة في me.y

هنا وضعنا العداد i تنازليا (i=i-1) في كل دورة ينقص 1 من العداد حتى يصل إلى 0

نلاحظ هنا بالنسبة للمتغير mult و الذي يمثل الناتج أنني وضعت نوعه  Long Integer بدلا من و السبب يرجع لأن النوع integer أقصى قيمة له هي 32767 و في هذه الحالة الناتج يفوق هذا العدد و بالتالي سوف يظهر لنا الخطأ رقم 6 (Overflow)

  • Like 7
قام بنشر (معدل)

الدرس الخامس: استعمال الرموز

 

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

الفاصلة ,

تستخدم الفاصلة بشكل واسع في اكواد VBA فمثلا نورد هنا بعض استخدماتها على سبيل المثال لا للحصر:

تستخدم للفصل بين قيم دالة تتطلب ادراج عدة قيم

مثال:

exm=DFirst(Expr, Domain, Criteria)

للفصل بين المتغييرات عند تعريفها

مثال:

Dim a,b,c As Integer

الاقواس الهلالية ( )

تستخدم الاقواس الهلالية في فيجول بيسك في الاماكن التالية :

-عند كتابة الاكواد.
-عند بداية كتابة اجراء معين او دالة ما.

-في العمليات الحسابية.

مثال:

Function Example (exm As Boolean)
D=(e-f)*g	
moy=(2+3+4)/3

الفاصلة المنقوطة  ;

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

علامتي الاقتباس " "

تستخدم علامتي الاقتباس بشكل رئيسي لحصر النصوص بداخلها و بالتالي سوف يفهم البرنامج ان ما هو موجود بين علامتي الاقتباس هو نص و يتعامل معه عل هذا الاساس.

مثال:

Text0="منتدى أوفيسنا"

 علامة الاقتباس المفردة  '
تستخدم علامة الاقتباس المفردة ' لتوضيح  ما بعدها هو شرح و ليس عبارة برمجية

مثال:

' A = Text0.BackColor

الاقواس المربعة  []
الاقواس المربعة ايضاً حالها حال الرموز السابقة لها استخداماتها المحددة و تتمثل استخدماتها في توضيح ان المتغييرات المحصورة بين قوسين مربعين انما هي اسماء لجدول او نموذج او استعلام او عناصر داخل تلك النماذج او حقل ضمن الجداول و الاستعلامات و تستخدم في منشأ التعابير و كودات ال(VBA) على حدٍ سواء و في بعض الاحيان يمكن الاستغناء عنها اي ان نذكر العناصر السابقة بدون حصرها بين قوسين

مثال:

Forms![form1].[Text0] = "ممكلة الاكسس و الوورد" 

علامة التعجب !
تستخدم علامة التعجب على حد علمي استخدام وحيد و هو موضح في

مثال:

Forms![form1].[Text0] = "ممكلة الاكسس  و الوورد"  

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

الرمز &

و هي  اختصار لكلمة AND باللغة الانكليزية و هنا تستخدم لربط سلسلتين نصيتين او اكثر

مثال:

Text0 =   "مملكة " & "الاكسس " & "و " & "الوورد" 

علامة =
و هي تقوم بإسناد قيمة ما بعدها للمتغيير الموجود قبلها سواءاً كانت تلك القيمة رقم او معادلة رياضية او قيمة منطقية او سلسلة نصية .. الخ

مثال:

A=b+c  

علامة النقطة .
و هي مهمة جدا في البرمجة. فعند ذكر اسم اي عنصر من عناصر قاعدة البيانات و الحاق اسم العنصر بعلامة النقطة (.) فسوف تظهر قائمة بخصائص ذلك العنصر و الاوامر التي يتعامل معها ذلك العنصر .

مثال:

Text0.Text = "احمد الحربي"  

علامة الشارحة السفلية _

تستخدم هذه العلامة للفصل بين اسم العنصر و الحدث المرتبط به

مثال:

Private Sub Command2_Click()  

علامة #
تستعمل هذه العلامة لتحول سلسلة رقمية الى تاريخ

مثال :

Text0 = #30/1/2017#  

+ عملية الجمع

- تستعمل لعمية الطرح

* تستعمل لعملية الضرب

/ تستعمل لعملية القسمة

^ تستعمل لعملية الأس

مثال:

text1=2+3
text2=10-6
text3=70/5
text4=4*23
text5=6^4

 

 

تم تعديل بواسطه صالح حمادي
  • Like 6
قام بنشر

شكرا جزيلا اخي صالح:smile:

 

تسلم ايدك على هذا العمل ، والواقع ان العمل مو سهل ، انا اشتغلت على جزء واحد واعرف الصعوبة:wink2:

 

وعندي أضافات سأعمل عليها ان شاء الله:smile:

 

جعفر

  • Like 5
قام بنشر
4 ساعات مضت, jjafferr said:

شكرا جزيلا اخي صالح:smile:

 

تسلم ايدك على هذا العمل ، والواقع ان العمل مو سهل ، انا اشتغلت على جزء واحد واعرف الصعوبة:wink2:

 

وعندي أضافات سأعمل عليها ان شاء الله:smile:

العفو أخي جعفر.

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

فاللهم علمنا ما ينفعنا و أنفعنا بما علمتنا يا أرحم الراحمين يا رب العالمين

  • Like 3
  • Thanks 1
قام بنشر (معدل)

الدرس السادس: الدوال النصية

 

هنالك الكثير من الدوال المستعملة في VBA و سوف نحاول ذكر الدوال المشهورة منها حسب عملها:

Asc: إرجاع عدد صحيح يمثل رمز الحرف الأول في السلسلة النصية.

 

مثال:

Me.y = Asc("أوفيسنا")
النتيجة=195

Chr: تحويل عدد صحيح إلى حرف أو رمز.

 

مثال:

Me.y = Chr("210")
النتيجة=ز

InStr: استخراج موضع بداية سلسلة ضمن سلسلة أخرى.

 

مثال:

Instr(المقارنة,السلسلةالمبحوث عنها,السلسلة التي يتم فيها البحث,مكان بداية البحث)
Me.y = InStr(1,"homsalah", "a")=5

InStrRev: إرجاع موضع تواجد سلسلة ضمن سلسلة أخرى بدءا من نهاية السلسلة.

 

InStrRev(المقارنة,بداية البحث,السلسلة المبحوث عنها,السلسلة)
Me.y = InStrRev("homsalah", "a", -1)=7

LCase: تحويل حروف سلسلة إلى حروف صغيرة.

مثال:

Me.y = LCase("ABC")=abc

 

UCase: تحويل الأحرف إلى أحرف كبيرة.

مثال:

UCase(السلسلة النصية)
Me.y = UCase("abcd")="ABCD"

Left: ارجاع جزء من سلسلة حرفية حسب عدد الحروف المطلوبة من جهة اليسار.

 

مثال:

Left(عدد الأحرف المطلوبة,السلسلة )
Me.y = Left("1999", 2)=19

Len: حساب عدد الأحرف في السلسلة.

 

مثال:

len(السلسلة)
Me.y = Len("1999")=4

LTrim:  حذف الفراغات الموجودة في الجهة اليسرى.

 

مثال:

Trim(السلسلة)
Me.y = Trim("   1999")="1999"

Mid: ارجاع جزء من سلسلة بحيث تحدد بداية الجزء و طوله (عدد الأحرف).

 

مثال:

Mid(عدد الأحرف,نقطة البداية(رقم),السلسلة)
Me.y = Mid("SALAH", 3, 2)="LA"

Replace: تعويض جزء من سلسلة بجزء آخر.

 

مثال:

Replace(الجزء المعوض,الجزء الذي نريد استبداله,السلسلة)
Me.y = Replace("SALAH", "H", "T")="SALAT"

Right: ارجاع جزء من سلسلة حرفية حسب عدد الحروف المطلوبة من جهة اليمين.

مثال:

Right(عدد الحروف,السلسلة)
Me.y = Right("SALAH", 2)="AH"

RTrim: حذف الفراغات الموجودة في الجهة اليمنى لسلسلة.

مثال:

RTrim(السلسلة)
Me.y = RTrim("15    ")="15"

 

Trim: حذف المسافات البادئة و الزائدة من سلسلة.

 

مثال:

Trim(السلسلة)
Me.y = Trim("   15    ")="15"

Space: ارجاع سلسلة تتألف من عدد من المسافات المحددة.

 

مثال:

Space(عدد الفراغات)
Me.y = Space(3)="   "

Str: ارجاع متغير من نوع string يمثل رقم.(تحويل متغير من نوع رقم إلى متغير من نوع سلسلة نصية)

 

مثال:

Str(العدد)
Me.y = Str(3)=" 3"
Me.y = Str(-3)="-3"
تقوم بإرجاع مسافة قبل الأعداد الموجبة

StrComp: ارجاع عدد صحيح يشير إلى نتيجة مقارنة سلسلتين.إذا كانت متساوية يرجع 0 و إذا كانت مختلفة يرجع 1 أو 1-

 

مثال:

StrComp(السلسلة2,السلسلة1,المقارنة)
Me.y = StrComp("ass", "ass")=0
Me.y = StrComp("as", "ass")=-1

 

StrConv: ارجاع سلسلة تم تحويلها كما هو محدد.

 

مثال:

StrConv(رقم يمثل رمز التحويل,السلسلة,LCID)
Me.y = StrConv("ass", 1)="ASS"

رموز التحويل:

1: يحول السلسلة إلى أحرف كبيرة

2: يحول السلسلة إلى أحرف صغيرة

3: يحول الحرف الأول من كل كلمة في السلسلة إلى حرف كبير

64: تحول السلسلة إلى Unicode باستخدام مخطط الشفرة الافتراضي للنظام.

128: تحول السلسلة إلى Unicode باستخدام مخطط الشفرة الافتراضي للنظام.

و هذا الرابط به مختلف الرموز:   https://support.office.com/ar-SA/article/الدالة-StrConv-19c3816f-dbc9-4adf-891c-fd32734c92e0

String: تكرار أحرف بعدد معين.

 

مثال:

String(الحرف, عدد التكرارات)
Me.y = String(3, "S")="SSS"

 

StrReverse: قلب ترتيب أحرف سلسلة نصية.

 

مثال:

StrReverse(السلسلة)
Me.y = StrReverse("ABCD")="DCBA"

 

 

تم تعديل بواسطه صالح حمادي
  • Like 7
  • 2 weeks later...
قام بنشر

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

تحياتي

  • Like 2
قام بنشر

السلام عليكم اخوانى اتمنى ان اشارك معكم فى هذا العمل الرائع حتى يكون مرجع للاعضاء.

اتمنى ان لا ينسي هذا الموضوع وهذه مشاركة محذوفة اتمنى ان تعيد تنشيط الموضوع .

الدالة DateAdd

يمكنك استخدام الدالة DateAdd لإضافة فاصل زمني معيّن أو طرحه من تاريخ ما. على سبيل المثال، يمكنك استخدام الدالة DateAdd لحساب تاريخ لمدة 30 يوماً من اليوم أو وقت لمدة 45 دقيقة من الآن.

 

وصيغتها كالاتى

DateAdd ( الفاصل الزمني، رقم، تاريخ )

 

الفاصل الزمني : ويوضع رمز للمتغير الذي تريد اضافة القيمة الزمنيه إليه

رقـــــــــــــــــم : ويوضع الرقم الذى تريد اضافته للمتغير الذي قمت بتحديده

تــــــــــــــاريخ : ويوضع هنا الزمن الذي به المتغير موضح به القيمه الحاليه حتى يتم اضافة الرقم إليه حسب المتغير الذي قمت بتحديده

 

مثال 1 :  يقوم المثال التالي بإضافة شهر واحد إلى 31 يناير

DateAdd("m", 1, "31-Jan-95")

جدول اكود المتغيرات " الفواصل الزمنيه "

yyyy  السنة

 

q    ربع سنوي

 

m   الشهر

y   يوم من السنة

d  اليوم

w  يوم من الأسبوع

ww  الأسبوع

h  الساعة

n  الدقيقة

s  الثانية

 

مثال 2 : أذا اردت مثلاً اضافة شهر الى القيمه الحالية للتاريخ

DateAdd("m", 1, Date)

  • Like 4
قام بنشر

الدرس السابع: دوال التاريخ

 

أخوتي الكرام حياكم الله سوف نقوم في هذا الدرس بشرح دوال التاريخ:

()CDate: تستخدم هذه الدالة من أجل تحويل سلسلة إلى تاريخ.

مثال:

CDate(السلسلة)
CDate("122010")="18-01-2234"

()Date: تستخدم هذه الدالة من أجل إرجاع تاريخ النظام الحالي.

مثال:

Date()="19/02/2017"

DateDiff: تستخدم هذه الدالة لحساب الفرق بين تاريخين

DateDiff(أول أسابيع السنة,أول أيام الأسبوع,التاريخ الثاني,التاريخ الأول,رمز الفاصل الزمني)
DateDiff("d","14/02/2017","19/02/2017")=5
في هذا المثال حسبنا الفرق بين التاريخين بالأيام

DatePart: تستخدم هذه الدالة للحصول على جزء معين من تاريخ محدد لها.(سنة أو يوم أو شهر)

مثال:

DatePart(أول أسابيع السنة,أول أيام الأسبوع,التاريخ,فاصل زمني) 
DatePart("d","22/03/2017")=22
DatePart("m","22/03/2017")=3
DatePart("yyyy","22/03/2017")=2017

DateSerial: تستخدم هذه الدالة لإرجاع متغير من نوع تاريخ من ثلاث متغيرات رقمية تمثل السنة والشهر واليوم .

مثال:

DateSerial(يوم,شهر,سنة)
DateSerial("1999","03","20")="20/03/1999"

DateValue: تستخدم هذه الدالة من أجل تحويل تعبير معين إلى تاريخ .

مثال:

DateValue(«التاريخ»)  
DateValue("12 02 2016")  

Day: تستخدم هذه الدالة لإرجاع رقما من 1 إلى 31 يمثل اليوم من الشهرللتاريخ الممر لها .

مثال:

Day(التاريخ)
Day("15/03/2016")=15

Hour: تستخدم هذه الدالة لإرجاع رقما من 0 إلى 23 يمثل الساعة في اليوم .

مثال:

Hour(الوقت)
Hour("15:25")=15

Minute: تستخدم هذه الدالة لإرجاع رقما من 0 إلى 59 يمثل الدقائق في الساعة.

مثال:

Minute(الوقت) 
Minute("15:25")=25

Second: تستخدم هذه الدالة لإرجاع رقما من 0 إلى 59 يمثل الثواني في الدقائق.

مثال:

Second(الوقت)
Second("15:20:23")=23

Month: تستخدم هذه الدالة لإرجاع رقما من 0 إلى 12 يمثل الشهر في السنة.

مثال:

Month(التاريخ)
Month("12/11/2003")=11

Year: تستخدم هذه الدالة لإرجاع رقما يمثل السنة.

مثال:

Year(التاريخ)
Year("12/12/2017")=2017

نكمل البقية فيما بعد إن شاء الله

  • Like 6
  • 4 weeks later...
قام بنشر (معدل)

IsDate:

تستخدم هذه الدالة لفحص ما إذا كان المتغير الممرر لها تاريخ أم لا حيث تعيد true إذا كان المتغير تاريخاً و تعيد false إذا لم يكن تاريخاً.

IsDate(«تعبير»)
IsDate("12/03/2017")=True
IsDate("أوفيسنا")=False

Now:

تستخدم هذه الدالة لإستخراج تاريخ و وقت النظام الحاليين.

Now()
و تكون النتيجة بالشكل التالي:
15-03-2017 10:18:15

Time:

تستخدم هذه الدالة لإستخراج وقت النظام الحالي.

Time()
و تكون النتيجة بالشكل التالي:
10:18:15

Timer:

تستخدم هذه الدالة لإستخراج عدد الثواني منذ منتصف الليل.

Timer()

MonthName:

تستخدم هذه الدالة لإرجاع اسم الشهر المحدد .

MonthName(«اختصار», «شهر»)
MonthName(3,True)="مارس"
MonthName(8)="أوت"

TimeSerial:

تستخدم هذه الدالة لإرجاع متغير من نوع تاريخ يحتوي على الوقت لساعة و دقيقة و ثانية محددة.

TimeSerial(«ثانية», «دقيقة», «ساعة») 
TimeSerial(10, 56, 13)=10:56:13 

Weekday:

تستخدم هذه الدالة لإرجاع متغير "عدد صحيح" يمثل رقم اليوم في الأسبوع.

Weekday(أول أيام الأسبوع, التاريخ) 
Weekday("15/3/2017", vbSunday)=4

WeekdayName:

تستخدم هذه الدالة لإرجاع اسم اليوم المحدد من الأسبوع.

WeekdayName(«أول أيام الأسبوع», «اختصار», «يوم من الأسبوع») 
WeekdayName(3, True, vbSunday)="الثلاثاء"

و هذه هي القيم المستعملة لتحديد أول أيام الأسبوع:

vbUseSystem  سيتم استخدام إعدادات النظام

vbSunday  يمثل يوم الأحد

vbMonday  يمثل يوم الاثنين

vbTuesday  يمثل يوم الثلاثاء

vbWednesday  يمثل يوم الأربعاء

vbThursday  يمثل يوم الخميس

vbFriday  يمثل يوم الجمعة

vbSaturday  يمثل يوم السبت

تم تعديل بواسطه صالح حمادي
  • Like 8

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • اضف...

Important Information