بحث مخصص من جوجل فى أوفيسنا
![]()
Custom Search
|
نجوم المشاركات
Popular Content
Showing content with the highest reputation on 11/08/19 in مشاركات
-
السلام عليكم ورحمة الله اخواتى واساتذتى لقد رأيت ان اشرح طريقة عمل ايقونة بطريقة بسيطة باستخدم خيارات الاكسس .. فقمت بشرحها على اليوتيوب لكي يستفيد منها كل الاعضاء المبتدئين وانا اعرف المنتدي غنى بمثل تلك المشاركة وبطرق مختلفة https://youtu.be/jav3HFmrbEE3 points
-
3 points
-
سيدي الفاضل ، ما قدرت اخلي التحديث اسرع من هاي 🙂 واذا السرعة عجبتك ، اخبرك كيف تجعلها اسرع ان شاء الله 🙂 جعفر 1134.jjafferr.accdb.zip2 points
-
اذا البرنامج بصيغة mdb او mde ، فنعم في برامج لفك كلمة السر ، ولكن لا يوجد برنامج لفك كلمة السر للبرامج بصيغة accdb او accde ، فكل البرامج عندها محاولات لفك كلمة السر ، كما ذكرت في الرابط اعلاه 🙂 والحكم الانترنت ، ابحث ، وبتشوف النتائج 🙂 جعفر2 points
-
يسعدني ان اكون أول من يعلق على هذا العمل الجميل فبارك الله فيك هذه الطريقة مفيدة في عمل التنبيهات المرئية . أخي الكريم بالنسبة للمثال فإن خانة الوقت يوجد بجانبها منتقي التوايخ وهو لاعلاقه له بالوقت وهذا يمكن إزالته من خصائص مربع النص نفسه ثانياً هل يمكنك تطوير الفكرة وذلك بجعل وقت الحجز يكون من وقت كذا الى وقت كذا فإن تم اختيار وقت يقع ضمن الوقت المحجوز فإنه يظهر باللون الأحمر2 points
-
2 points
-
السلام عليكم و رحمة الله تعالى وبركاته أساتذة و خبراء منتدانا الغالي حياكم الله أردت أن أنجز عمل بمعيتكم الكريمة . و هو إنجاز سلسلة دروس في vba الأكسس لتقوم إدارة المنتدى من بعد ذلك بتثبيت هذا الموضوع ليطلع عليه كل من يريد التعلم و يبقى صدقة جارية لكل من ساهم فيه و لو بحرف واحد. العمل سوف يقسم إلى مجموعة دروس مثلا : المتغيرات ,الجمل الإختيارية , الجمل التكرارية , الكائنات ......الخ. و سوف نحاول شرح جميع دوال و تعليمات VBA أكسس الموجودة مع إعطاء أمثلة في نهاية كل درس. على أن يتم تجميعه في الأخير مرتبا حسب تسلسل الدروس و لا يتم الإنتقال من درس لآخر حتى نستوفي كل ما نستطيع حول هذا الدرس. العمل المطلوب: كلما نبدأ في درس جديد. يقوم الأساتذة الكرام بتقديم الدوال و التعليمات التي تندرج تحت عنوان هذا الدرس و تقديم شرحها مع وضع مثال بسيط لإستعمال الدالة أو التعليمة على أن لا يتم تكرار الدوال و التعليمات الموجودة مسبقا في الدرس من قبل أحد الأعضاء. و قبل البدء أنتظر إقتراحاتكم فيما يخص طريقة العمل أو ترتيب دروس و عناوينها. و إن شاء الله غدا أو بعد غد سوف نبدأ بالعمل على بركة الله.1 point
-
السلام عليكم و رحمة الله تعالى و بركاته أقدم لكم اليوم مرفقا يقوم بإضافة كلمة مرور جديد لملف الأكسس أو تعديل كلمة مرور قديمة أو حذفها نهائيا. 1- لإضاف كلمة مرور جديدة يجب ترك مربع كلمة السر القديمة فارغا و كتابة الكلمة الجديدة فقط ثم الضغط على زر الأمر 2- لتعديل كلمة المرور نكتب الكلمة القديمة و نكتب الكلمة الجديدة ثم الضغط على زر الأمر 1- لحذف كلمة المرور نكتب الكلمة القديمة ونترك مربع كلمة السر الجديدة فارغا ثم الضغط على زر الأمر و قد استخدمة هذه الوحدة النمطية: Public Function ChangePassword(path_file As String, Old_Password As String, New_Passwod As String) On Error GoTo err Dim odb As DAO.Database Set odb = DBEngine.OpenDatabase(path_file, True, False, ";pwd=" & Old_Password) odb.NewPassword Old_Password, New_Passwod MsgBox "لقد تم تغيير كلمة المرور بنجاح" fin: Set odb = Nothing Exit Function err: Select Case err.Number Case 3031 MsgBox "كلمة المرور غير صحيحة", vbCritical, "Sécurité" Case Else MsgBox err.Description, vbCritical, "Erreur No." & err.Number End Select Resume fin End Function و قمت بإستدعائها من خلال هذا الكود: Call ChangePassword(Me.txtpath1, Nz(Me.OldMot, ""), Nz(Me.NewMot, "")) تغيير كلمة السر برمجيا.rar1 point
-
السلام عليكم ورحمة الله تعالى وبركاته اتمنى ان تكونو بصحة جيدة الموضوع ببساطة هو التحكم بقاعدة البيانات اونلاين ( قفل & فتح ) الشرح جعلت قاعدة البيانات تقرأ بيانات التفعيل اونلاين لا تقلقو لن نحتاج الى استضافة او ما شابه فقط ملف نصى به بيانات التفعيل بيانات التفعيل كالتالى حالة الترخيص ك منتهى او نشط الرسالة : احددها كما اشاء اكتب بها ما اريد ان اخبر به العميل الترخيص من الفترة كذا الى الفترة كذا طبعا يا جماعة الموضوع مشاركة لافكاركم فى هذا المجال حتى ننميه انا مش هنزل الاكواد الا لما تعصورو دماغكم من التفكير وتقولولى نستغل الموضوع دا ازاى طبعا من مميزات الموضوع دا اننا هنتحكم بقاعدة البيانات تفتح عن العميل او لا بدون كود تفعيل بقى او وقت محدد كل دا انا اللى هحدده مثلا ممكن نعمل قاعدة بيانات تانية تتحكم فى ملفات التكست اللى عندك كمبرمج الخاصة بكل نسخة من البرامج اللى ابيعها يعنى قاعدة البيانات دى هسجل فيها كل البيانات الخاصة بتفعيل البرامج اللى ابيعها وهى تعرفنى بقى البرامج اللى قربت تنتهى والبرامج اللى عاوزة تتفعل وهكذا بجد شاركونا بافكاركم وانا ان شاء الله هنزل قواعد البيانات مفتوحة المصدر اغلاق وفتح اونلاين ACCDE.rar اغلاق وفتح اونلاينMDB.rar1 point
-
1 point
-
مرحبا أخي الهدف هو التعلم و الإستفادة من بعضنا البعض و سوف توضع المرفقات مفتوحة إن شاء الله لكن نريد التجربة و رؤية الملاحظات أولا ثم نضع الملف1 point
-
أخي لا يمكن أن أبخل على نهر أشرب منه دائما أنا الذي له الشرف عزيز فأنت صاحب الموضوع و صاحب الفكرة أنا أخذت منك الفكرة و إجتهدت على تطبيقها بطريقة الخاصة. لا أدري ربما تكون نفس الأكواد التي استعملته أنت و ربما لا و رغم ذلك تبقى أنت السيد يا سيد لكن كما يقول الأستاذ @jjafferr دائما نعود للبرنامج: يعتمد البرنامج على رقم النسخة و قد وضعت مربع نص لكتابة رقم النسخة لكن لما نكون في برنامج فعلي راح نخليه يقرأ رقم النسخة تلقائيا كل ما عليك فعله هو ادخال رقم من 1000 الى 1005 أنا وضعت 6 أرقام فقط ثم. تضغط على استيراد و سوف تلاحظ النتائج جرب غير في كل مرة رقم و لاحظ الفرق. بعيدن خبرني راح أغير الرسائل لإتمام تجربة البرنامج و أتمنى من الجميع التجربة active file.rar1 point
-
استاذي القدير @ابا جودى لم افهم ما الغرض من ذلك المثال ؟؟ فهو يقرأ رقم الـ UUID ومن ثم يشفره ويتغير التشفير في كل مرة نضغط على نسخ .. ما الغرض من ذلك؟1 point
-
الف الف الف شكر اخي واستاذي ومعلمي الاستاذ jjafferr نعم هذا مرة ممتاز بارك الله فيك وجعلها في ميزان حسناتك1 point
-
بارك الله فيك كان ودي اخدمك الحمدلله انك وجدت الجواب الشافي عند استاذنا الحبيب جعفر تحياتي اليك يالغالي1 point
-
لا تتعب نفسك اخوي ابو زاهر ما عندي برنامج اريد اعرف الرقم السر له انا فقط اريد التأكد هل هناك برامج فعلا تكشف كلمة سر لملف من نوع Accdb و Accde1 point
-
1 point
-
تفضل يمكنك استخدام هذه المعادلة =IF(G7="","",VLOOKUP(G7,$A$1:$B$150,2,0)) تغيير الرقم 1لنص.xlsx1 point
-
1 point
-
1 point
-
حبيبي أبا جودي بما ان الاسطر تضاف برمجيا فيجب إبقاء بعض هامش الصفحة من الأسفل عند المعاينة تظهر الورقة طبيعية لكن عند الطباعة يتجاوز حجم الورقة فيعطي صفحات متعددة ولا يتم طباعة البيانات انظر المرفق اطبع ووافني بالنتيجة Consumable Material Check List (30).rar1 point
-
بالنسبة الى ارسال البيانات من الاستعلام الى الوحدة النمطية ، فتكون هكذا: A: myFunction([G1],[R1],K1,[T1],[G2],[R2]....) وفي الوحدة النمطية تستقبل هذه البيانات بنفس عدد المتغيرات ، هكذا: public function myFunction(G1,R1,K1,T1,G2,R2....) جعفر1 point
-
اليك هذا الماكرو جربه لعله ما تريد Sub test3() Dim rng Dim c, r, x Application.ScreenUpdating = False Set rng = Range("c2") r = 5 x = 0 For c = 5 To 1000 If rng = 0 Or rng = "" Then Range("c2") = "": Exit Sub Range("a" & r) = 1 + x x = Range("a" & r) + 1 - 1 r = r + 1 rng = rng - 1 Next Application.ScreenUpdating = True End Sub1 point
-
1 point
-
1 point
-
شوف هذا Dim db As DAO.Database Dim rs As Recordset Set db = CurrentDb Set rs = db.OpenRecordset("t2") If DCount("*", "t2", "[nume]='" & Me.nume & "'" & "AND [xdate]=#" & Format(Me.xdate, "yyyy/mm/dd") & "#") > 0 Then MsgBox " الاسم مكرر ", vbExclamation, " : خطــــــــأ " Exit Sub Else rs.AddNew rs!sr = Me.sr rs!xdate = Me.xdate rs!nume = Me.nume rs!xpart = Me.part rs.Update rs.Close db.Close MsgBox " تم الترحيل بنجاح ", vbInformation, " : رسالة " End If عدم التكرار (1).accdb1 point
-
وعليكم السلام استاذي الفاضل نعم لقد جربت ونجح معي راح ادور عليه ان شاء الله اجده تحياتي1 point
-
1 point
-
أستاذنا الفاضل ا/ حسين مامون شكرا لمجهودك واود الا ان اكون اثقلت على حضرتك لقد تم المطلوب بفضل مجهودكم وشكرا لسعة صدركم1 point
-
لا وجه للمقارنة أستاذنا jjafferr .. فلا فتوى ومالك بالمدينة .. 😍1 point
-
لاثراء الموضوع هذه المعادلة في الخلية C7 Ctrl+Shift+Enter =IFERROR(INDEX(Sheet1!$D$2:$D$100,SMALL(IF(Sheet1!$D$2:$D$100<>"",IF($A7&"*"&C$5=Sheet1!$B$2:$B$100&"*"&Sheet1!$A$2:$A$100,ROW($A$2:$A$100)-ROW($A$2)+1)),COUNTIF($A$7:$A7,$A7))),"")1 point
-
أ.اسلام سيد للأسف لم أتمكن من حل مشكلة الإخفاء التام لباقى العناصر عدا الجداول ولكن يمكنك الحماية التقليدية بعمل كلمة سر قوية لمحرر الأوامر وكذلك لقاعدة البيانات مع تحويلها الى accde لمنع إستيراد النماذج والتقارير إذا تم كسر كلمة السر والمرفق يقوم بإخفاء الجداول والجداول المرتبطة بأكسيس و SQL بما لا يمكن إظهاره بخيارات الأكسيس .. أما باقى العناصر فإنها تظهر ولى رأى فى هذا الموضوع .. فإن من يكسر كلمات السر لقاعدة البيانات و محرر الأوامر لن يعجزه إظهار جميع العناصر بما فيها الجداول أمّن مشروعك قدر المستطاع وأتركها لله بالتوفيق HideUnHide.zip1 point
-
ايه رأيك يا استاذى الجليل ومعلمى القدير الاستاذ @SEMO.Pa3x أن يتم إرسال ذلك اولا للعميل بدلا من ملف VBS HWND.zip1 point
-
جرب الملف المرفق بعد إضافة دالة IF على المعادلة.... الغياب دالة البحث.xlsm1 point
-
العفو أخي جعفر. في بعض الأوقات يصيبني الفشل لأن العمل يأخذ مني وقتا في الجمع و الترتيب لكن وقوفك إلى جانبي هو سند كبير لي جزيت خير الجزاء. فاللهم علمنا ما ينفعنا و أنفعنا بما علمتنا يا أرحم الراحمين يا رب العالمين1 point
-
شكرا جزيلا اخي صالح تسلم ايدك على هذا العمل ، والواقع ان العمل مو سهل ، انا اشتغلت على جزء واحد واعرف الصعوبة وعندي أضافات سأعمل عليها ان شاء الله جعفر1 point
-
الدرس الخامس: استعمال الرموز إن استعمال الرموز و الأحرف لها دور كبير و لا يمكن الإستغناء عليه في جميع لغات البرمجة. و يختلف دور الرموز حسب موقعها في الكود و سنحاول ذكر ما نستطيع ذكره في هذا الدرس و أتمنى من الإخوة أن يكملوا ما عجزت عن ذكره. الفاصلة , تستخدم الفاصلة بشكل واسع في اكواد 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^41 point
-
الدرس الرابع: الحلقات التكرارية أو الدورانية 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)1 point
-
الحمد لله نحن نشترك في هذا الأمر و أنا أيضا لم ادرس البرمجة و لكن تعلمت الخورزميات وحدي بالمطالعة فهي أساس البرمجة ثم مارست لغة الفجوال بسيك قليلا قبل الإنتقال إلى الأكسس و الآن أنا أتعلم الدلفي إلى جانب الأكسس هذا كله هواية للبرمجة. مع العلم أن إختصاصي مختلف تماما و هو "ماستر هندسة كهربائية"1 point
-
شكرا أخي صالح في الواقع انا لم ادرس البرمجة (نعم مادة الفورتران في بداية دراستي الجامعية) ، ولم ادخل في تدريب ، وحتى ما عندي رخصة سواقة الحاسوب وانما كل الذي عندي من تجارب عملية ، لذلك ترى الفرق واضح من طريقة عرضك للموضوع ، وطريقة عرضي جعفر1 point
-
الــدرس الرابع: الجملة الشرطية ( 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")))))) . هكذا . 2. اذا عندنا سجلات الصف الاول والثاني ، واردنا معرفة عدد الطلاب لكل صف: iif([Section]= "A" ; 1;0) وهكذا تكون في الاستعلام: 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 ونرسل لها ارقام الاشهر ، هكذا . والنتيجة1 point
-
السلام عليكم أخي صالح إطراء وتعقيب: الموضوع متكامل ، والتنسيق رائع والشئ الوحيد الذي لم تشر اليه هو (مأخوذ من برنامج الاكسس) ، هو خلط المتغير Expression Case 9, 11, 13 و Case 1 To 4, 7 To 9, 11, 13 . ومع ان تشبه الدالة Select Case إلى حد كبير الدالة If ، إلا ان المبرمجين المحترفين يفضلون استخدام Select Case على If جعفر1 point
-
الدرس الثالث: الدالة 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 إلى 301 point
-
ماشاء الله عليك اخوي صالح ، كفيت ووفيت ، وما بقيت لي شئ اكتبه التنسيق: وذلك بإستخدام زر الـ Tab (لتحريك السطر Indenting) ، و زر Enter (للإنتقال الى السطر التالي) تنسيق وتجميع مجموعات اللـ IF مهم ، وكلما كان تنسيقك افضل ، كلما قلّت اخطاءك ، وكلما استطعت الوصوت للخطأ بسرع في الصور كود لبرنامج أحد الاعضاء (واعتذر مسبقا من صاحب الاكواد) ، لاحظ طريقة عرض الكود ، بدون تنسيق ، وصعوبة معرفة بداية ونهاية الشرط IF : قبل التنسيق وسهولة القراءة بعد التنسيق . اما الكود التالي ، فذكرني بالكاريكاتير "ابحث عن فضولي" ، وهنا نبحث عن بداية ونهاية الشرط IF : . وتم تعديل التنسيق (تغيير الكود هو للتوضيح) الى: . هناك شيئين في التنسيق ، الاول: لاحظ انه من السهل معرفة بداية ونهاية كل شرط ، وحتى الشروط المتداخلة في الشرط الاصلي ، اصبح من السهل معرفة بدايتها ونهايتها ، ونافذة الكود تخبرنا 1: على اي سطر نحن (Line, Ln) ، و 2: في اي عمود (Column, Col) ، مما يساعدنا في عملية التنسيق . ثانيا: لاحظ اني عندما اقفل الجملة الشرطية End If ، فاني اكتب تعليق خلفها ، وهذا التعليق مأخوذ من جزء من بداية الشرط IF ، هذا يسهل عليّ كثيرا معرفة بداية ونهاية الجملة الشرطية: . جعفر1 point
-
اضفت بعض الملاحظات في مشاركتي الاولى: شو قصدك اخي صالح ، انا اعرف ان المتغيرات باللغة اللاتينية ، فرجاء اعطنا مثال لوسمحت جعفر1 point
-
أحد الشروط التي التزم بها دائما ، هي كتابة اسم متغير مفهوم وله معنى ، مثلا: File_Name او How_Many ، بحيث بعد مدة لما أرجع لتصحيح الكود ، افهم ما هو عمل المتغير. والمحترفين يذهبون إلى ابعد من هذا ، فبالاضافة إلى استعمالهم مسمى مفهوم المعنى ، فإنهم يسبقون الاسم بحروف تدل على ان المتغير رقم أو كلمات ، هكذا: للارقام: intRows او nColumns ، وللكلمات: strName. واستغرب من بعض المتغيرات المستعمله في كود معقد مثل: a او b !! جعفر1 point
-
طرق استعمالها: 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") . ويمكننا ان نجعل الكود لا يعمل إلا بتعريف المتغير ، وفي الواقع هذه صعبة في البداية ، ولكن في النهاية سيكون برنامجك افضل ، وهكذا نجعل الكود يفرض علينا استعمال المعرف: . . واهمية هذه الخطوة هي عندما تريد ان تحفظ البرنامج لاحقا بصيغة mde او accde ، فيجب عليك ان: . واذا كانت المتغيرات في الكود معرّفة ، فلن تحصل على اخطاء في التحويل جعفر1 point
-
على بركة الله نبدأ أول درس و ننتظر ملاحظاتكم حول أي شيء نسيته و هو متعلق بهذا الدرس أو أي معلومة أخطأت بها: الــدرس الأول : المتغيرات تعتبر المتغيرات النواة الأساسية أو حجر الأساس بالنسبة لكل برنامج في أي لغة برمجة كانت. يعني قبل البدأ يجب أن تقوم بتعريف المتغيرات التي تحتاجها و تحدد نوعها قبل كل شيء. 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 - - يجب عدم استعمال نقطة أو رمز خاص مثل ( ؟ ، * ، ) ، ( ، /......... إلخ ) ولكن يمكن استخدام الشرطة السفلية ( _ ) - - أن لا يكون اسم المتغير من الكلمات المحجوزة في الأكسس.1 point
-
يمكنك الاستفادة من هذا البرنامج فى الوصول الى طلبك قم بالتعديل عليه واعتقد انة يلبى طلبك برنامج العطاء للتقسيط - تصميم الاستاذ وليد1 point
-
السلام عليكم الاخ الحبيب/ محمدي ----حفظه الله اكرمك الله واثابك بمثل ما دعوت لي اضعاف مضاعفة تقبل تحياتي وشكري ======================= الاخ الحبيب/ ابو اسامة العينبوسي----حفظه الله سرني مرورك اكرمك الله تقبل تحياتي وشكري ======================= الاخ الفاضل/ yahia----حفظه الله في المرفق ستجد ما تريد تقبل تحياتي وشكري ======================= الاخ الفاضل/ عادل----حفظه الله وانت بالف خير تقبل تحياتي وشكري ======================= الاخ الفاضل/ safwat----حفظه الله في المرفق ستجد ما تريد ======================= الاخ الفاضل/ قصي----حفظه الله الله يكرمك اخي الصفحة الرئيسية هي موجودة في فايل معين وبرفقتها ملفات اكسل معينة( هما دول الملفات التي يتم فيها البحث) ======================================== الاخ الفاضل/ engineer.salah----حفظه الله سرني مرورك اكرمك الله تقبل تحياتي وشكري ======================================== في الصفحة الرئيسية اضفنا جدول يتم من خلاله التحكم في اعدادات البحث الملفات والاوراق ونطاق البحث تفضلوا المرفق بحث بفورم في عدة ملفات.rar1 point