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

إنشاء دروس VBA أكسس


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

كل الشكر و التقدير للاستاذ صالح حمادي و الاستاذ جعفر على هذا المجهود :fff:

 

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

  • Like 2
رابط هذا التعليق
شارك

9 دقائق مضت, يوسف أحمد said:

كل الشكر و التقدير للاستاذ صالح حمادي و الاستاذ جعفر على هذا المجهود :fff:

 

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

جزانا الله و إياك كل خير أستاذ يوسف.

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

  • Like 1
رابط هذا التعليق
شارك

4 ساعات مضت, صالح حمادي said:

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  يمثل يوم السبت

 

ياسلام على الشرح السهل المرن المباشر .... بارك الله فيك اخي صالح :fff::fff::fff::fff::fff::fff:

لقد قراءت كثيرا من شروحات اكواد VB 

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

لدي اقتراح 

ان يتم جمع كل ماتفضلت به في كتاب يثبت في المنتدى 

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

لك تمنياتي بكل التوفيق

متعك الله بالصحة والعافية 

  • Like 4
رابط هذا التعليق
شارك

وكانك .... او كان الموضوع جاء في الوقت المناسب أو اني جئت في الموعد

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

وها اني كلي اذان صاغية ومحدق البصر في كل حرف تكتبوه اساتذتنا .... اقبلوني في سفينة الاكسس.

رابط هذا التعليق
شارك

مرحبا بك معنا يا ابن الأوراس أو الهضاب العليا.

12 ساعات مضت, رشراش said:

الحق كنت خائف....

لم نعهد على أبناء محاربي الصحراء الخوف.

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

  • Like 3
رابط هذا التعليق
شارك

  • 1 month later...

الدرس الثامن: دوال الرسائل

 

هذا الدرس مخصص لشرح دوال الرسائل:

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

 MsgBox (سياق, ملف التعليمات, العنوان, أزرار , النص)

النص: (مطلوب) هو نص الرسالة التي ستعرض في مربع الحوار

أزرار: (اختياري) هو تعبير رقمي يحدد نوع الازرار التي يجب ان تعرض

العنوان: و يمثل عنوان مربع الحوار

ملف التعليمات:(اختياري) تعبير سلسله يعرف ملف التعليمات لتوفير تعليمات تتبع للسياق لمربع الحوار. اذا تم توفير ملف التعليمات ، يجب ايضا توفير سياق .

سياق: (اختياري) تعبير رقمي يمثل رقم محتوي التعليمات المعينه الي موضوع "التعليمات" الملائمه حسب الكاتب التعليمات. اذا تم توفير سياق ، يجب ايضا توفير ملف التعليمات .

وضعيات الوسيطة أزرار:

 
 

0

عرض زر موافق فقط.

 

1

عرض الأزرار موافق و إلغاء الأمر .

 

2

عرض الأزرار إحباط + حاول مره أخري + تجاهل .

 

3

عرض الأزرار نعم + لا + إلغاء الأمر .

 

4

عرض الأزرار نعم + لا .

 

5

عرض الأزرار إعاده المحاولهإلغاء الأمر .

 

16

عرض أيقونة رساله هامه .

 

32

تعرض أيقونة التحذير و الإستعلام    .

 

48

عرض رمز رساله تحذير  .

 

64

عرض رمز رساله معلومات.

 

0

الزر الأول هو الإفتراضي.

 

256

الزر الثاني هو الإفتراضي.

 

512

الزر الثالث هو الإفتراضي.

 

768

الزر الرابع هو الإفتراضي.

     
 

4096

نظام مشروط؛ يتم تعليق كافه التطبيقات حتي يستجيب المستخدم ل# مربع الرساله.

 

16384

إضافه الزر تعليمات إلي مربع الرساله

 

65536

يحدد إطار مربع الرساله كإطار المقدمه

 

524288

تتم محاذاه النص لليمين

 

1048576

يحدد يجب أن يظهر النص اليمين إلي اليسار للقراءه علي الأنظمه العربيه

 

مثال:

MsgBox "السلام عليكم", 3, "مرحبا"

InputBox:  يعرض مطالبة في مربع حوار و تنتظر قيام المستخدم بإدخال نص أو النقر فوق زر، و ترجع سلسلة تحتوي علي محتويات مربع النص.

InputBox(«افتراضي»; «العنوان»; «مطالبة»; «xpos»; «ypos»; «helpfile»; «context») 

مطالبة : (مطلوب) عرض الرسالة في مربع الحوار

العنوان: (اختياري) و يمثل عنوان مربع الحوار

افتراضي: (اختياري) . عرض النص الإفتراضي في مربع النص. إذا حذفت الإفتراضي، يتم عرض مربع النص فارغ.

xpos: (اختياري). تعبير رقمي يحدد، بوحده التويب المسافة الأفقية بين الحافة اليمني لمربع الحوار من الحافة اليسري للشاشة.

ypos: (اختياري) تعبير رقمي يحدد، بوحده التويب، المسافه العمودية بين الحافة العلوية لمربع الحوار من أعلي الشاشة.

ملف التعليمات:(اختياري) تعبير سلسله يعرف ملف التعليمات لتوفير تعليمات تتبع للسياق لمربع الحوار. اذا تم توفير ملف التعليمات ، يجب ايضا توفير سياق .

سياق: (اختياري) تعبير رقمي يمثل رقم محتوي التعليمات المعينه الي موضوع "التعليمات" الملائمه حسب الكاتب التعليمات. اذا تم توفير سياق ، يجب ايضا توفير ملف التعليمات .

مثال:

Dim str As String
str = InputBox("ادخل اسمك", "الاسم")

 

تم تعديل بواسطه jjafferr
  • Like 8
رابط هذا التعليق
شارك

10 ساعات مضت, SAROOK said:

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

تلمس وبشدة  مايريده الطلاب المبتدئون وانا منهم 

جزاك الله عنا خيرا

الله يحفظك أخي

10 ساعات مضت, king5star said:

تسلم اخى @صالح حمادي لقد قمت بانزالها وحفظها لدى فى ملف وبرجع اليها دائماً برجاء تكملة باقى الدروس :fff: .

إن شاء الله. الله يكون في عوننا على تكملة باقي الدروس

  • Like 1
رابط هذا التعليق
شارك

  • 1 month later...

الدرس التاسع: دوال الرياضيات

 

السلام عليكم. نعود بعد مدة من الإنقطاع لنكمل ما بدأناه من هذه الدروس.

هذا الدرس مخصص لشرح دوال الرياضيات:

Abs: تستخدم هذه الدالة من أجل استخراج القيمة المطلقة لعدد.

Abs(«رقم») 
Abs(-10)=10 
Abs(10)=10 

Cos: تستخدم هذه الدالة لاستخراج جيب تمام الزاوية.

Cos(«الزاوية»)
pi = 3.14159265358979
Cos(pi/3)=0.5

ملاحظة: قيس الزاوية يكون بالراديان

3.14159265358979 rad = 180°

Sin: تستخدم هذه الدالة لاستخراج جيب الزاوية.

Sin(«الزاوية») 
pi = 3.14159265358979
Sin(pi/6)=0.5

Tan: تستخدم هذه الدالة لاستخراج ظل الزاوية.

Tan(«الزاوية») 
pi = 3.14159265358979
Tan(pi/4)=1 

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

Exp(«رقم»)
Exp(10)=22026.4657948067

Int: تستخدم هذه الدالة لاستخراج الجزء الصحيح من عدد.

Int(«رقم») 
Int(4.51) =4

Sqr: تستخدم هذه الدالة لحساب الجذر التربيعي لعدد.

Sqr(«رقم») 
Sqr(16)=4 

Log: تستخدم هذه الدالة لحساب اللوغاريتم الطبيعي لعدد.

Log(«رقم») 
Log(10)=2.30258509299405

Rnd: تستخدم هذه الدالة لتوليد رقم عشوائي من نوع مفرد.

Rnd(«رقم») 
Rnd(2)=0.7671117
Rnd(2)=0.05350453

Round: تستخدم هذه الدالة لتقريب عدد عشري إلى عدد محدد من الفواصل العشرية.

Round(«الدقة», «الرقم») 
Round(12.364,1)=12.4
Round(12.364,2)=12.36

Sgn: تستخدم هذه الدالة لإرجاع عدد صحيح يشير إلى رقم العدد.

بحيث: يعيد 1 إذا كان العدد أكبر من الصفر (0)

يعيد 0 إذا كان العدد يساوي الصفر (0)

يعيد -1 إذا كان العدد أصغر من الصفر (0)

Sgn(«رقم») 
Sgn(12)=1
Sgn(0)=0
Sgn(-3)=-1

Fix: تستخدم هذه الدالة لإرجاع الجزء الصحيح لعدد.

Fix(«رقم») 
Fix(12.56)=12

 

  • Like 6
رابط هذا التعليق
شارك

  • 4 months later...

الدرس العاشر: دوال تجميع المجال

 

هذا الدرس مخصص لشرح دوال تجميع المجال:

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

DAvg(field, table, condition) 
field: اسم الحقل المراد حساب قيمته المتوسطة
table: اسم الجدول الذي به الحقل
condition: الشروط أو المعايير و هي اختيارية و ليست ضرورية

DCount: تستخدم هذه الدالة لحساب عدد الجلات في جدول معين.

DCount(field, table, condition) 

DFirst: تستخدم هذه الدالة لاستخراج السجل الأول في جدول معين.

DFirst(field, table, condition) 

DLast: تستخدم هذه الدالة لاستخراج السجل الأخير في جدول معين.

DLast(field, table, condition) 

DLookUp: تستخدم هذه الدالة لاستخراج قيمة حقل معين من جدول ما.

DLookUp(field, table, condition) 

DMax: تستخدم هذه الدالة لاستخراج القيمة القصوى لحقل معين في جدول ما.

DMax(field, table, condition) 

DMin: تستخدم هذه الدالة لاستخراج القيمة الدنيا لحقل معين في جدول ما.

DMin(field, table, condition) 

DStDev: تستخدم هذه الدالة لاستخراج الانحراف المعياري لمجموعة سجلات بحقل معين في جدول ما.

DStDev(field, table, condition) 

DSum: تستخدم هذه الدالة لحساب مجموع قيم مجموعة سجلات بحقل معين في جدول ما.

DSum(field, table, condition) 

 

  • Like 4
  • Thanks 1
رابط هذا التعليق
شارك

الدرس الحادي عشر: جمل SQL

 

هذا الدرس مخصص لشرح جمل SQL:

Create: نستخدم هذه الجملة لإنشاء جدول جديد و طريقة كتابة الجملة كالتلي:

Create Table table_name (field1 type_field, field2 type_field); 
table_name : اسم الجدول المراد إنشاؤه 
field1, field2 ....: أسماء الحقول
type_field : نوع الحقل

مثال : الكود التالي يقوم بإنشاء جدول اسمه salah و به حقلين id و nname

Dim req As String
req = "create table salah (id integer, nname string(12));"
DoCmd.RunSQL req

نستخدم الكود Docmd.RunSQL من أجل تنفيذ جمل SQL

 

Drop: نستخدم هذه الجملة لحذف جدول معين و طريقة كتابة الجملة كالتلي:

Drop Table table_name; 
table_name : اسم الجدول 

مثال : الكود التالي يقوم بحذف جدول اسمه salah

Dim req As String
req = "Drop Table salah;"
DoCmd.RunSQL req

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

Alter Table table_name Add Column new_field type_field; 
table_name : اسم الجدول 
new_field: اسم الحقل الجديد
type_field: نوع الحقل الجديد

مثال1 : الكود التالي يقوم بإضافة حقل جديد اسمه adress في جدول salah

Dim req As String 
req = "Alter Table salah Add Column adress string;" 
DoCmd.RunSQL req

مثال2 : الكود التالي يقوم بحذف حقل اسمه adress في جدول salah

Dim req As String 
req = "Alter Table salah Column Drop adress;" 
DoCmd.RunSQL req

Select: نستخدم هذه الجملة لاستخراج مجموعة سجلات من جدول معين (استعلام) و طريقة كتابة الجملة كالتلي:

Select * table_name Where condition; 
table_name : اسم الجدول 
*: تعني اظهار جميع الحقول و يمكن كتابة بعض الحقول في مكانها
condition: الشرط الذي يوضع لاستخراج السجلات

مثال : الكود التالي يقوم بإستخراج السجل الذي رقمه (ID) يساوي 3 في جدول salah

Dim req As String
req = "select * from salah where id=3;"
Me.RecordSource = req

السطر الأخير معناه نجعل مصدر السجلات لنموذج الحالي هو الاستعلام req

 

Delete: نستخدم هذه الجملة لحذف مجموعة سجلات من جدول معين و طريقة كتابة الجملة كالتلي:

Delete table_name Where condition; 
table_name : اسم الجدول 
condition: الشرط الذي يوضع لاستخراج السجلات

مثال : الكود التالي يقوم بحذف السجل الذي رقمه (ID) يساوي 3 في جدول salah

Dim req As String
req = "Delete From salah where id=3;"
DoCmd.RunSQL req

Insert: نستخدم هذه الجملة لإضافة  سجل جديد إلى جدول معين و طريقة كتابة الجملة كالتلي:

INSERT INTO table_name ("column1", "column2", ...) VALUES ("value1", "value2", ...) 

مثال : الكود التالي يقوم بإضافة سجل جديد لجدول salah

Dim req As String 
req = "insert into salah1 (id, nname) values (11,'أوفيسنا');" 
DoCmd.RunSQL req

Update: نستخدم هذه الجملة لتغيير قيمة سجل في حقل معين لجدول ما و طريقة كتابة الجملة كالتلي:

Update table_name Set field='value' Where condition;

مثال : الكود التالي يقوم بتعديل قيمة الحقل nname إلى 'محسن' في السجل الذي رقمه (id) 3 بالجدول salah

Dim req As String 
req = "update salah set nname='محسن' where id=3;"
DoCmd.RunSQL req

 

  • Like 7
رابط هذا التعليق
شارك

  • 2 months later...
  • 4 months later...

السلام عليكم اخوانى وجدت هذه معلومات جيدة فاحببت ان تكون ضمن هذه المكتبة لتعم الفائدة .

الطريقة الصحيحة لاستخدام الشروط :

ان الإستعلامات حساسة جدا لقبول اي صيغة وعند وضع الدوال في تعبير يجب التقيد بشروط معينه

مثلا اذا كان الحقل رقمي Numerical ( اي انه في الجدول نوعه رقم ) فيجب ان يوضع في إستعلام بين علامتي تنصيص بهذه الطريقة "[iD]"

مثل

 

 
"[ID]<=" & [ID]

 

لاحظ علامتي التنصيص فهي تخص فقط الحقل الأول وبعدها نضع حرف & لكي نسند القيمة سواء المساواه او اصغر من او اكبر من الى نفس الحقل سواء في الجدول او النموذج

مثال لأي دالة من دوال المجال التجميعي

 

 
DLookup("[FieldName]"; "TableName"; "[FieldName] =" & [FieldName])

 

لاحظ علامتي التنصيص المزدوجه " " للحقل الرقمي حيث تم وضع اول علامة تنصيص للحقل الرقمي الأول ثم علامة = ثم علامة تنصيص مزدوجه " ثم & ثم الحقل الرقمي الثاني

حسنا ماذا لو كان الحقل نصي Strings ( اي ان الحقل في الجدول نوعه نص ) فيجب ان يوضع في الإستعلام بين ثلاث علامات تنصيص بهذه الطريقة "'[NAME]"'

مثل

 

 
"[NAME]<=' & [NAME] & ' "

 

لاحظ كيف اختلف التعبير عن الحقل الرقمي في الكود العلوي حيث تم اضافة عدد اثنين & بعد الفاصلة العلوية الثالثة لحقل الإسم الأول حيث يجب وضع حقل الإسم الثاني بين علامتي تنصيص مفرده ' ' اما علامتي التنصيص المزدوجة " " فهي خاصة لحقل الإسم الأول

مثال لأي دالة من دوال المجال التجميعي

 

 
DLookup("[FieldName]"; "TableName"; "[FieldName] =' " & [FieldName] & " ' ")

 

لاحظ في الكود ترتيب علامات التنصيص سواء المزدوجة او المفرده فأول علامة تنصيص مزدوجه لحقل الإسم الأول يجب ان يغلق بعلامة تنصيص مفرده ' بعد علامة = فهذه اول ثلاث علامات تنصيص ' " للحقل الأول ثم نضع علامة تنصيص مزدوجه " للحقل الثاني لأنه نصي ثم نضع & ثم نضع حقل الإسم الثاني ثم نضع & ثم نغلق علامة التنصيص المزدوجه " للحقل الثاني ثم نغلق علامة التنصيص المفرده ' لحقل الإسم الأول ثم نغلق كامل الجملة بعلامة تنصيص مزدوجة " وهي خاصة بحقل الإسم الأول

حسنا ماذا لو كان الحقل من نوع تاريخ DATE ( يعني في الجدول نوعه تاريخ / وقت ) فيجب ان يوضع بين بين علامتي شبكة #[DATE]#

مثل

 

 
"[DATE]<=#" & [DATE] & #"

 

مثال لأي دالة من دوال المجال التجميعي

 

 
DLookup("[FieldName]", "TableName", "[Date]=#" & [Date] & "#")

 

لاحظ كيف تم استخدام علامات التنصيص المزدوجه " وعلامتي الشبكه #

حسنا ماذا لواردنا تجميع كل هذه المعايير حقل رقمي Numerical و حقل نصي Strings و حقل تاريخ Date في دالة واحده فيجب ان نكون حريصين جدا في وضع علامات التنصيص لكل حقل حتى لا نحصل على اخطاء

مثال لأي دالة من دوال المجال التجميعي

 

 
DLookup("[FieldName]", "TableName", "[FieldNumerical] = " & [FieldNumerical] & " AND [FieldString]  = '" & [FieldString] & "'" & " AND [FieldDate]  = #" & [FieldDate]& "#" )

 

اتمنى ان اكون قد القيت بعض الضوء على استخدام هذه المعايير واستخدامها

 

المصدر للاستاذة الجليلة زهره

 

  • Like 2
رابط هذا التعليق
شارك

  • 3 years later...

يالله

كنز والله

اشكر جميع من شارك

وخصوصا للاخ صالح حمادي عراب الموضوع  والمبدع والمعطي دوما بأمر الله

وايضا الاخ جعفر وجميع من ساهم

 

 

ما ادهشني حقا أن دوال SQl  هي نفسها المستخدمة في PHP  وبالتالي اتوقع اغلب لغات البرمجة

وهذا يسهل للمبرمج التنقل بين لغات البرمجة

 

جزاكم الله عنا خيرا دوما وأبدا

تم تعديل بواسطه عبدالله 760
خطأ املائي
رابط هذا التعليق
شارك

في ١٥‏/١‏/٢٠٢٢ at 18:24, عبدالله 760 said:

ما ادهشني حقا أن دوال SQl  هي نفسها المستخدمة في PHP  وبالتالي اتوقع اغلب لغات البرمجة

السلام عليكم أخي

لغة SQL هي لغة موحدة لمخاطبة قواعد البيانات في جميع لغات البرمجة

رابط هذا التعليق
شارك

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