بحث مخصص من جوجل فى أوفيسنا
![]()
Custom Search
|
نجوم المشاركات
Popular Content
Showing content with the highest reputation on 04/30/17 in all areas
-
الدرس الثامن: دوال الرسائل هذا الدرس مخصص لشرح دوال الرسائل: 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("ادخل اسمك", "الاسم")3 points
-
بسم الله الرحمن الرحيم السلام عليكم ورحمة الله وبركاته كل عام أنتم جميعا بخير أحبابي في الله اليوم موعدنا مع فيديو جديد للمتقدمين في الإكسل إلى عشاق التميز في التعامل مع نماذج إكسل يشرح كيفية تصغير نموذج الإكسل إلى شريط المهام إخفاء برنامج الإكسل Hide excel window إضافة زر تصغير للنموذج add minimize button to userform إضافة أيقونة لشريط عنوان النموذج add icon to title bar for userform إضافة أيقونة للنموذج في شريط المهام add icon to userform to taskbar تصدير موديول export module استيراد موديول import moduleأي استفسار لا تتردد في كتابة تعليق ادعمنا ب لايك كومنت شير ولا تنسوني من صالح دعائكم2 points
-
2 points
-
السلام عليكم ورحمة الله استبدل الكود السابق بهذا الكود Sub ADDToArchive() Dim ws As Worksheet, sh As Worksheet, sm As Worksheet Dim LR As Long, x As Integer, cel As Range Set ws = ThisWorkbook.Sheets("ArchiveS") Set sm = ThisWorkbook.Sheets("مرايا للكشف") Application.ScreenUpdating = False For Each sh In ThisWorkbook.Worksheets If sh.Name <> "ArchiveS" And sh.Name <> "مرايا للكشف" And sh.Name <> "قوائم" Then x = WorksheetFunction.Count(sh.Range("C6:C32")) sh.Range("C6:BI32").Copy LR = ws.Range("A" & Rows.Count).End(xlUp).Row ws.Range("A" & LR + 1).PasteSpecial xlPasteValues ws.Range("BH" & LR + 1).Resize(x + 1) = sm.Range("E1") ws.Range("BI" & LR + 1).Resize(x + 1) = sm.Range("F1") ws.Range("A6").Select Application.CutCopyMode = False End If Next End Sub2 points
-
وعليكم السلام نعم ، وهي الطريقة التي استعملها انا ولما اكمل الاجزاء الاساسية من البرنامج والبرمجة ، اتجه الى العلاقات بحيث اذا صار عندي شيء خطأ ، فأعرفه من وين جعفر2 points
-
2 points
-
2 points
-
السلام عليكم سيدي الفاضل ، عاشت ايدك ، اكواد بسيطة ونتائج رائعة التغييرات اللي انا عملتها: 1. اذا كتبت شيء ، وغيرت رأيك ، فتستطيع ان تضغط على الزر Esc (Escape) ، وسوف يختفي النموذج الفرعي ، Private Sub text76_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyEscape Then SubFrm.Visible = False Else SubFrm.Visible = True End If End Sub 2. اذا كتبت شيء ، فارتفاع النموذج الفرعي يطول ويقصر مع عدد السجلات الموجودة ، اكثر عدد هو 3 ، Private Sub text76_Change() On Error Resume Next Dim x As String SubFrm.Visible = True x = Me.text76.Text Me.Text11.Value = x Me.SubFrm.Requery 'تغيير ارتفاع النموذج الفرعي حسب عدد سجلاته Dim rst As DAO.Recordset Set rst = Me.SubFrm.Form.RecordsetClone rst.MoveLast RC = rst.RecordCount If RC > 3 Then Me.SubFrm.Height = Me.SubFrm!FldText.Height * 3 Else Me.SubFrm.Height = Me.SubFrm!FldText.Height * RC End If rst.Close: Set rst = Nothing End Sub 3. اذا كتبت شيء ، ونقرت على الاسم في النموذج الفرعي ، فسيتغير سجل النموذج الرئيسي حسب الاسم المختار ، وهنا فانت لست بحاجة الى زر البحث Private Sub FldText_Click() 'Forms!formS1.ITEM_NEM = Me.FldText Me.Parent.text76 = Forms!formS1!SubFrm.Form.FldText.Text 'اظهر نتيجة البحث Me.Parent.Form.Requery 'Me.Parent.text76.SetFocus Forms!formS1!SubFrm.Form.Visible = False End Sub جعفر 624.test.mdb.zip2 points
-
بسم الله الرحمن الرحيم الحمد لله الواحد القهار، العزيز الغفار،مكور الليل على النهار ، تذكرة لأولي القلوب والأبصار وتبصرة لذوي الألباب والاعتبار ، الذي أيقظ من خلقه من اصطفاه فزهدهم في هذه الدار، وشغلهم بمراقبته وإدامة الأفكار ، وملازمة الاتعاظ والادكار، ووفقهم للدؤوب في طاعته والتأهب لدار القرار، والحذر مما يسخطه ويوجب دار البوار، والمحافظة على ذلك مع تغاير الأحوال والأطوار. أحمده أبلغ حمد وأزكاه، وأشمله وأنماه. أما بعد: رأيت أن أقدم عملا خالصا لوجه الله الكريم لعل الله يتغمدنا برحمته ولذا رأيت أنا الفقير إلى الله المحمدي عبد السميع عبد الغني أن أجمع الأكواد بطريقة منظمة تسهل للجميع الحصول عليها عند استخدام محرك البحث ، ولهذا ساقدم سلسلة من الأكواد كل كود بعنوان واضح يسهل الوصول له في موضوع مستقل وسأشرح كيفية استخدام الكود ماتيسر لي إن شاء الله وعلى الله قصد السبيل ****************************************** هذا كود ترحيل الصفحة كامله بشرط واحد على سبيل المثال عندنا درجات الطلاب وفيهم طلاب ناجحون وطلاب دور ثان وطلاب راسبون هذا الكود يفصل الطلاب الناجحون في ورقة ويفصل الطلاب الذين لهم حق الدخول في الدور الثاني في صفحة أخرى ويفصل الطلاب الراسبون في صفحة أخرى وهكذا طريقة الاستفادة من الكود افتح ملف اكسيل اضغط على الرز ALT وانت ضاغط على الزر اضغط على F11 الموجود أعلا لوحة المفاتيح ستظهر شاشة الماكرو اضغط على موديول 1 سيتم فتح الموديول الصق فيه الكود الموجود تحت هذا السطر Sub KH_START()[/center] ''' متغيرات بعدد الصفحات المطلوب الترحيل اليها Dim R As Integer, M As Integer, N As Integer, O As Integer ''' أسماء الصفحات المطلوب الترحيل اليها والمدى المطلوب مسح البيانات الثديمة منه Sheets("ناجح").Range("A11:DZ1000").ClearContents Sheets("دور ثان في").Range("A11:DZ1000").ClearContents Sheets("رسوب").Range("A11:DZ1000").ClearContents ''' عدد الصفوف العليا في الصفحات المنقول اليها البيانات M = 11: N = 11: O = 12 Application.ScreenUpdating = False ''' بداية ونهاية صفوف الورقة المصدر For R = 11 To 1000 ''''''''''''''''''''''''''''''''''''''''''''''''''''' ''' رقم عمود المعيار وكلمة المعيار If Cells(R, 113) = "ناجح" Then Range("A" & R).Resize(1, 115).Copy ''' سيتم اللصق في هذا الشيت Sheets("ناجح").Range("A" & M).PasteSpecial xlPasteValues Application.CutCopyMode = False M = M + 1 '''''''''''''''''''''''''''''''''''''''''''''''''''' ''' رقم عمود المعيار وكلمة المعيار ElseIf Cells(R, 113) = "دور ثان في" Then Range("A" & R).Resize(1, 115).Copy ''' سيتم اللصق في هذا الشيت Sheets("دور ثان في").Range("A" & N).PasteSpecial xlPasteValues Application.CutCopyMode = False ''' اجعل الرقم 1 الى الرقم 2وانظر في صفحة الدور الثاني بعد الترحيل N = N + 1 ''''''''''''''''''''''''''''''''''''''''''''''''''''' ElseIf Cells(R, 113) = "رسوب" Then Range("A" & R).Resize(1, 115).Copy Sheets("رسوب").Range("A" & O).PasteSpecial xlPasteValues Application.CutCopyMode = False ''' لترك صف فارغ اعلا كل صف O = O + 2 End If ''''''''''''''''''''''''''''''''''''''''''''''''''''' Next MsgBox ("الحمد لله تـــم ترحيل الناجحين و الراسبين إلى أوراق عمل جديدة ") Application.ScreenUpdating = True End Sub ''''''''''''''''''''''''''''''''''''''''''''''''''''' وإذا اردت زيادة عدد الصفحات الطلوب نقل وترحيل البيانات اليها ... سهلة إن شاء الله ماعليك إلا أن تضيف هذه الجزئيه في الكود مع كتابة اسم الصفحة الجديده والمعيار الجديد ''' رقم عمود المعيار وكلمة المعيار ElseIf Cells(R, 113) = "دور ثان في" Then Range("A" & R).Resize(1, 115).Copy ''' سيتم اللصق في هذا الشيت Sheets("دور ثان في").Range("A" & N).PasteSpecial xlPasteValues Application.CutCopyMode = False ''' اجعل الرقم 1 الى الرقم 2وانظر في صفحة الدور الثاني بعد الترحيل N = N + 1 ودمتم في حفظ الله ترحيل مفيد جدا كل الصفحة بشرط.rar1 point
-
الاخوه فى هذا الصرح العلمى الكبير اعتذر عن قلة تواجدى فى الاونه الاخيره ولكن يعلم الله انى مشغول جدا هذه الايام اسالكم الدعاء لى بالتوفيق والسداد اليوم بأقدم لكم شرح مبسط عن النسخ والقص أو الترحيل بواسطة Destination وهى تعنى هدف الوصول أو مكان الوصول أو المكان المقصود هنعرف 1 - أزاى نعمل ده بدون اكواد من خلال التعامل مع الشيت مباشرة 2- أزاى نعمل ده بالاكواد نبدأ بسم الله عايزك تفتح شيت اكسيل وتكتب فى الخليه A1 مثلا اى شئ مثلا اكتب " اوفيسنا " المطلوب بعد ما تكتب فى الخليه A1 نقوم بنسخها الى اى خليه اخرى طبعا زى ما حضراتكم عارفين بيكون من خلال تحديد الخليه المطلوب نسخها وهى A1 تم نعمل Ctrl+C ونذهب الى المكان اللى احنا عايزين نقوم بعملية لصق الخليه بها وليكن الخلية D1 ثم نعمل Ctrl+V وفى طريقه تانية وهى الوقوف على الخليه A1 وكليك يمين بالماوس واختيار نسخ ثم تحديد الخليه D1 وكليك يمين ونعمل لصق لكن اليوم هنعمل عملية النسخ بطريقه Destination طيب ازاى ؟؟؟ حدد الخليه A1 ثم حرك الماوس الى اى ضلع من اضلاع الخليه ستجد فى سهم مثل هذا السهم دا صوره مكبره منه عندما يظهر هذا السهم على ضلع من اضلاع الخلية اضغط من الكيبورد على زر Ctrl ومع الاستمرار بالضغط على الزر اضغط على زر الماوس الايسر واسحب الماوس الى الخليه D1 مكان اللصق اللى احنا عايزينه طيب ده بالنسبه لعملية النسخ طيب عملية القص ؟؟ الطريقه الاولى تحديد الخليه المطلوب قصها وهى A1 تم نعمل Ctrl + X ونذهب الى المكان اللى احنا عايزين نقوم بعملية لصق الخليه بها وليكن الخلية D1 ثم نعمل Ctrl+V الطريقه التانية وهى الوقوف على الخليه A1 وكليك يمين بالماوس واختيار قص ثم تحديد الخليه D1 وكليك يمين ونعمل لصق الطريقه الثالثه اللى هى اساس موضوعنا هنعمل عملية القص بطريقه Destination طيب ازاى ؟؟؟ حدد الخليه A1 ثم حرك الماوس الى اى ضلع من اضلاع الخليه ستجد فى سهم عند ظهوره يمكنك الضغط على زر الماوس الايسر والسحب الى المكان المراد اللصق فيه الخلاصه الطريقه عملية النسخ عملية القص 1- من خلال الكيبور اضغط Ctrl+C ثم انتقل الى الخلية اضغط Ctrl+X ثم انتقل الى الخلية المراد النسخ بها واعمل Ctrl+V المراد اللصق بها واعمل Ctrl+V --------------------------------------------------------------------------------------------------------------------------------------------- 2- من خلال الماوس قم بتحديد الخلية وكليك يمين بالماوس قم بتحديد الخلية وكليك يمين بالماوس واختار نسخ ثم انتقل الى الخليه المراد واختار قص ثم انتقل الى الخليه المراد اللصق بها واعمل كليك يمين بالماوس اللصق بها واعمل كليك يمين بالماوس واختار لصق واختار لصق --------------------------------------------------------------------------------------------------------------------------------------------- 3-Destination حدد الخلية المطلوب نسخها واتجه بالماوس حدد الخلية المطلوب نسخها واتجه بالماوس ( المكان المقصود) الى اى ضلع من اضلاع الخليه هيظهر سهم الى اى ضلع من اضلاع الخليه هيظهر سهم اضغط من الكيبورد على زر Ctrl ومع الاستمرار اسحب الماوس الى المكان المطلوب اللصق به بالضغط اسحب الماوس الى المكان المطلوب اللصق به ----------------------------------------------------------------------------------------------------------------------------------------------------- طيب ازاى نعمل الطريقه رقم 3 Destination ( المكان المقصود) بالاكواد Sub Alsaqer1() Range("A1").Copy Destination:=Range("d1") End Sub طبعا السطر الاول والثالث معروف وهو الاعلان عن بداية الكود ونهايته السطر اللى فى المنتصف بقى هو اللى هنوضحه كتبت اسم الخلية A1 المطلوب نسخها من خلال الخاصيه Range كالتالى ("Range("A1 وبعدين كتبت . اللى هى الضغط على حرف ز بالعربى من الكيبور ثم Copy وتعنى نسخ وبعدين مسافه وكتبة Destination متبوعه =: ثم الخلية المراد اللصق بها ("Range("D1 طيب الكود هيكون ازاى لو عايز اعمل قص وليس نسخ بسيطه جدا نفس الكود مع استبدال Copy Sub Alsaqer2() Range("A1").Cut Destination:=Range("d1") End Sub طيب الكلام كله عن نسخ او قص خليه واحده ماذا لو كان المطلوب نسخ نطاق من الخلايا مثلا من A1:C5 الى الخلايا H1:J5 اولا من خلال شيت الاكسل حدد الخلايا من A1:C5 وحرك الماوس الى اى ضلع من اضلاع التحديد سيظهر امامك السهم عند ظهوره اضغط على زر Ctrl ومع الاستمرار بالضغط حرك الماوس الى الى الخلية H1 ستجد تم نسخ الخلايا طيب ولو عملية القص هيكون نفس الخطوات ولكن بدون الضغط على زر Ctrl يعنى عند ظهور السهم اسحب الماوس الى الخليه H1 طيب ومن خلال الكود لو نسخ شاهد الكود Sub Alsaqer3() Range("A1:C5").Copy Destination:=Range("h1") End Sub نفس الاكواد السابقه الفرق فقط هو بدل ("Range("A1 جعلتها ("Range("A1:C5 ولو قص الخلايا يبقى الكود كالتالى استبدل Copy بــ Cut Sub Alsaqer4() Range("A1:C5").Cut Destination:=Range("h1") End Sub ماذا لو كان المطلوب نسخ الخلايا الى شيت اخر شاهد الكود نفس السابق ولاحظ انت الفرق Sub Alsaqer5() Range("A1:C5").Cut Destination:=Sheet2.Range("h1") End Sub استبدلت ("Range("h1 بــ ("Sheet2.Range("h1 لو احنا عايزين ننسخ عمود A كله مثلا الى العمود F طبعا من خلال الشيت يبقى تحدد العمود كله واذهب الى اى ضلع من العمود هيظهر السهم اضغط على زر Ctrl ومع استمرار الضغط اسحب الماوس الى العمود المطلوب وهو F ولو قص يبقى نفس الخطوات بدون الضغط على زر Ctrl ولو عايزين نعمله بالكود شاهد الكود Sub Alsaqer6() Columns("a:a").Copy Destination:=Columns("f:f") End Sub ------ ماذا لو كان عندى نطاق متغير مثلا من جدول من العمود A الى C ولكن عدد صفوف الادخال غير محدد فى زياده او نقصان فى الحاله دى هعمل سطر لتحديد اخر صف به بيانات فى العمود A شاهد الكود Sub Alsaqer7() lr = Cells(Rows.Count, "A").End(xlUp).Row Range("A1:C" & lr).Copy Destination:=Range("h1") End Sub واخيرا الفائده من هذه الطريقه هى افضل بالاكواد نظرا لسرعه تنفيذ الكود وبساطه كتابته وفهمه كدا انا خصلت كل الامثله باقى انك بس تجرب بنفسك اسال الله تعالى لى ولكم التوفيق والسداد تقبلوا تحياتى1 point
-
اتقدم بكل الشكر والتقدير لادارة المنتدى الراقى العريق على اختيارها للمشرفين الذين يعطو الجهود والوقت لايجاد حل مناسب لمشاكل الاعضاء كما اتوجه بكل الاحترام للاستاذ الراقى شفان لمجهودة المبذول والواضح مع الاعضاء واشكر كل القائمين من المشرفين على هذا المنتدى من اجل الارتقاء به وباعضائه وللجميع تحياتى1 point
-
1 point
-
أخي ابو عائشه انت لما تكتب الكود ، فهذه النافذة تُسمى نافذة اكواد VBA ، ويمكنك ان تبحث عن اي امر تريده مساعدة فيه ، بطريقتين (لإصدارات الاكسس 2000 الى 2010) : في هذه النافذة حقل في اعلى اليمين تكتب الامر اللي تريد تبحث عنه ، فتخرج لك نافذة فيها معلومات عن الكلمة التي تبحث عنها ، او تكتب اي امر في نافذة الاكواد ، مثلا: msgbox وتضع مؤشر الكتابة على اي جزء من الكلمة ، ثم تضغط على الزر F1 ، فتأتيك النافذة كما في الرقم 1 اعلاه ، بمعلومات عن msgbox. من الرقم ا او 2 ، سترى جميع الاوامر الخاصة بالامر msgbox الآن بالنسبة الى الامر msgbox ، فهناك اوامر تنبيه ، والتي تصدر صوت تنبيه كذلك ، وكل أمر له الشكل/الايقونة الخاص به (وهذا كان سؤال موضوعك)، مثلا: MsgBox "تجربة بصوت", vbYesNo + vbCritical او MsgBox "تجربة بصوت", vbYesNo + vbExclamation او MsgBox "تجربة بصوت", vbYesNo + vbInformation ولتكملة الموضوع ، فان الصوت يأتي من اصوات الوندوز ، ويمكنك ان تغيره من هنا (فالسهم يؤشر على صوت Critical ، والذي تناديه من الكود اعلاه بـ vbCritical): . وطبعا تستطيع استعمال أمر Beep كما قال عنه أخي شفان ، في اي مكان من البرنامج جعفر1 point
-
1 point
-
1 point
-
1 point
-
حياك الله هلا والله أخوي صالح هذه الثغرة Bug اللي الى اليوم ما لقوا لها حل جعفر1 point
-
أهلين أخي لقد شغلتني الأعمال المنزلية عن الدخول لبعض الوقت1 point
-
الله يسلمك ويعافيك ان شاء الله أخوي ابوخليل ، وهاي يحتاج لها سؤال ، انت تأمر ونحن نقول تم ان شاء الله هاي ما عرفت معادلتها وحياك الله جعفر1 point
-
1 point
-
ما اروعك اخي واستاذي الحبيب شكرا لك نزلت مرفقك وهو فوق الممتاز شكرا لك على مداخلتك جزاك الله الفردوس الاعلى تقبل تحياتي اخوك ( الصغير ) شفان ريكاني1 point
-
هذا الرابط فيه مثال كلا الموضوعين جيدين لكن انا برأيي افضل المثال الاعلاه في هذا الموضوع على المثال في رابط الاعلاه1 point
-
1 point
-
Private Sub Workbook_Open() Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",false)" Sheets(1).Select End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean) Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",TRUE)" Application.ScreenUpdating = True End Sub ضع هذة الاكواد في ThisWorkbook1 point
-
جزاك الله خيرا هدية مقبولة - جعلها الله من الصدقات الشافية , فقد قال رسول الله (صلى الله عليه وسلم : داووا مرضاكم بالصدقة) وإن هبة العلم صدقة. اللهم اشفى زاهرا شفاءا لا يغادر سقما - وارفع قدر والديه واجزهما خيرا. آمين1 point
-
شكرا أستاذى الكريم على الرد وبارك الله بكم قد وجدت المشكلة بأن البرتشن الموجود عليه الملف محمى ضد الكتابة - ولا توجد أى مشكلة بالملف كما كنت أعتقد منذ البداية - والصور التالية توضح حل المشكلة ( أو طريقة السماح بالكتابة على البرتشن المحمى ضد الكتابة) وأكرر شكرى لكم أستاذى الكريم ولكل أعضاء المنتدى المبارك (ما عدا أنا )1 point
-
شو يا ابوعبدالله ، كيف تتوقع اني اعرف هذا النموذج هو طلبك؟؟ انا يا اشتغل مبرمج ويا ساحر ، بس ما يصير الاثنين مع بعض المبرمج يقول: استعمل هذه المعادلة: =Sum(Nz([حد الرسوب]+[حد النجاح],0)) جعفر1 point
-
1. ما فهمت قصدك ، اعطني تفصيل بالارقام واسماء الحقول لوسمحت والمرفق اللي انت ارفقته هو نفس اللي انا ارفقته!! 2. تم حذف هذا الحقل اصلا ، ولا يوجد في المرفق ، فكيف طبقت عليه !! جعفر1 point
-
1 point
-
هلا والله أخوي ابوعبدالله 1. هذا الكلام الزين ، تجربتك للبرنامج وجوابك كان على طول عملنا تغيير ، ووصلنا الى: النموذج الرئيسي: - عملت وحدة مستقله للجمع ، اسميته sTotal ، ولاحظ انه مب Private ، وإنما Public ، مما يعني اقدر اناديه من اي كائن (نموذج/تقرير/وحدة نمطية) في البرنامج ، - الحدث "في الحالي" يرسل طلب للوحدة sTotal بأن تقوم بالعمل ، والسبب اني اخرجت كود الحساب الى وحدة مستقلة هو ، لاحقا في البرنامج قد تضيف مجموعة اوامر اخرى في حدث الحالي ، وعندما تريد ان تقوم بعملية الجمع ، فلن تستطيع القيام بعملية الجمع بدون القيام بالاوامر الاخرى (ما عليه ، الموضوع بيتضح لك بعديييين ان شاء الله ، هذه خطوة استباقية) : Private Sub Form_Current() Call sTotal End Sub Public Sub sTotal() Me.Sum_Total = DSum("[الدرجة]+[حد الرسوب]", "qry_sfrm", "[رقم الطالب]=" & Me.[رقم الطالب]) End Sub والآن لما تضيف او تعدل الدرجة في النموذج الفرعي ، نريد ان نقوم بالعملية الحسابية ، فنقوم بحفظ السجل ، ثم مناداة الوحدة sTotal : Private Sub الدرجة_AfterUpdate() DoCmd.RunCommand acCmdSaveRecord Call Form_نموذج_الطالب.sTotal End Sub جعفر 623.stu new.accdb.zip1 point
-
السلام عليكم أخوي ابو زاهر شكرا على الهدية ، ونسأل الله سبحانه وتعالى ان يسهل عليكم دنيا وآخره ، وان يشافي ولدكم وان يرعاه بعينه التي لا تنام ، وقد قمت بتغيير اسم الموضوع قليلا ، وذلك بإضافة اسم البرنامج فيه جعفر1 point
-
السلام عليكم ورحمة الله تعاىل وبركاته اخى الحبيب جزاكم الله خيرا على هذه الهدية القيمة وشكر الله تعالى لكم واحسن اليكم وزادكم علما اسأل الله أن يمن علي ولدكم بالشفاء العاجل وأن يجمع لكم وله بين الأجر والعافية ... اسأل الله العظيم رب العرش العظيم ان يشفيه اسأل الله العظيم رب العرش العظيم ان يشفيه اسأل الله العظيم رب العرش العظيم ان يشفيه أسأل الله العظيم بأسمائه الحسنى و صفاته العلى أن يشفيه شفاء تاما لا يغادر سقما و أن يمتعه بقوته و سمعه و بصره ما أحياه . اسأل الله سبحانه أن يملأ قلبكم وقلبه رضى بالله و بقضائه و حكمه و أن يملأه اعتصاما به و توكلا عليه و إيمانا و تسليما و يقينا. و أذكركم الصبر فالجزع لا يغير من الأمر شيئا إلا أن يضر و لا ينفع. و الصبر خير في كل حال ، و أوصيكم بالرقية الشرعية و كثرة الذكر ، وتحيّنوا لدعائكم الثلث الآخر من الليل و ساعة الجمعة الأخيرة و أوقات الإجابة و كذا الصدقة المتواصلة قلت أو كثرت1 point
-
ألف مبروك اخي شفان اسأل الله العظيم رب العرش الكريم ان يسعدك ويجعلك من أهله وخاصته ويرفع قدرك وشأنك وينجيك من كل مكروه ويوفقك ويجعل آيآمك كلهآ هنآ وسعآده ويحقق لك مرآدك ويحفظك ويحميك أنت ودريتك وجميع المسلمين امين1 point
-
اللَّهُمَّ ربَّ النَّاسِ ،أَذْهِب الْبَأسَ ، واشْفِ ، أَنْتَ الشَّافي لا شِفَاءَ إِلاَّ شِفَاؤُكَ ، شِفاءً لا يُغَادِرُ سقَماً1 point
-
هلا والله زين ، اذن نحن في الطريق الصحيح بس سرعة الاستعلام الثاني لازم تكون مقارنة مع الاستعلام الاول ، فلوسمحت تخبرنا ايش الاشياء الاخرى اللي تعملها في الاستعلام الثاني ، يعني مو الغلط كله نخليه على البرنامج ، المبرمج كذلك عليه جزء من الغلط جعفر1 point
-
عفوا ما لاحظت المطلوب اليك المطلوب الآن: تغيير اسم الحقل الى اسم مفهوم . إضافة الحقل الآخر للمعيار . حدث النقر على رقم الغرف اصبح: Private Sub Rooms_Click() Select Case Rooms.Value Case 1 Room_Number = 1: Room_Check = -1 Case 2 Room_Number = 2: Room_Check = -1 Case 3 Room_Number = 3: Room_Check = -1 Case 4 Room_Number = 4: Room_Check = -1 Case 5 Room_Number = "": Room_Check = "" End Select Me.sfrm_Room_No_Available.Requery . ومصدر بيانات النموذج الفرعي اصبح: . واكتب لك سطري المعيار ، مع الشرح وذلك لأهميته: check: IIf([Forms]![frm_Rooms_Available]![Room_Check]<>-1,[Check],[Forms]![frm_Rooms_Available]![Room_Check]) اذا مافي علامة صح على الحقل [Forms]![frm_Rooms_Available]![Room_Check] (يعني الحقل لا يساوي -1) اذن اعطنا جميع سجلات الحقل [check] وإلا ، فاستخدم قيمة الحقل الموجودة في النموذج [Forms]![frm_Rooms_Available]![Room_Check] ------------------------------------------ Room_No: IIf(Len([Forms]![frm_Rooms_Available]![Room_Number] & "")=0,[Room_No],[Forms]![frm_Rooms_Available]![Room_Number]) اذا مافي بيانات في الحقل Len([Forms]![frm_Rooms_Available]![Room_Number] & "")= اذن اعطنا جميع سجلات الحقل [Room_No] وإلا ، فاستخدم قيمة الحقل الموجودة في النموذج [Forms]![frm_Rooms_Available]![Room_Number] . وللأسف الشديد ، فأنا ارى الكثير من المبرمجين لا يلتفتون لهذه الاسطر ، ويستخدمون Like بدلا عنها جعفر 621.Test.accdb.zip1 point
-
الصراحة أنا شاكر كل من ساهم في هذا الموضوع سواء الأخ 1 - Rebaz Bahram 2 - Shivan Rekany 3 - أواب وأخيرا أستاذي الأستاذ / عبد الفتاح كيرة الذي تعلمت منه الكثير .... وأنا أخصه بالذكر في هذا الموضوع وهو يفهمني ماذا أقصد . بفضل من الله ثم منكم تمكنت من الوصول للحل النهائي كما كنت أريد بمشاركاتكم بعد دراستها وتحليلها وربطها ببعض لأتمكن من أن أصل لهذه النتيجة المبهرة مرفق النتيجة النهائية للملف شكرا لكم جميعا وبارك الله فيكم اظهار الدرجة خلف شبه المنحرف والدائرة.rar1 point
-
وعليكم السلام ورحمة الله وبركاته مرحبا اخي الكريم ديو05 للاسف المرفق بصيغة accdb والاوفيس عندي 2003 يعمل بصيغة mdb جهزت لك ملف ارجو ان تجد ما تبحث عنه تحياتي db03.rar ============= نفس الملف مع اضافة زر امر تحياتي db03.rar1 point
-
هدية لاسير الشروق خاصة ولجميع الاعضاء عامة تلوين خلفية جميع النماذج بأمر واحد مع امكانية توظيف الكود لتلوين كائنات وعناصر اخرى تلوين النماذج.rar1 point
-
ما هي غايبة عن بالي من وقت كتابتي للموضوع إلى الأن وانا اعمل نسخ ولصق احاول اعمل مثال مصغر كل الامثلة طالعة معي باخطاء1 point
-
1 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
-
الــدرس الرابع: الجملة الشرطية ( 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
-
ملاحظاتك ممتاز و في محلها و متممة للمعنى ربما هنا من يستعمل اللغة العربية في تعريف المتغير بهذا الشكل : Dim الرقم_الأول As Integer ملاحظة: - القيمه الإفتراضية للمتغيرات النصيه هي فراغ " " - أما القيمه الإفتراضية للمتغيرات الرقميه هي صفر 01 point
-
اضفت بعض الملاحظات في مشاركتي الاولى: شو قصدك اخي صالح ، انا اعرف ان المتغيرات باللغة اللاتينية ، فرجاء اعطنا مثال لوسمحت جعفر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
-
صحيح لو زاد عن الثلاث سنوات تعطي النتيجة 4 والحل هو ان تستخرج الايام ثم تقسمها على 360 مثال : =Round(DateDiff("d";[Date1];[Date2])/360;2) Round لتقريب الكسر واخترنا 2 للتقريب الى عددين عشريين ويمكنك استخدام هذه الدالة لاستخراج الايام والشهور والسنين : Function BetwnDate(Date1 As Date, date2 As Date) Dim sYears As Integer, sMonths As Integer, sDays As Integer sMonths = DateDiff("m", Date1, date2) sDays = DateDiff("d", DateAdd("m", sMonths, Date1), date2) If sDays < 0 Then sMonths = sMonths - 1 sDays = DateDiff("d", DateAdd("m", sMonths, ), date2) End If sYears = sMonths \ 12 sMonths = sMonths Mod 12 BetwnDate = sYears & "سنة, " & sMonths & "شهر, " & sDays & "يوم" End Function تلصقها في وحدة نمطية عامة ثم تستخدمها هكذا داحل مربع النص: =BetwnDate([Date1] ;[date2])1 point
-
السلام عليكم اعتقد ان الاصدار 2003 هو الاحسن1 point
-
بارك الله فيك وبرنامج ممتاز ويستحق التثبيت!!! افكار جديدة وتصميم جيد وللارتقاء اكثر واكثر اذا امكن تعديل التقارير من حيث المجاميع على مختلف المستويات اي طلب تقرير على مستوى معين1 point