نجوم المشاركات
Popular Content
Showing content with the highest reputation on 11/21/15 in مشاركات
-
خامساً :- كيفية اضافه عناصر تحكم داخل الــ Frame مع التحكم فى الاسكرول بار وذالك عند فتح الفورم او اثناء العمل على الفورم وهو نشط العنوان يبدو انه غريب شوية ومعقد انا بس محتاج من حضرتك تشرب كوباية شاى وتفتح زهنك معايا لان ده شغل محترفين والحمد لله احنا مشينا مشوار طويل فلازم يكون عندك ثقه بنفسك وتقتحم الصعاب وميهمكش طالما انت فى جامعه اوفيسنا بص يا سيدى العنوان ده بختصار ماذا يعنى ؟ طبعا احنا عارفين ان علشان اصمم عنصر تحكم لازم يكون من شاشة التصميم لكن انت عمرك فكرة او خطر ببالك انك تخلق أو تنشئ عنصر تحكم وانت شغال على الفورم مش فى مرحلة التصميم !!!!!! طبعا انتو عارفين انى اناعملى وعلشان افهم لازم اعمل مثال عملى فبالمثال يتضح لنا المقال شوف الصوره دى وخليك معايا اوعى تغمض عنيك هو ده موضوعنا اليوم ازاى نصمم اى عنصر تحكم اثناء فتح الفورم بكود فى حدث فتح الفورم او اثناء عمل الفورم تعالو على سبيل المثال نعمل كود فى حدث فتح الفورم Initialize كدا انا عملت سطر الاعلان عن المتغير وقمت بتسميته Label ( وممكن تسميه اى اسم كيفما شئت ولكن كما قلت افضل تسميته طبقا لاسم عنصر التحكم ) وقلت ان نوع المتغير من النوع MSForms.Label وعايز احول المتغير ده الى كائن بحيث اعرفه واقدر اتعامل معاه فأستخدمت set وهذه الكلمة هى لتحويل المتغير الى كائن القاعده الخاصه بـ Set هى الكائن = المتغير set الكائن = Set Label ما هو الكائن ؟؟؟ هو عنصر تحكم هيتم اضافته على الفورم Controls.Add ( تعنى اضافه عنصر ) القاعدة العامه للـ Controls.Add هى (Controls.Add(ProgID, Name ,Visible الجزء الثالث , الجزء الثانى , الجزء الاول الجزء الاول :- ProgID يكون اجبارى الادخال وهو يكون احدى عناصر الفورم كالتالى الجزء الثانى :-Name هو اسم العنصر اللى هيتم استخدامه فى كتابة الاكواد وهو يقوم بدور الخاصيه Name فى شاشة الخصائص ويكون تعبئة اختياريا ولكن يفضل كتابتة اذا كنت تريد التعامل مع هذا العنصر فيما بعد الجزء الثالث:-Visible ويكون تعبئة اختياريا وهو يحمل خيارين أما True أو False ويفضل عدم استخدامه ليه يا عمنا ؟ لان طالما فكرت تنشأ عنصر تحكم اثناء عملك على الفورم اذا انت اكيد عايز تظهره للمستخدم مش انك هتخفية ! اذن لما نيجى نحول المتغير الى كائن لنستطيع التعامل معه هنستخدم قاعدة Set وهيكون كالتالى Set label = Controls.Add("forms.label.1", "label") هنا فى قاعدة Controls.Add قمت بتعبئة الجزء الاول ProgID وهو "forms.label.1" وتم وضعه بين علمتى تنصيص والجزء الثانى Name هو "label" وتم وضعه بين علامتى تنصيص وهو هيكون اسم العنصر فى كتابة الاكود الجزء الثالث Visible كما قلت انه اختيارى فلم اقم بتعبئته لذالك سيقوم الفيجوال بيسك باستخدام True بشكل افتراضى كدا وصلنا بالكود الى الان كالتالى Private Sub UserForm_Initialize() Dim label As MSForms.label Set label = Controls.Add("forms.label.1", "label") End Sub طيب انا كدا قمت بتصميم العنصر Label وعايز اعمل له خصائص على سبيل المثال اسم الليبل يكون " الصقر " يبعد عن الضلع الايسر للفورم بمقدار 100 عرضه يكون 120 يبعد عن الضلع الاعلى للفورم بمقدار 50 الخلفيه تكون حمراء محازة النص يكون بالمنتصف حجم الخط 20 سماكة الخط عريض التاثير يكون بارز طبعا الكلام ده شرحناه فى دروس الليبل وهيكون كالتالى فى الكود Private Sub UserForm_Initialize() Dim label As MSForms.label Set label = Controls.Add("forms.label.1", "label") With label .Caption = "ÇáÕÞÑ" .Left = 100 .Width = 120 .Top = 50 .BackColor = &HFF& .TextAlign = fmTextAlignCenter .Font = 20 .Font.Bold = True .SpecialEffect = fmSpecialEffectRaised End With End Sub شاهد الصوره عند تشغيل الفورم عايزك تجرب تنشئ عنصر تحكم او عناصر تحكم غير الليبل لازم تجرب بنفسك يا عبدالتواب ناخد مثال اخر مثلا الكمبوبوكس شاهد الكود كالتالى ولاحظ الفرق بنفسك Private Sub UserForm_Initialize() Dim Combobox As MSForms.Combobox Set Combobox = Controls.Add("forms.Combobox.1", "Combobox") With Combobox .Left = 100 .Width = 120 .Top = 50 .BackColor = &HFF& .TextAlign = fmTextAlignCenter .Font = 20 .Font.Bold = True .SpecialEffect = fmSpecialEffectRaised .RowSource = "A2:A10" End With End Sub شاهد الصوره عند فتح الفورم طبعا دى كلها مقدمه للدرس بتاعنا اللى لسه الى الان مبدأناش الشرح فيه ولكن كان لازم نعرف يعنى ايه نضيف عنصر تحكم اثناء عمل الفورم وليس من شاشة التصميم للدرس بقية انتظرونا4 points
-
بســــــــــــــــم الله الرحمــــــــــن الرحـــــــــــــــــــــــيم الســــــلام عليكــــــــــــــــم و حمة الله و بركاته اخواننا الكرام ، نظرا لكثرة المشاركات حول تقريب الكسور الارقام ، حبيت اشارككم الوحدة النمطية بـ 3 دوال (RoundUp) (RoundHalf) ( RoundDown) دالة : RoundUp([Number],3) للتقريب رقم 33.3333 الى 3.334 او 3.3331 الى 3.334 و هكذا دالة: RoundHalf([Number],3) للتقريب رقم 33.3336 الى 3.334 او 3.3335 الى 3.333 و هكذا و السبب تسمية الدالة بهذالاسم ، وجود دالة باسم Round في الاكسس و انا سميتها RoundHalf دالة: RoundDown([Number],3) للتقريب رقم 33.3336 الى 3.333 او 3.2231 الى 3.223 و هكذا و المرفق يحوي ملفين الاول للعرض ارقام مقربة حسب تنسيق مثلا: عند اختيار اربع منازل أعشار 5.4400 ، 5.4444 ,5.2000 و الثاني بدون تنسيق مثلا : 5.4444 ، 5.44 , 5.2 ابو عارف Round-RowndUp-RowndDown.rar3 points
-
السلام عليكم الاستاذ الفاضل / ابو سليمان شكرا جزيلا على مرور حضرتك المحفز .. جزاك الله خيرا اخى الكريم جرب المرفق فلترة.rar3 points
-
استعمل هذا الكود Sub DeleteAllPics() Dim Pic As Object For Each Pic In ActiveSheet.Pictures Pic.Delete Next Pic End Sub3 points
-
3 points
-
اخى الفاضل / ياسر فتحى اولا اعتذر لحضرتك عن التاخر بالرد لكن لم ادخل الموقع من يومين شاكر لحضرتك مجهودك الطيب واسال الله تعالى ان يكون بميزان حسناتكم وان يكون علم نافع بخصوص الملاحظات لن ازيد عن ما قاله الاخ ياسر العربى ارجوا من حضرتك تداركها تقبل منى وافر الاحترام والتقدير3 points
-
Sub CollectDataFromMultipleWorkbooks() Dim OpenFiles Dim crntfile As Workbook Set crntfile = Application.ActiveWorkbook Dim X As Integer Dim SH As Worksheet Dim Arr, Temp, I As Long, J As Long On Error GoTo ErrHandler Application.ScreenUpdating = False OpenFiles = Application.GetOpenFilename(FileFilter:="Microsoft Excel Files (*.csv;*.xlsx;.xlsm),*.csv;*.xlsx;*.xlsm", MultiSelect:=True, Title:="Select Excel File To Merge!") If TypeName(OpenFiles) = "Boolean" Then MsgBox "You Need To Select At Least One File" GoTo ExitHandler End If X = 1 While X <= UBound(OpenFiles) Workbooks.Open Filename:=OpenFiles(X) Sheets().Move After:=crntfile.Sheets(crntfile.Sheets.Count) X = X + 1 Wend Sheets("Master").Activate For Each SH In ThisWorkbook.Sheets With SH If .Name <> "Master" Then Arr = .Range("A1").CurrentRegion.Value For I = 1 To UBound(Arr) Temp = Split(Arr(I, 1), ";") For J = 1 To UBound(Temp) .Cells(I, J) = Temp(J) Next J Next I .Range("A1").CurrentRegion.Columns.EntireColumn.AutoFit End If End With Next SH ExitHandler: Application.ScreenUpdating = True Exit Sub ErrHandler: MsgBox Err.Description Resume ExitHandler End Sub أخي الحبيب مختار بارك الله فيك على الكود الرائع الذي قدمته لنا على طبق من ذهب أخي الكريم صاحب الموضوع ..يرجى تغيير اسم الظهور للغة العربية (راجع التوجيهات في الموضوعات المثبتة في المنتدى) جرب الملف التالي بعد إضافة بسيطة لكود الأخ المتميز مختار ليقوم بفصل العمود الواحد لعدة أعمدة تقبل تحياتي Collect Data From Multiple CSV Workbooks Mokhtar V1.rar2 points
-
راجع كود "TextBox7_Change" لايوجد اي تعيين للعمود 9 في الليست بوكس لذا قم بإدراج السطر التالي ليأخذ عنوان خلية نتيجة البحث ويدرجها في العمود 9 لليست بوكس ListBox9.List(V, 9) = q.Address الصقه قبل السطر V = V +1 ثم الغي تحديد نوع القيم في كود "ListBox9_Click" مثال ComboBox3.Text حطيته يستقبل نص .Range(DADA).Value ويساوي قيمة ؟ Private Sub ListBox9_Click() Sheets("sheet2").Select Dim DADA As String Dim MySh As Worksheet 'On Error GoTo 1 DADA = ListBox9.List(ListBox9.ListIndex, 9) Set MySh = Sheets("sheet2") With MySh .Application.Range(DADA).Activate ComboBox3.Text = .Range(DADA).Value ComboBox2.Text = .Range(DADA).Offset(0, 1).Value TextBox4.Text = .Range(DADA).Offset(0, 2).Value TextBox5.Text = .Range(DADA).Offset(0, 3).Value TextBox6.Text = .Range(DADA).Offset(0, 4).Value TextBox7.Text = .Range(DADA).Offset(0, 5).Value ComboBox1.Text = .Range(DADA).Offset(0, 6).Value End With End Sub لذا ليس ضروري تحديد قيمة اتركه بدون وفعل سطر الخروج من الكود في حالة حدوث خطاء 'On Error GoTo 1 وهذا الكود حدث ListBox9_Click بعد تعديل الاخطاء المذكوره اعلاه Private Sub ListBox9_Click() Sheets("sheet2").Select Dim DADA As String Dim MySh As Worksheet On Error GoTo 1 DADA = ListBox9.List(ListBox9.ListIndex, 9) Set MySh = Sheets("sheet2") With MySh .Application.Range(DADA).Activate ComboBox3 = .Range(DADA) ComboBox2 = .Range(DADA).Offset(0, 1) TextBox4 = .Range(DADA).Offset(0, 2) TextBox5 = .Range(DADA).Offset(0, 3) TextBox6 = .Range(DADA).Offset(0, 4) TextBox7 = .Range(DADA).Offset(0, 5) ComboBox1 = .Range(DADA).Offset(0, 6) End With 1 End Sub2 points
-
السلام عليكم ورحمة الله وبركاته لقد تناولت فى موضوعى السابق " إزالة أو إبقاء آثار التنسيق الشرطى " على الرابط التالى http://www.officena.net/ib/topic/64950-%D8%A5%D8%B2%D8%A7%D9%84%D8%A9-%D8%A3%D9%88-%D8%A5%D8%A8%D9%82%D8%A7%D8%A1-%D8%A2%D8%AB%D8%A7%D8%B1-%D8%A7%D9%84%D8%AA%D9%86%D8%B3%D9%8A%D9%82-%D8%A7%D9%84%D8%B4%D8%B1%D8%B7%D9%89/ كيفية ازالة التنسيق الشرطى و تبعاته من تنسيقات ... أو الابقاء على تلك التبعات والتنسيقات و تحويلها من تنسيقات شرطية الى تنسيقات عادية و اليوم بإذن الله تعالى أقدم لكم كودا بسيطا لكن يمكن أن تكون آثاره و نتائجه من وجهة نظرى المتواضعة جميلة و مبهرة و الرأى لكم فى النهاية الكود : Sub creatingFormats() On Error Resume Next For Each cell In Range("data") Range("formats").Cells(cell.Value).Copy cell.PasteSpecial Paste:=xlPasteFormats Next cell On Error GoTo 0 Application.CutCopyMode = False End Sub الكود يقوم بعمل تنسيقات عادية فى نطاق محدد هو data طبقا لتنسيقات يمكنك تعييرها فى خلايا نطاق آخر هو formats يمكن تطويع هذا الكود فى حال الرغبة فى عمل تنسيقات عادية متعددة داخل نطاق . تحياتى لكم و الى اللقاء بإذن الله تعالى مع كل جديد ومفيد كن حذرا ... أبو ضحكة جنان قاعد لك فى الملف أخوكم مختار حسين محمود الصعيدى تنسيقات بلا حدود.rar تنسيقات بلا حدود.rar2 points
-
السلام عليكم ورحمة الله وبركاته أخى العزيز ناصر المصرى بارك الله فيك ... أشكرك أخى الكريم على هذا الكلام الكبير الذى أسعدنى كثيرا ..و مشكور أيضا على مرورك الكريم أخى و حبيبى و أستاذى الكبير ياسر خليل يعلم الله عز وجل أننى أعتز بأنك أحد أهم الذين تعلمت - ولا زلت أتعلم - منهم ... تقبل الله منا و منكم صالح الاعمال أخى و حبيبى الغالى ياسر فتحى بارك الله فيك ... أشكرك أخى الغالى على هذا التشجيع الكبير و المستمر تقبل الله منا و منكم صالح الاعمال أخى و حبيبى العزيز عبدالغزيز بارك الله فيك ... أشكرك أخى الغالى على كلامك الطيب و مرورك الكريم ... تقبل الله منا و منكم صالح الاعمال2 points
-
السلام عليكم و رحمة الله و بركاته و تحية خاصة للاستاذ جعفر الأخ حسين : اضافة سطر بسيط في الكود السابق ستنحل المشكة ان شاء الله DoCmd.OpenReport "medicine", acViewPreview, , , acHidden DoCmd.SelectObject acReport, "medicine" DoCmd.PrintOut , , , , Me.t3 DoCmd.Close acReport, "medicine" بالتوفيق2 points
-
السلام عليكم ورحمة الله وبركاته جزاكم الله خيراً..وكما يقال :(إيدك معي ) وإن شاء الله سيكون متجدد ..بمشاركاتكم الطيبة. إن صار لي مجال اليوم سأعرض طريقة الفرز حسب الصفوف - فرز أفقي - بالتفصيل إن شاء الله تعالى فكر بحاجة تانية يا عربي ..والسلام عليكم.2 points
-
الله يبارك فيك ياعم الحاج والله ياراجل حاجات مكناش بنبص ليها خالص وعجبتني الفكرة ايه رأيك كل يوم تطبيق اختصار او اتنين2 points
-
تتسم دائما بالموضوعات القيمة بارك الله فيك وفى انتظار كل ماهو جديد من شخصية تتسم بالهدوء والعطاء وافر تقديرى واحترامى2 points
-
السلام عليكم Private Sub ListBox1_Click() ''********************* '' الذهاب الى الورقة المسماه ورقة1 Sheets("ورقة1").Select '' متغير لحفظ قيمة نصيه Dim DADA As String ''MySh متغير لورقة في المصنف للتعبير عن الورقة في الكود بمسمى Dim MySh As Worksheet 'On Error GoTo 1 '' اخذ القيمة من العمود الـ 9 في الليست بوكس والتي هيا عنوان الخليه من السطر المحدد في الليست بوكس DADA = ListBox1.List(ListBox1.ListIndex, 9) ''كتعبير عن الورقة المسماه "ورقة1" MySh تعين المتغير Set MySh = Sheets("ورقة1") ''With ادرج في اطار Myshلتعدداستخدام متغير '' للتعبير عن المتغير بأكثر من سطر دون ذكر المتغير بكل سطر '' . مع التعبير بعلامة With MySh ''للذهاب للخليه المعنيه في البحث Range في تعبير DADA ادراج متغير '' Range.address حفظ فيه عنوان الخليه DADA اعتباراً ان متغير .Application.Range(DADA).Activate ''ComboBox3 وحقظه في DADA اخذ قيمة الخليه من متغير ComboBox3.Text = .Range(DADA).Value ''ComboBox2 مع ازاحه بقدر عمود وحقظه في DADA اخذ قيمة الخليه من متغير ''B1 مع ازاحة عمود ستصبح الخليه المعنيه A1 اي اذا فرضنا الخليه هيا ComboBox2.Text = .Range(DADA).Offset(0, 1).Value ''TextBox4 مع ازاحه بقدر عمودين وحقظه في DADA اخذ قيمة الخليه من متغير TextBox4.Text = .Range(DADA).Offset(0, 2).Value ''TextBox5 مع ازاحه بقدر 3 اعمده وحقظه في DADA اخذ قيمة الخليه من متغير TextBox5.Text = .Range(DADA).Offset(0, 3).Value ''TextBox6 مع ازاحه بقدر 4 اعمده وحقظه في DADA اخذ قيمة الخليه من متغير TextBox6.Text = .Range(DADA).Offset(0, 4).Value ''TextBox7 مع ازاحه بقدر 5 اعمده وحقظه في DADA اخذ قيمة الخليه من متغير TextBox7.Text = .Range(DADA).Offset(0, 5).Value ''ComboBox1 مع ازاحه بقدر 6 اعمده وحقظه في DADA اخذ قيمة الخليه من متغير ComboBox1.Text = .Range(DADA).Offset(0, 6).Value '' Myshالخروج من اطار متغير End With ''********************* End Sub2 points
-
الأعضاء الأعزاء أسعد الله أوقاتكم بكل خير فيما يلي الدرس الأول من دورة "إكسيل 2013 المستوى المتقدم" بعنوان: التنسيق الشرطي المتقدم (المعتمد على المعادلات) سيتم نشر باقي الدروس تباعاً في هذا الموضوع بالإضافة الى نشر كل درس في موضوع مستقل خاص به لسهولة الوصول الى كافة الدروس... فانتظرونا ***ملاحظات*****... ملاحظة 1/ المتطلب السابق لهذه الدورة: معرفة جيدة باستخدام برنامج اكسيل ويمكن لمن أحب الرجوع لدورتنا السابقة "مهارات استخدام برنامج اكسيل 2013 " والتي نشرح فيها أساسيات ومبادئ برنامج الاكسيل. سوف تجدون رابطها في الرابط التالي: ملاحظة 2/ ملف التمارين الخاص بهذا الدرس موجود في الرابط التالي: http://www.4shared.com/file/NNsDhqPQce/1-_conditional_formatting_form.html ملاحظة 3/ لا تنسوا الاشتراك في قناتنا على اليوتيوب حتى يصلكم كل ما هو جديد أولا بأول ملاحظة 4/ لايك و شير x الخير حتى تعم الفائدة دمتم بخير أخوكم م/نضال الشامي Google+ Twitter1 point
-
خواطر إكسيلية أساتذتي الكرام إخوتي الأحبة السلام عليكم ورحمة الله وبركاته: بدا لي أن أكتب موضوعاً لا يقف حكراً على أحد – بل بإمكان كلٍّ منا أن يجود بما يخطر له من مواضيع الإكسيل التي يريد أن يفيد بها - وهنا أنطلق من كلمة إكسل التي تعني البراعة أو كما يحلو لنا أن نسميها في بلدي المكلوم "برنامج الجداول الإلكترونية" : ولذلك فإنني سأنطلق من خاطرة أولى تتحدث عن بعض اختصارات برنامج الإكسيل التي نصادفها بشكل يومي كما يلي: اختصارات لوحة المفاتيح في الإكسيل: إظهار(عرض) الصيغ في الخلايا بدلاً من نتائجها المحتسبة CTRL + ~ سابقة أثر(الخلايا التي أثرت في قيمة الخلية الحالية CTRL + [ تاريخ اليوم CTRL+ ; اختيار(تحديد كل) الجدول الحالي CTRL+ * الوقت الحالي CTRL+SHIFT+ ; نسخ من الخلية المجاورة بالأعلى CTRL+ ' هذا ما استطعت عرضه في عجالة من أمري وسيتبع إن شاء الله تعالى بمواضيع أخرى والسلام عليكم خواطر إكسيلية.rar1 point
-
السلام عليكم وهذه طريقه اخرى العمليه تتم عبر زر تحياتي Ali_Hid.rar1 point
-
موضوع رائع ومتميز .. ولكن أخي ياسر يبدو أنني أفضل الشرح بشكل يدوي .. قم بشرح الخطوات مكتوبة لتعم الفائدة .. تقبل تحياتي1 point
-
الظاهر ان الامر Docmd.Printout يطبع النموذج/التقرير اللي في الامام ، ولما كان التقرير مخفي ، فالتقرير هو اللي اصبح ظاهر ، فطبعه طيب ، هذه حيلة استخدمها بعض الاوقات: بعض الاوقات لما اريد اعمل شئ وما اريد المستخدم يشوفه ، فاطلب من اكسس ان: يوقف صورة الشاشة ، يعمل المطلوب (بينما المستخدم يشاهد الشاشة التي لم تتجدد ، يقوم البرنامج بعمل المطلوب) ، يعطينا الشاشة الجديدة جرب هذه الطريقة: Application.Echo False DoCmd.OpenReport "medicine", acViewPreview, , , acHidden DoCmd.PrintOut , , , Me.t3 DoCmd.Close acReport, "medicine" Aplication.Echo True جعفر1 point
-
1 point
-
اخى الفاضل خالد الرشيدى ... هذا هو المطلوب بالضبط ..شكرا لك .. وزاذك الله علما1 point
-
استبدل المعادلة السابقة بهذه المعادلة.. فى الخلية B5 ثم قم بالسحب =SUMPRODUCT(RawData!$H$6:$H$1000*(RawData!$I$6:$I$1000=$A$2)*(RawData!$F$6:$F$1000<>"مرتجع")*(RawData!$C$6:$C$1000=B$4)*(MONTH(RawData!$A$6:$A$1000)=MONTH($A5)))1 point
-
1 point
-
السلام عليكم كسر حماية هذا الملف صعبة جدا ان لم اقل مستحيلة ساحاول مجددا واخبرك بالنتيجة1 point
-
النفس تبكي علي الدنيا و قد عـلـمـت ***** ان الـسـعادة فـيهـا تـرك مــا فـيـهـا لا دار للمـرء بعـد الموت يـســكـنه ***** الا التي كان قبـل الـمـوت بـا نـيـهـا فان بـنـاها بــخــيـر طــاب مســــكــنـه ***** و ان بـنـاهـا بـشـــر خـاب بـانـيـهـا امـوالـنـا لـذوي المـيـــراث نـجــمـعــه ***** و دورنـا لـخـراب الـدهــر نـبـنـيـهـا ايـن المــلـوك التـي كانـت مســلطــنـة ***** حتـي سـقاها بكأس المـوت سـاقيهـا فـكــم مدائــن فـي الآفـاق قـد بـنـيـــت ***** امســت خرابا و أفني الموت اهليهـا لا تـركـنــن الــي الدنـيـا و مـا فـيــهــا ***** فالمـوت لا شــك يفـنـيـنـا يـفـنـيـهـا لـكـل نـفــس و ان كانـت عــلـي وجــل ***** مـــن الـمـنـيــة آمــــال تـقــويـــهـا الـمـرء يبســطها و الدهــر يـقـبـضـهـا ***** و النفس تنشرها و الموت يطويها انــمـا الـمــكـــارم اخــلاق مــطــهـــرة ***** الـديــن اولـهــا و الـعـقــل ثـانـيـهـا والـعــلـم ثــالـثـهـا والحـــلـم رابـعـهــا ***** و الجود خامسها و الفضل سادسها والـبـر ســـابـعـهـا والشـــكـر ثـامـنهـا ***** و الصــبر تاســعها و اللـين باقـيهـا الـنـفــس تـعــلـم أنــي لا أصــــادقـهـا ***** و لســت أرشـد الا حيـن أعـصـيـهـا وأعــمـل لـدار غـدا رضــوان خـازنهـا ***** و الـجـارأحـمـد والرحـمـن ناشـيـهـا قــصــورها ذهـب والمســك طـيـنـثـهـا ***** و الـزعـفـران حشـيـش نـابـت فـيهـا أنـهـارهـا لبـن مـحـض و مـن عســــل ***** و الخـمـر يـجري رحيقا في مجاريها والطـير تجـري علي الأغصـان عاكفـة ***** تـســبـح الله جـهــرا فــي مـغــانـيـهـا من يشتري الدار في الفردوس يعمرها ***** بـركـعـة فــي ظـلام الــليـل يـحيــيـهـا1 point
-
من الصعب ان يتم فك حماية ملفات محمية بكلمة مرور اخي الغالي سليم مشكور لارفاق هذا الحل الذي هو بالاساس عبارة عن كود ماكرو يتم وضعه داخل ملف بالفعل هو يدعم الماكرو ولكن نحن الان امام ملف xlsx محمي بكلمة مرور للملف نفسه ولا يمكن فتحه لوضع اي كود به ناهيك عن ان الملف لا يدعم الماكرو من الاساس ولكم كل الشكر والتقدير وان شاء الله نجد طريقة لكسر مثل تلك الحماية1 point
-
استاذى الحبيب / ابويوسف اعتذر عن التاخير بالمشاركة ولكن والله لم ارى الموضوع الا الان جزاكم الله خيرا على هذه الابداع وهذه الشراره التى اطلقتها اسال الله تعالى ان يزيدك من علمه وفضله منتظرين الكثير والكثير من ابداعاتك وطلع الكنوز يا ابويوسف تقبل تحياتى1 point
-
1 point
-
أسعد الله أوقاتكم بكل خير فيما يلي الدرس الثامن عشر من دورة "إكسيل 2013 المستوى المتقدم" بعنوان الرسومات البيانية المتقدمة -الجزء الثاني المخططات الدائرية ومن نوع دائرة من دائري ملاحظة/ ينصح بشدة متابعة الدرس الخاص بالرسومات البيانية من دورة (مهارات اكسيل 2013) على الرابط التالي قبل متابعة هذا الدرس حيث أننا نفترض بالمشاهد الكريم معرفة مسبقة بأساسيات الرسم البياني في اكسيل أساسيات الرسومات البيانية في إكسيل 2013 أتمنى لكم مشاهدة ممتعة ومفيدة يمكنكم تحميل ملفات التمارين الخاصة بهذه الدورة من خلال الرابط التالي: http://www.4shared.com/rar/QvwJQLddce/_-__.html لمتابعة الموضوع الرئيسي للدورة يمكنكم فتح الرابط التالي حيث جميع الدروس موجودة: دورة اكسيل 2013 المستوى المتقدم دمتم بخير1 point
-
بارك الله فيك أستاذي القدير " ياسر العربي " على التّنبيه و التّنويه .. و لو أنّي لا أعتقد إطلاقًا أنّ النّص المتحرك غير ظاهر .. أنا الذي نظر الأعمى إلى نصوصي .. و أسمعت حركة بروصاراتي منْ به صمَمُ هذا البيت هديّة للأخ .. أخونا فائق إعجاباتي و احتراماتي سيدي الكريم " ياسر العربي "1 point
-
1 point
-
السلام عليكم إخوتي وأساتذتي الأجلاء أشكركم جميعا على مروركم العطر وإثرائكم للموضوع ..وكأنني ألقيت بشبكة فجمعت كل هذه الدرر..ومن أنا حتى أقف أمام هؤلاء العمالقة الذين يخوضون عباب بحر الإكسل الواسع ..لكن هذه الخواطر التي ذكرت قد تفتح أفقا جديدا أو تذكر بما هو مخزن في أعماق الذاكرة لتنفض عنه غبار السنين من المشاغل....كلكم عظماء باﻹكسيل ولديكم خواطر هامة فالميدان ميدانكم والخيل خيلكم. كان لي رصيد كبير من الأحباب الذين وجدتهم نعم الأخوة في كل شيء بفضل الله ومنته وهم أغنياء عن التعريف ..واليوم أرى أستاذا فاضلا أكن له كل محبة وتقدير يساهم في تشجيعي فلكم وله كل الشكر والامتنان.تقبلوا تحياتي العطرة والسلام عليكم1 point
-
السلام عليكم اخى الحبيب / زيزو العجوز .. جزاك الله خيراً اخى الكريم يمكنك استخدام المعادلة التالية.. ضعها فى الخلية B5 ثم قم بالسحب..بدون اعمدة مساعدة ولكن بالنسبه للشرط الثانى.. اين تكتب كلمة مرتجع =SUMPRODUCT(RawData!$H$6:$H$1000*(RawData!$I$6:$I$1000=$A$2)*(RawData!$C$6:$C$1000=B$4)*(MONTH(RawData!$A$6:$A$1000)=MONTH($A5)))1 point
-
بعض الإختصارات المفتاح. الوظيفة. أو الأمر.Tab تنشيط شريط القوائم بالتعلم على قائمة FileAlt+F لفتح قائمة FileAlt+E لفتح قائمة EditAlt+V لفتح قائمة ViewAlt+I لفتح قائمة InsertAlt+O لفتح قائمة FormatAlt+T لفتح قائمة ToolsAlt+D لفتح قائمة DataAlt+H لفتح قائمة Window- +Alt لفتح قائمة التحكم في النافذة الخاصة بالمصنف Alt+spacebar لفتح قائمة التحكم في نافذة البرنامجAlt+F4 لإغلاق البرنامجAlt+F11 لإظهار النافذة الخاصة بأوامر لغة الفيجوال بيسكAlt+page Down للانتقال صفحة إلى اليمينAlt+Page Up للانتقال صفحة إلى اليسارالسهم لا سفل+Alt لعرض قائمة ببيانات خلايا العمود الموجودة فيه الخلية المحددة لاختيار أيامنها للنسخPage Down للانتقال صفحة إلى أسفلPage Up للانتقال صفحة الى أعلىمفاتيح الأسهم للانتقال خلية واحدة حسب اتجاه السهمCtrl+0 لإخفاء العمود الخالي أو الأعمدة المظللةCtrl+1 لفتح مستطيل الحوار Format CellsCtrl+6 لإخفاء وإظهار الكائناتCtrl+7 لإخفاء وإظهار شريط الأدوات القياسيةCtrl+9 لإخفاء الصف الحالي أو الصفوف المظللةCtrl+F3 لعرض مستطيل الحوار Define NameCtrl+F4 لإغلاق النافذة النشطCtrl+F5 لإستعادة حجم النافذة للحجم الطبيعىCtrl+F6 لاستدعاء النافذة التاليةCtrl+F7 لتحريك النافذة (أمر Move الموجود بقائمة التحكم في النافذة)Ctrl+F8 لتغيير حجم النافذة (أمر Size الموجود بقائمة التحكم في النافذة)Ctrl+F9 لتصغير النافذة للحد الأدنىCtrl+F10 لتكبير النافذة إلى الحد الأقصىCtrl+F11 لإضافة ورقة الماكروCtrl+A لتظليل ورقة العمل بأكملهاCtrl+B لجعل خط الكتابة ثقيل (Bold)أو إعادته للوضع العاديCtrl+D للنسخ في الخلية نسخة مماثلة للخلية التي فوقهاCtrl+F لفتح مستطيل خيارات FindCtrl+H لفتح مستطيل خيارات ReplaceCtrl+I لجعل خط الكتابة مائلا أو إزالة الإمالةCtrl+N لفتح كتاب عمل جديدCtrl+O لاستدعاء كتاب عمل تم تخزينه من قبلCtrl+P لفتح نافذة أمر الطباعةCtrl+R لنسخ الخلية نسخة مماثلة للخلية التي على يسارهاCtrl+S للحفظCtrl+U لجعل خط الكتابة مسطراCtrl+V للصقCtrl+X للقصCtrl+Z للتراجع عن أخر أمر أو عمليةCtrl+Home للانتقال إلى الخلية الأولى فى ورقة العملCtrl+End للإنتقال إلى أخر خلية في الورقةالأسهم+Ctrl للانتقال إلى أخر الورقة في اتجاه السهمCtrl+Esc لفتح قائمة البداية Start; +Ctrl لإدخال التاريخ الحالي في الخلية;+Ctrl+Shift لإدخال الوقت الحالي في الخليةCtrl+Page Down للانتقال إلى الورقة التالية في كتاب العملCtrl+Page Up للانتقال إلى الورقة السابقة في كتاب العمل&+Ctrl+Shift لتسطير الخلايا المظللة- +Ctrl+Shift لإزالة تسطير الخلايا المظللة#+Ctrl+Shift لتحويل التاريخ إلى الطريقة التالية(يوم/شهر/سنة)$+Ctrl+Shift لتنسيق الأرقام بوضع علامة العملة%+Ctrl+Shift لتنسيق الأرقام بوضع علامة النسبة المئوية)+Ctrl+Shift لإظهار الصفوف المختفية(+Ctrl+Shift لإظهار الأعمدة المختفيةCtrl+Shift+End لزيادة التظليل إلى حواف ورقة العملأو Ctrl+Shift+Homeمفاتيح الأسهم+Ctrl+Shift لزيادة التظليل حتى حافة ورقة العمل حسب اتجاه السهم= +Ctrl+Shift لعرض مستطيل حوار InsertCtrl+Shift+F3 عرض مستطيل حوار Create NamesCtrl+Spacebar لتظليل العمود الحالي بالكاملDelete لمسح النطاق المظللEsc لإلغاء عملية F1 لاستدعاء مجموعة الخيارات الخاصة بالتعليمات المساعدةF2 لتعديل بيانات الخلية الحاليةF3 لاستدعاء أسماء الخلايا أثناء كتابة المعادلاتF4 لتكرار أخر عمليةF5 لتنفيذ أمر Go toF6 للانتقال إلى القسم الأخر من ورقة العمل في حالة تقسيمهاF7 للتدقيق الإملائيF9 لإتمام العمليات الحسابية في كافة أوراق العملF10 تنشيط شريط القوائمF11 لإنشاء رسم بياني خاص بالبيانات المظللةF12 للحفظHome للانتقال إلى بداية الصفShift Backspace لتقليل التظليل وقصره على الخلية الحالية فقطShift Enter للانتقال خلية إلى أعلىShift Tab للانتقال خلية جهة اليسارTab للانتقال خلية جهة اليمين1 point
-
المفاتيح الوظيفية المفتاح الوصف F1 عرض جزء المهام تعليمات Microsoft Office Excel . يستخدم CTRL+F1 لعرض الشريط أو إخفائه، وهو مكوّن في واجهة مستخدم Microsoft Office Fluent. ينشىء ALT+F1 مخطط للبيانات الموجودة في النطاق الحالي. يدرج ALT+SHIFT+F1 ورقة عمل جديدة. F2 تحرير الخلية النشطة ووضع نقطة الإدراج في نهاية محتويات الخلية. ونقل نقطة الإدراج إلى "شريط الصيغة" في حالة إيقاف تشغيل التحرير في إحدى الخلايا. يضيف SHIFT+F2 تعليق إلى خلية أو يحرره. يعرض CTRL+F2 إطار المعاينة قبل الطباعة. F3 عرض مربع الحوار اسم اللصق. يعرض SHIFT+F3 مربع الحوار إدراج دالة. F4 تكرار الأمر أو الإجراء الأخير إذا كان ممكناً. عند تحديد مرجع خلية أو نطاق في صيغة، يؤدي الضغط على F4 إلى التنقل عبر المجموعات المختلفة من المراجع المطلقة والنسبية. يغلق CTRL+F4 إطار المصنف المحدد. F5 عرض مربع الحوار الانتقال إلى. يستعيد CTRL+F5 حجم إطار المصنف المحدد. F6 يستخدم للتبديل بين ورقة العمل والشريط وجزء المهام وعناصر تحكم التكبير والتصغير. ففي ورقة العمل التي تم تقسيمها (القائمة عرض، الأمر إدارة هذا الإطار وتجميد الأجزاء وتقسيم الإطار)، يتضمن F6 الأجزاء المقسمة عند التبديل بين الأجزاء وناحية الشريط. يستخدم SHIFT+F6 للتبديل بين ورقة العمل وعناصر تحكم التكبير والتصغير وجزء المهام والشريط. يستخدم CTRL+F6 للتبديل إلى إطار المصنف التالي عند فتح أكثر من إطار مصنف. F7 عرض مربع الحوار تدقيق إملائي لإجراء تدقيق إملائي في ورقة العمل النشطة أو النطاق المحدد. ينفذ CTRL+F7 الأمر نقل ضمن إطار المصنف عندما يكون غير مكبر. يمكن استخدام مفاتيح الأسهم لنقل الإطار وعند الانتهاء، اضغط ENTER أو ESC لإلغاء الأمر. F8 تشغيل وضع التوسيع أو إيقاف تشغيله. في وضع التوسيع، يظهر تحديد موسع في سطر المعلومات وتوسع مفاتيح الأسهم التحديد. تمكنك SHIFT+F8 من إضافة خلية أو نطاق غير متجاور إلى تحديد من الخلايا باستخدام مفاتيح الأسهم. ينفذ CTRL+F8 الأمر حجم (الموجود في القائمة تحكم الخاصة بإطار المصنف) عندما يكون أي مصنف غير مكبر. تعرض ALT+F8 مربع الحوار ماكرو لإنشاء ماكرو أو تشغيله أو تحريره أو حذفه. F9 حساب كافة أوراق العمل الموجودة في كافة المصنفات المفتوحة. تحسب SHIFT+F9 ورقة العمل النشطة. تحسب CTRL+ALT+F9 كافة أوراق العمل الموجودة في كافة المصنفات المفتوحة، بغض النظر عما إذا كان تم تغييرها منذ آخر عملية حساب. يعيد CTRL+ALT+SHIFT+F9 فحص الصيغ المعتمدة ثم يحسب كافة الخلايا الموجودة في كافة المصنفات المفتوحة، بما في ذلك الخلايا التي لم يتم تحديدها لحاجتها للحساب. يستخدم CTRL+F9 لتصغير إطار المصنف إلى رمز. F10 تشغيل تلميحات المفاتيح أو إيقاف تشغيلها. يعرض SHIFT+F10 القائمة المختصرة للعنصر المحدد. يعرض ALT+SHIFT+F10 القائمة أو الرسالة للعلامة الذكية. إذا كان هناك أكثر من علامة ذكية، يستخدم للتبديل إلى العلامة الذكية التالية ويعرض القائمة أو الرسالة. يكبر CTRL+F10 إطار المصنف المحدد أو يقوم باستعادته. F11 إنشاء مخطط للبيانات الموجودة في النطاق الحالي. يدرج SHIFT+F11 ورقة عمل جديدة. يفتح ALT+F11 محرر Microsoft Visual Basic الذي يمكن إنشاء ماكرو به باستخدام Visual Basic for Applications (VBA) . F12 عرض مربع الحوار حفظ باسم.1 point
-
أخى الفاضل / وائل الاسيوطي أخى الحبيب / عبد العزيز البسكرى أخى الحبيب / أبو سليمان أخى الحبيب / ياسر العربى الأب والأستاذ القدير / محمد حسن المحمد أشكركم جميعا لمروركم الكريم وما أنا إلا شخص قام بتجميع كنذ من كنوز معلم وأستاذ قدير / حسام عيسى زاده الله من العلم الكثير والكثير وأرجوا من الله أن أكون وفقت فى تجميع الدروس وللأخ القدير الغالى / ياسر العربى لمسه فنيه بسيطة فى تنسيق الدروس سوف يقوم بطرحها مرة أخرى تقبلوا خالص تحياتى وتقديرى1 point
-
أخي الحبيب م/ياسر السلام عليكم ورحمة الله وبركاته جزاكم الله خيراً على ماقدمتم فكرة رائعة ...1 point
-
مجهود رائع اخي الغالي ياسر فتحى ومبادرة كنت انوي ان اقوم بها ولكنك سبقتنا للخير المهم اخي الغالي هرخم عليك شوية التنسيقات كانت عاوزه تظبيط الكلام من الشمال لليمين ولكم مني كل الشكر والتقدير1 point
-
ما شاء الله ا جمتع اجتماع المحبة بين الاخوه ياسر و الاخ حسام خلصت الى ابداع متكامل بارك الله فيكم جميعا1 point
-
السّلام عليكم و رحمة الله و بركاته مجهود رائع من أستاذيْن أكثر من رائعيْن بارك الله فيك أستاذنا القدير " حسام عيسى " على الموسوعة العلميّة القيّمة و الثّمينة و النّادرة جزاك االله خيرًا و زادك من علمه و فضله بارك الله فيك أستاذنا الغالي " ياسر فتحي البنّا " على العمل المتقن .. و الاجتهاد الجبّار .. الذي قمت به .. من أجل إفادتنا و تسهيل أمورنا جزاك الله خيرًا و جعل كل حرف ممّا كتبتَه بألف حسنة .. هذا إحسان منكَ و إنّ الله لا يضيع أجرَ المحسنين فائق إحتراماتي1 point
-
اخي ياسر السلام عليكم ورحمه الله وبركاته يسعدني ان اكون اول من يحمل الملف مجهود ليس بالهين جزاك الله خيرا انت واخي صقر علي مجهوداتكم1 point
-
وامثلة اخرى على استعمال الوحدة النمطية ومناداتها من الاستعلام: http://www.officena.net/ib/topic/64880-كيفية-جمع-قيمه-اكثر-من-حقل-ب-استعلام/?do=findComment&comment=422306 و http://www.officena.net/ib/topic/64683-خلل-في-تقريب-حقل-محسوب-في-استعلام/?do=findComment&comment=421364 جعفر1 point
-
شكرا أخي الاستاذ رمهان على هذا الشرح والان الى الجانب العملي لا تستطيع ان تنادي هذه الوحدات بالطرق التقليدية ، وكل لغة (مثل VB, VBA, C++, ...) لها طريقتها الخاصة في مناداة هذه الوحدات ، وبالنسبة الى اكسس ، فالرابط التالي يعطينا امثلة في كيفية استخدامها: http://access.mvps.org/access/index.html وملك الوحدات النمطية وبالذات للرسومات في الاكسس: http://lebans.com/ جعفر1 point
-
1 point
-
اهلا بك ابو عبدالله عايزك تفهم ان موضوعك موضوع مفتوح نوعا ما ! او للاجابة يحتاج وقت وشرح ولابد من التطرق للاساسيات علشان نكمل ! وبرضه يا اشرح شي بشكل علمي لانه سيكون مرجع لكل من يمر هنا ! لذلك مثل هذه الاشياء خذها من مصادرها الصحيحة والموثوقة افضل مثل : كتب - موقع ميكروسوفت ! انصحك ان تاخذ كتاب في الاساسيات وبتسلسل المواضيع بدون القفز من فصل لاخر ! الشي الذي ممكن اضيفه هنا هو : عايزك تتخيل ان هذا البريمج (الاكسس) به قاعدة بيانات مصغرة - اداة تصميم وتطوير - بيئة لكتابة اكواد ! كلها هذا ونحن نعرف ان كل منها موجود كمنتج مستقل من شركات اخرى ! بينما هذه كلها موجودة في ملف واحد ! وملف ايه ؟ ملف بيانات ! بل كل وحدة عبارة عن كائن داخل هذا الملف ! بمعنى انتي الوحدة النمطية اللي نكتب فيك الاكواد ماخذه شكل مصغر من عمل ادوات التطوير المستقلة مثل الترجمة وتتبع الاخطاء وغيرها وتحويل الكود الى لغة الكمبيوتر ! وهية مع هذا كله مازالت كائن في ملف الاكسس ! فمش عارف هل ننظر للموضوع استخفاف بعقولنا ام انه ابداع في هذا المنتج ؟!!!!! وهنا انا حجيبك على استفساراتك ولكن اتمنى ان لاتكون حلقة مفتوحة باستفسار عن جواب لاستفسار سابق وهكذا ! وصدقني ابداية مع كتاب وبتسلسل منطقي افضل بكثير من المواضيع التي تكتب بالانترنت وذلك لاسباب عدة منها انت لاتعرف مستوى كاتب الموضوع او صحة مايكتب عكس الموجود بالكتب والمعتمدة ! ** كلمة private تحدد مدى حياة المتغيرscope ! فبها يكون حي فقط في المكان الذي ولد به اي عرف به ! فمثلا ولد في وحدة نمطية عامة فانه يعرف وحي في تلك الوحدة فقط ! ولدة في وحدة فئة نموذج فانه حي ويعرف هنا فقط ! بمعنى لو ناديته منكا اخر ستجده ميت ولا يستجيب ! عكس public ** byval و byref تستخدم لتحديد نوع او اسلوب تمرير المتغيرات للاجراءت والدوال ! بالعربي : بالقيمة او المرجع ! فاذا مررت قيمة متغير من نوع قيمة فانه للرغبة او عدم الاستطاعة في تغيير قيمة المتغير الاساسية عكس بالمرجع التي يمكن تغيير قيمة المتغير من خلال الاجراء او الدالة ! كما ان الموضوع يطول حول مسالة تعريف المتغيرات نفسها بانها من نوع قيمة ام مرجع ! فهل ممكن امرر قيمة متغير معرف انه مرجع لدالة تستقبل بالقيمة ؟ !! ** رابط لل api : https://msdn.microsoft.com/en-us/library/windows/desktop/ff818516(v=vs.85).aspx http://allapi.mentalis.org/apilist/apilist.php طبعا تاكد من توافق الدالة مع اصدار الويندوز! هذا متمنيا ان حصل لو جزء من ما تريد ! كما انبه على ان الشرح لا بد ان ياتي من استاذ فهو علم بحد ذاته فليس المقصود بالاستاذ بقدر مايملك من معلومة ولكن بقدر رضا تلاميذه في ايصال المعلومة ! تحياتي1 point
-
api اختصار application programming interface بالعربي برمجة واجهة التطبيقات وبالبلدي: هي دوال تحاكي الويندوز ! مثلا هناك اوامر يحتاجها المبرمج وهذا الامر اصلا واحد من مكتبات الويندوز على شكل دالة ! وكل مكتبة في الويندوز بها دوالها مغلفة ! فاروح انادي الدالة هذه بشرط ذكر اسم مكتبتها ! بمعنى هذه الدالة يستخدمها الويندوز وانت كمان تستخدمها خاصة اذا بتحاكي شي خارج برنامجك والذي لن يستطيع برنامجك يفهم اللغة للتخاطب ! فمثلا اغلاق ويندوز ! اروح انادي الدالة الخاصة بهذا مع ذكر مكتبة وجودها بها ! فانت ذهبت تخاطب برامج اخرى بهذه الدالة لقصور برنامجك في التخاطب ! وقال لك الاكسس اذا عايز تنادي حاجة زي كدا لابد تحطها لي في وحدة نمطية ! بمعنى لو عايز اضيف سجل في جدول مش معقوله انادي دالة api لانهم الويندوز مش حيفهم انت عايز ايه ! فقال لك ياعمي انا شغلت لك الاكسس واموركم الداخلية خلصوها مع بعض ! والاكسس حيزعل ويقول انت رايح للويندوز في امر زي كدا ! انا لدي دوالي وكائناتي اللي تعمل الحاجة دي ! اما لو فيه حاجة ما اقدرش عليها روح لمكتبات الويندوز وخذ اللي انت عايزه وهاتها لي في وحدة نمطية عامة ! ممكن يخطر في بالك عايز افتح الاكسل من الاكسس ! لو فكرت قليلا اكيد هناك دالة api بتعمل كذا لانه الويندوز بيعملها وهو فتح وتشغيل الاكسل ! بس هنا الاكسس برضه بيعمل الحاجة بس عايز منك ان تضيف مرجع في المراجع او تبحث وتتعلم ويمكن فيه دالة في الاكسس بتعمل كذا ! باختصار api دوال كثيرة جدا بحجم مكتبات الويندوز عليك معرفة اسمها ومكتبتها ونوع متغيراتها الممررة لها ومكان وجودها لكي تستطيع استخدامها ! لاحظ انه لو شغلت الاكسس على غير ويندوز مش حيفهم عليها ! بل لاحظ كيف انه عند تغير اصدارات الويندوز عليك مراجعة شكل الدالة الجديد ! بمعنى ابتعد عنها الا للضرورة !1 point
-
بارك الله فيك معلمنا الفاضل انت بالنسيه لنا مع هذه الصحبه الجميله من المعلمين الذين يقدمون يد العون والمعلومه لوجه الله تعالى وبصدق احاول المحافظه على اعمالهم الجميله وكنت اتمنى ان استطيع نقل جميع مواضيع الاساتذه هنا للحفظ ولتكن مرجع للجميع1 point
-
الخطوه الأهم في تصميم اي قاعدة بيانات هي وضع مخطط العمل , و لكي نعرف مخطط العمل لابد من الاحاطه بالهدف المطلوب من انشاء قاعدة البيانات . لدينا شركة NorthWind أو الرياح الشماليه , شركة تقوم بشراء وبيع البضائع , عملية الشراء غير مطروقه في هذه القاعده , و انما الاهتمام كله موجه لعملية البيع ( و طبعا بالامكان تصميم مايلزم لعمليات الشراء ) . عملية البيع تتم بناء على طلبيات مسبقه من العملاء , بحيث يتم تحديد الأصناف المطلوب ارسالها للعميل و الأسعار ووسيلة الشحن وموعد الشحن المطلوب و رقم الموظف الذي قام بتسجيل بيانات الطلبيه . بالنسبه للبضائع لابد من مراعاة أن يكون هناك مخزون متوفر حيث أن البضائع التي تم بيعها للعملاء ستخفض الرصيد الموجود بالمخازن , و طبعا في حال انخفاض هذا الرصيد عن حد اعادة الطلب , فيجب اعداد طلبية شراء لتغذية المخزون , و لكن كما ذكرنا عملية الشراء غير متطرق اليها في هذه القاعده . اذا يمكننا الآن أن نضع تصورا للجدول التي ينبغي انشاؤها حيث : - طالما لدينا بضائع يتم بيعها اذا لابد من انشاء جدول خاص بالبضائع Product - لدينا عملاء اذا نحتاج الى جدول للعملاء Customers - لدينا طلبيات اذا نحتاج الى جدول خاص للطلبيات اذ لكل عميل طلبيه مستقله Orders هذه هي الجداول الرئيسيه التي نحتاجها و سنقوم بتصميمها الآن . قبل البدء بتصميم الجداول لابد من الاشاره الى بعض التوصيات في بناء الجداول و هي : أولا : الجدول هو المادة التخزينيه للبيانات الرئيسيه , اذ يجب أن يحتوي على القيم التي لاتتأثر بغيرها اي على سبيل المثال اذا كانا نريد حساب المعادله التاليه القيمه = الكميه * سعر الوحده يمكن أن نضع حقلا للكميه المباعه و حقلا لسعر الوحده أما القيمة و التي هي عباره عن سعر الوحده * الكميه , فلا يجب أن يكون حقلا ضمن الجدول وذلك لأنه يتأثر بقيمة كل من الكمية و السعر فاذا تغير سعر الوحده فان الجدول لايستطيع حساب القيمه من تلقاء نفسه الا من خلال تشغيل كود معين , لذلك يستعاض عن هذا باستخراج القيمة من خلال استعلام يحوي حقل محسوب يساوي الكميه * السعر ثانيا : يجب فصل البيانات الخاصه بجزئيه معينه عن بعضها , مثلا الجدول الرئيسي لدينا هو جدول الطلبيات , و حيث أننا نريد أن ندخل اسم العميل في الطلبيه , و حيث أننا نحتاج بنفس الوقت لمعرفة بيانات كامله عن هذا العميل , فاذا كنا سنقوم بادخال بيانات العميل هذه كل مره في جدول الطلبيات فسيكون هذا عملا مرهقا , لذلك احتجنا أن تكون بيانات العميل في جدول مستقل تجتمع فيه بياناته الكامله , و نكتفي في جدول الطلبيات بوضع حقل واحد لرقم العميل , و بعملية الربط بين الجدولين نستطيع معرفة مانريد من بيانات عن هذا العميل . ثالثا : يفضل أن تكون استخدام الأسماء الانكليزيه لكل مكونات قاعدة البيانات و خاصة اسماء الجداول و الحقول , لأن استخدام الأسماء العربيه يسبب ارباكات أثناء العمل بالمعادلات و أكواد الفيجوال بيسيك رابعا : تجنب وضع مسافات في التسميات , مثلا اذا كنت تريد تسمية Product List فالأفضل وصلها هكذا ProductList لنبدأ الآن بتصميم الجدول الأسهل في هذه القاعده و هو جدول العملاء , و لنتصور أنه يحتوي الحقول التاليه : اسم العميل CompanyName العنوان Address المدينه City الدوله Country المنطقه Region الرمز البريدي PostalCode الهاتف Phone الفاكس Fax و سنحتاج اضافة لذلك بيانات عن الشخص الذي سنتصل به مثل اسمه ContactName و عمله الوظيفي ContactTitle و طبعا قبل كل ذلك نحتاج الى كود العميل CustomerID و هو الذي سيكون صلة الربط مع الجداول الأخرى و المفتاح الرئيسي لهذا الجدول قاعدة البيانات هذه موجوده بشكل جاهز مع الأكسس من قائمة الأدوات - أمثله , يمكن تنزيلها للاطلاع عليها , و لكن من أراد أن يستفيد أكثر فليحاول التصميم بنفسه لزيادة مهارته و ليبدأ بتصميم جدول العملاء و سنتابع ان شاء الله بقية الجداول في الدرس التالي1 point