بحث مخصص من جوجل فى أوفيسنا
![]()
Custom Search
|

rudwan
المشرفين السابقين-
Posts
2926 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
6
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو rudwan
-
الرساله التي كانت تظهر تدل على حجم كبير من مكونات قاعدة البيانات , حاول ضغط و اصلاح القاعدتين الواجهة و قاعدة البيانات ثم أعد المحاوله
-
طبعا الخطوه التاليه في الدروس هي شرح أنواع الاستعلامات , الجدول , اي جدول يحتوي كامل المعلومات المدخله فيه , فلو أخذنا على سبيل المثال جدول الطلبيات , سيحتوي بعد فترة عددا كبيرا من السجلات , و لكن لو أردنا معرفة فقط الطلبيات الخاصه بالعميل رقم 4 , علينا بالاستعلام , نعمل استعلام نختار فيه جدول الطلبيات , نجد في صفحة تصميم الاستعلام في الأسفل بعد اسماء الحقول نجد معايير , هنا نضع رقم العميل في معيار الحقل رقم العميل ثم نشغل الاستعلام فتظهر لنا البيانات الخاصه بالعميل رقم 4 فقط و لو أردنا معرفة الطلبيات في تاريخ 01/01/2005 مثلا , نضع في حقل معايير الحقل رقم الطلبيه تاريخ 01/01/2005 , تظهر لنا البيانات الخاصه بذلك التاريخ , و هكذا و للاستعلامات أنواع عديده سنشرحها ان شاء الله حال الطلب , و لكني أرتأي أن ابدأ بالنماذج البسيطه حيث سيتم بواسطتها ادخال البيانات , و أي نموذج يستدعي وجود استعلام سنخرج قليلا عن موضوع النماذج و نشرح الاستعلام . و لنبدأ بشرح النماذج البسيطه و نأخذ على سبيل المثال نموذج العملاء و كيفية تصميمه من الصفحه الرئيسيه لقاعدة البيانات – نماذج , نختار جديد ثم معالج النماذج في اسفل تلك القائمه يوجد سهم لاختيار الجدول الذي سنبني عليه النموذج , نفتحه و نختار منه جدول العملاء ثم موافق هنا تظهر لائحة الحقول التي يحتويها الجدول , و علينا اختيار الحقول التي نرغب أن تكون في النموذج و هذا الاختيار للعرض فقط , اي أننا غير ملزمين باختيار جميع الحقول , سنختار فقط الحقول التي نرغب أن نتعامل معها أي التي سندخل فيها البيانات , و لنفرض هنا أننا اخترنا جميع الحقول هنا تظهر لنا عدة اشكال لتصميم النموذج , اما عمودي أو جدولي أو صفحة بيانات أو توافقي أو جدول محوري أو مخطط محوري , و سنختار النوع الأول المحوري هنا تظهر لنا عدة اشكال للنموذج نستطيع اختيار أحدها , و يمكن تعديله لاحقا اذا ظهر أنه غير مناسب , و لنتوافق مع مثال قاعدة البيانات سنختار الشكل InterNational و هنا يطلب تسمية النموذج الذي نرغب و يأخذ تسميه افتراضيه هي نفس تسمية الجدول , و لنكن نحرص أن لانضع فراغات بين الأسماء اذا كان الاسم مركب مثل CustomerSubform ثم انهاء هذا النموذج بشكله المبسط , و سنشرح فيه بعض التنسيقات الاضافيه لاحقا ان شاء الله
-
كم جدولا في قاعدة بياناتك ؟ و ما هو حجم الملف الكلي ؟
-
كيف اجعل التقرير يعرض بيانات الشهر الحالي
rudwan replied to حسن المؤمن's topic in قسم الأكسيس Access
اجعل التقرير يعتمد على استعلام بسيط يأخذ بياناته من الجدول الذي تريد في الاستعلام , في حقل التاريخ ضع الشرط التالي Month([orderdate])=Month(Now()) -
كيف يكون النموذج للادخال والاستعلام في نفس الوقت
rudwan replied to حمدى's topic in قسم الأكسيس Access
انظر المثال المرفق . افتح نموذج البحث , تظهر لك لائحة قيم ( يمكنك ترتيبها حسب ماتريد ) و بالضغط على اي سجل يفتح النموذج على صفحة البيانات المطلوبه Books2k.rar -
أهلا بك أخي جمال أقترح أن تبدأ بارفاق أول ملف عن الجداول المقترحه , و ندعو من يرغب من الأخوه المساهمه في انجاز البرنامج
-
أنشى اجراء و استخدمه في النموذج الرئيسي باستخدام مجموعة السجلات حيث بواسطة هذا الاجراء تستعرض سجلات الفاتورة المحدده واحدا تلو الآخر و تعدلها اذا حققت شرطا معينا Private Sub Check_Inv() Dim Fa, Re As dao.Recordset Set Fa = CurrentDb.OpenRecordset("TableName Of Subform Source") Fa.Filter = "[SubformID] = " & Me.FormID Fa.Requery Set Re = Fa.OpenRecordset Re.MoveFirst Do Until Re.EOF ' Put Ur Condition Here Re.Edit Re![NewValue] = Re![OldVlaue] * [New Formula] Re.Update Re.MoveNext Loop Re.Close End Sub
-
كيف يكون النموذج للادخال والاستعلام في نفس الوقت
rudwan replied to حمدى's topic in قسم الأكسيس Access
نفس النموذج الذي تعرض فيه بياناتك , يمكنك أن تضيف اليه زر بحث , و في حال وافق المطلوب ينقلك مباشرة الى السجل الذي يطابق الاسم أو الرقم -
شكرا أخي التقني و الى مزيد من الأفكار
-
طبعا قبل شرح كيفية تصميم العلاقات بين جداول قاعدة NorthWind لابد من الاشاره الى أن العلاقه تكون بين حقلين من جدولين - يكون لهما نفس نوع البيانات , أي لاتربط حقل نصي مع حقل رقمي , أو حقل له تنسيق رقم صحيح مع حقل له تنسيق رقم مزدوج و هكذا - أحد الحقلين يفضل أن يكون مفتاحا رئيسيا بتأمل تصميم العلاقات بين جداول قاعدة NorthWind نجد أن شكل العلاقه مثلا بين الجدولين Products – Categories على حقل رقم الشريحه في كلا الجدولين أي CatigoruID يأخذ الشكل الثاني أي تقييد بمعنى أن كل صنف يتم ادخال بياناته من جديد لابد من ملْ حقل رقم الشريحه فيه , و لكن لم يتم اختيار تتابع التحديث أو تتابع الحذف , أي الشكلين الثالث و الرابع من العلاقات المشروحه في الدرس السابق و ذلك لمنع المستخدم من تغيير رقم الشريحه أو الغاؤها طالما أن هناك أصنافا تتبع هذ الشريحه و كذلك الحال شكل بقية العلاقات حيث يربط : جدولي الموردين و الأصناف , على حقل رقم المورد في كلا الجدولين جدولي الأصناف و تفصيل الطلبيات , على حقل رقم الصنف في كلا الجدولين جدولي الطلبيات و الموظفين , على حقل رقم الموظف في كلا الجدولين جدولي الطلبيات و شركات الشحن , على حقل رقم الشاحن في كلا الجدولين جدولي الطلبيات و العملاء , على حقل رقم العميل في كلا الجدولين , مع ملاحظة أنه هنا تم اختيار نوع العلاقه الثالثه أي السماح بتعديل كود العميل في جدول العملاء , وينتقل هذا التأثير الى جدول الطلبيات بحيث يتم تعديل كل طلبيات هذا العميل حسب رقمه الجديد , و طبعا مع عدم السماح بحذف رقم العميل , لأنه في هذه الحالى سيؤدي الى حذف طلبياته كامله , و هذا خطأ و ذلك لأنه محاسيبا سيتم تسجيل كل الطلبيات بقيمها و حركاتها في المستودع , ففي حال الغاء التعامل مع هذا العميل لا يجب حذف سجله من جدول العملاء لأن ذلك سيؤدي الى حذف سجلات محاسبيه و قيود مخزنيه تؤدي الى خلل في أرصدة المستودع و في الميزان المحاسبي لذلك اذا كنا نريد الغاء هذا العميل من لائحة التعامل , يفضل اضافة حقل صح أو خطأ الى جدول العملاء , فاذا رغبنا بعدم استمرار التعامل معه يتم التأشير على حقل عدم التعامل و بالتالي لايدرج اسمه ضمن العملاء الفعالين ( هذا يتم عن طريق استعلام ) العلاقه الأخيره و هي بين جدولي الطلبيات و تفضيل الطلبيات , الربط على رقم الطلبيه في كلا الجدولين , و هنا نختار تتابع الحذف , اي مثلا لو اردنا الغاء طلبيه فيجب الغاء تفصيل طلبياتها من جدول تفصيل الطلبيات , و الا ستكون هناك أصناف وهميه تخرج من المستودع لطلبيع ملغاة , لذلك نختار تتابح الحذف , ففي حال الغاء طلبيه تلغى تلقائيا كل الصناف التي سجلت لها على جدول تفصيل الطلبيات .
-
في الاستعلام أو النموذج , انشى حقلا جديدا و سمه New New=m1&"+"&m2&"+"&m3&"+"m4
-
عفوا نسيت القول أن حرف h ثابت لا تغيره أما قيمة بداية الوقت و نهاية الوقت فيجب هنا أن تختار بالضيط تسمية مربعي النص الذين يحتويان قيمة بداية الوقت و نهايته
-
من على النموذج , أنشأ مربع نص غير منضم , ثم اضغط على يمين الفاره تظهر لك صفحة الخصائص , فيها أولا تنسيق , ثم بيانات في صفحة البيانات اجعل مصدر الصف Control Source انسخ قيمة المعادله اليه مابعد اشارة = أي : =DateDiff("h","[EndTime]","[FirstTime]")
-
اجعل تنسيق الحقل رقم بدلا من تاريخ , و يأخذ قيمته من المعادله : TotalHours=DateDiff("h","[EndTime]","[FirstTime]") و بعد ذلك اضربه بالرقم الذي تريد
-
أخي عبد الظاهر و جميع الأخوه بارك الله فيكم جميعا اشكركم على تعبيراتكم الرقيقه و جزاكم الله خيرا , و في الحقيقه الموضوع طويل و لازلنا في مرحلة الجداول و باقي لنا شوط طويل مع هذا البحث , و كنت أود من الأخوه الذين يطلعون على هذا البحث أن يعرضوا تقييمهم للموضوع بشكل عام . 1 - هل ترون أن شرح NorthWind فيه فائده , أم نكتفي بدروس نظريه ؟ 2 - هل ترون أن هذا البحث نظري و ليس فيه جانب عملي ؟ 3 - هل طريقة الشرح بسيطه وواضحه و مستساغه , أم بحاجه لتوضيح و تفصيل أكثر ؟ 4 - هل ترون أن الدروس أصبحت ممله و بحاجه لاختصار أكثر ؟ 5 - هل جرب أحدكم أن يصمم بنفسه جداول المشروع ؟ أرجو ممن يتكرم علينا بالرد على هذه الأسئله فربما نعدل مسيرة المشروع حسب مرئياتكم فالفائده لكم و نحن طوع أمركم , و في حال وردت تعقيبات سأفتح موضوعا خاصا لها حتى لايصبح هناك تشويش على القارى الكريم . و تعقيبا على كلام الأخ عبد الظاهر , أنا أسأل الله ان كتب لي أجرا , أن يجعل ذلك في صحيفة أعمال أغلى الناس و أحبهم الى قلبي , أمي , رحمها الله و غفر لها و جعلنا و اياها من أهل جنته و رضوانه .
-
السلام عليكم من بعد اذن الأخوه الأفاضل . أخ ميدو كان موضوعك أول موضوع في قسم برامج تحت الانشاء الذي تم افتتاحه خصيصا لمساعدة الأعضاء الجدد على تصميم برامجهم و قد كان يشرف على موضوعك الأخ خضر الرجبي , و لكن توقفت أنت عن المتابعه و لم تتم الموضوع معه مع أنه انتظرك طويلا و لكن بلا جدوى
-
بعد أن فرغنا من تصميم الجداول ننتقل الآن الى بناء العلاقات بين هذه الجداول و من أحب الاستزاده أكثر يمكنه مراجعة الدرس التالي بداية العلاقات بين الجداول و لتطبيق هذا الشرح , حمل الملف المرفق و فيه بشكل رئيسي جدولين هما : المؤلفين Authores - الكتب Books في جدول الكتب لدينا حقل رقم المؤلف و يأخذ قيمته من رقم المؤلف في جدول المؤلفين جدول المؤلفين يتكون من ثلاثة سجلات , و جدول الكتب يتكون من خمسه سندع هذين الجدولين بدون أي علاقة بينهما , و ننشأ الاستعلام 1 نجد نتيجة الاستعلام لدينا 15 سجلا , أي 3 * 15 بمعنى أن كل سجل من جدول الكتب تم تكراره بحسب عدد سجلات المؤلفين , و ذلك لأنه لاتوجد علاقة بين الجدولين الآن لنحافظ على هذين الجدولين و ننسخهما أربعة مرات في كل مره تختلف شكل العلاقه و ذلك للتوضيح فقط . الحاله الثانيه الجدولين 1Authores - 1Books و سننشى بينهما علاقه , طبعا العلاقه المفروض أن تكون بين حقلين متطابقين في التعريف ( نوع البيانات – رقم الى رقم – نص الى نص و هكذا ) , ستكون العلاقه بين رقم المؤلف في كلا الحقلين ( البعض يخطى و يجعل العلاقه بين رقم المؤلف و اسم المؤلف ! ) نعمل الاستعلام 2 بين الجدولين , نجده يتألف من خمسة سجلات فقط , و ذلك بسبب انشاء علاقه بين الجدولين منعت تكرار السجلات بينهما . الآن هذه العلاقه غير مقيده , بمعنى أنه لو فتحنا جدول المؤلفين 1Authores وعدلنا قيمة حقل رقم المؤلف في السجل الثالث و جعلنا قيمتها 4 بدلا من 3 , يقبل التعديل , و لكن هذا التعديل لن ينعكس على جدول الكتب 1Books , و لبيان ذلك نفتح ذلك الجدول و نجد أن حقل رقم المؤلف في السجل الثالث أصبح فارغا و هو الذي كان يحوي سابقا القيمة 3 و لو عدنا الآن الى جدول المؤلفين و أعدنا القيمه من 4 الى 3 كما كانت , نجد تعود القيمه الى جدول الكتب . الآن لنحاول حذف سجل المؤلف رقم 3 بكامله من جدول المؤلفين , نجد أيضا أن السجل الثالث في جدول الكتب اختفت فيه قيمة حقل رقم المؤلف . الآن لو أردنا عمل قيد على العلاقه بين الجدولين بحيث تمنع التعديل أو الحذف في جدول المؤلفين حتى لاتنعكس على جدول الكتب , نلجأ الى النوع الثاني من العلاقات بحيث لو جربنا حذف أي سجل من سجلات جدول المؤلفين أو تعديل رقمه لن يقبل هذا التعديل طالما وجدت سجلات مرتبطه به في جدول الكتب . لو كنا نريد السماح بتعديل رقم المؤلف بشرط أن ينعكس هذا التعديل تلقائيا على السجلات التابعه له في جدول الكتب نلجأ الى النوع الثالث من العلاقات الآن لنحاول تغيير رقم المؤلف في جدول المؤلفين 3Authores من القيمه 3 الى 4 نجد أن السجل الثالث في جدول الكتب تغيرت قيمته تلقائيا الى القيمه الجديده 4 لكن لوأردنا حذف المؤلف بكامله من جدول المؤلفين لن يقبل الحذف بسب منع الحذف في العلاقه لذلك نذهب الى تصميم العلاقه , الجدول 4Authores و نضع اشارة صح على السماح بحذف السجلات المرتبطه و نحفظ التعديل ثم نحاول حذف السجل 3 بكامله من جدول المؤلفين , نجد أنه تم حذف السجل الثالث من جدول الكتب الذي كان يعود لذلك المؤلف . RelationShip.rar
-
شكرا أخ عبد المانع على هذا المثال أخ التقني أعد تحميل الملف مره أخرى , حيث أنه فتح عندي نموذج بداخله ثلاثة نماذج مختلفة الألوان , و عند الاغلاق تغلق الجميع
-
لايوجد في النموذج مماثل للتقرير لعمل التجميع و لكن يمكن استخدام دالة لعمل ذلك انظر المثال المرفق , حيث تم استخدام الداله التاليه لعمل تجميع على المبلغ =DSum("[curFreight]";"tblOrders";"[pkeyOrderID] <= forms![frmRunningSum]![pkeyOrderID]") حيث pkeyOrderID هوالمفتاح الرئيسي curFreight الحقل الذي تم التجميع عليه RunningSum.rar
-
قبل الانتقال الى التصميمات نلاحظ مايلي : في الجدول Categories على سبيل المثال لدينا الحقل CategoryID و هو الرقم المعرف لمجموعة الصنف , و كما ذكرنا في ملاحظه سابقه , كثير من الأخوه يختار مباشرة في مثل هذه الحاله اسم المجموعه و معلومات عنها دون أن يضع الرقم المعرف , و الرقم المعرف أفضل لنواحي الفهرسه و التصنيف و الفرز . و نجعل هذا الرقم مفتاحا أساسيا , يعني أن هذا الرقم هو الذي سيتم عليه عمليات الفهرسه و الفرز و كذلك فان من خصائص المفتاح الأساسي أنه لايقبل التكرار و هكذا نلاحظ بالنسبه لباقي الجداول لدينا الحقول CustomerID , EmployeeID , OrderID , ProductID , ShipperID , SupplierID لكن لدينا في الجدول Order Details مفتاحين أساسيين هما OrderID , ProductID لماذا ؟ الحقيقه أن الحقل OrderID يمكن أن يتكرر في هذا الجدول , اذ أنه عند تعبئة بيانات عدة اصناف لنفس الطلبيه فان رقم الطلبيه سيتكرر معنا في كل سجل جديد تابع لهذا الطلبيه , و لكن تم اضافة المفتاح الرئيسي الثاني و الذي هو رقم الصنف ProductID حتى يمنع تكرر ادخال نفس الصنف أكثر من مره في طلبيه واحده و هذا هو سبب جعل مفتاحين رئيسيين في جدول واحد يمكننا أن نصع أكثر من مفتاحين رئيسييين في جدول واحد حسب الحاله التي لانرغب التكرار فيها . مثلا : لو كنا لانمانع في أن يتكرر رقم الصنف في الطلبيه الواحده و لكن بشرط أن يكون سعر الوحده مختلفا مثلا , هنا نضع ثلاثة مفاتيح رئيسيه و هي رقم الطلبيه – رقم الصنف – سعر الوحده , و هكذا
-
طبعا لايمكن دمج هذه الحقول كلها في حقل واحد , ليس من الناحيه الفنيه , و انما من ناحية منطقية بناء البرنامج ان منطقية البرنامج هي التي تحكم تعدد الجداول أو جدول واحد , فلنأخذ مثلا أول جدولين لديك الشركات و العملاء , ان كلا من هذين الجدولين ملف خاص و مستقل عن الآخر لأن جدول الشركات يحوي بيانات الشركات فقط و ليس بيانات العملاء فكيف سيتم دمجهما معا ؟
-
أهلا و سهلا بك موضوعك طويل يا أخ قابيل و يحتاج وقت للتصميم و التوجيه و من أحب أن يشاركك في التصميم فستجدون المساعده ان شاء الله و نجعله مشروعا جماعيا تحياتي
-
نشر قواعد الاكسس على النت - شرح مفصل بالصور
rudwan replied to ahmedghoname's topic in قسم الأكسيس Access
السلام عليكم اخواني , الأخ أحمد يفرغ وقته حاليا و يبذل جهده للبداية باعداد مشروع عملي تطبيقا لما تم شرحه نظريا و هذه فرصه أرجو من الأخوه اغتنامها . فالمطلوب ممكن يجد لديه الرغبة في العمل , أن يبدأ باختيار مايرغب من الجداول و يقوم بتصميمها و يشير اليها للأخ أحمد , تحياتي -
الآن نعود الى ما كنا بصدده قبل درسين و هو انشاء جدول الطلبيات , حيث اضطررنا للعروج قليلا عن ذلك الجدول بهدف تصميم جدولي شركات الشحن – الموظفين , للاستفاده منهما في تصميم حقلي شركات الشحن و رقم الموظف . سنضيف الآن الى جدول الطلبيات حقلا باسم EmployeeID و يحول الى قائمه و يأخذ قيمه من رقم الموظف في جدول الموظفين و الثاني ShipVia و يأخذ قيمته من رقم شركة الشحن في جدول شركات الشحن و بذلك يكون لدينا جدول الطلبيات Orders مكونا مما يلي : رقم مسلسل للطلبيه OrderID رقم العميل CustomerID تاريخ الطلبيه OrderDate التاريخ المطلوب للتسليم لدى العميل RequiredDate تاريخ الشحن ShippedDate رقم الموظف EmployeeID الشاحن ShipVia سؤال , هل هذا الجدول كاف لتسجيل بيانات طلبية مبيعات ؟ طبعا لا , ينقص شي مهم جدا ألا و هو الأصناف المراد تحضيرها للبيع , و لكن كيف ستدخل هذه الأصناف في جدول الطلبيات ؟ من السهل أن نقول : نضيف حقلا لاسم الصنف الى جدول الطلبيات و حقلا آخر للكمية المطلوبه و حقلا ثالثا لسعر الوحده . حسنا و لكن ماذا اذا كانت الفاتورة تتكون من صنفين أو ثلاثة , سنضيف لكل صنف ثلاثة حقول آخرى , طيب ماذا لو كانت الطلبيه مؤلفة من ألف صنف مثلا , هل سنضيف ثلاثة آلاف حقل للجدول ؟ هذا الحل غير مجدي و غير مقبول أيضا من الناحية البرمجيه , اذ أنه في مثل هذه الحاله حيث طالما عدد الحقول غير محدد لذا من الأنسب اللجوء الى طريقه أخرى تستوعب ادخال عدد غير محدود من الأصناف على نفس هذه الفاتوره , و ذلك عن طريق انشاء جدول آخر فرعي لجدول الطلبيات و ليكن اسمه Order Details و هنا ستدخل الأصناف عبر هذا الجدول سجلا بسجل و ليس حقلا بحقل كما كان حلا غير مقبول . سيتكون جدول Order Details من الحقول التاليه : رقم الصنف ProductID رقم , و سيتحول الى قائمه و يأخذ قيمته من حقل رقم الصنف في جدول الأصناف الكميه Quantity سعر الوحده UnitPrice الخصم الفرعي على الصنف Discount اجمالي الصنف و الذي هو عباره عن الكميه مضروبا بسعر الوحده لن يكون حقلا من الجدول , اذ أن قيمته غير ثابته و تتأثر بتغير كل من حقلي الكميه و سعر الوحده , لذلك سيتم استنتاج القيمه بواسطة انشاء مربع نص في نموذج الطلبيه تسند اليه معادلة القيمه , لنتخيل شكل ادخال الأصناف على الطلبيه من خلال نموذج الطلبيات , لنأخذ مثلا شكل أي فاتوره من أي متجر نشتري منه , نجد لدينا غالبا ثلاثة أقسام للفاتوره , قسم الترويسه و فيها بيانات مثل اسم المتجر و عنوان المحل و رقم الفاتوره و تاريخها و اسم الزبون , ثم يوجد قسم جدولي لتسجيل بيانات الأصناف و كمياتها و سعر الوحده و اجمالي الصنف , و تذيل الفاتورة بمجموع عام للقيمه مضافا اليها نفقات أخرى مثل ضرائب أو تكلفة نقل ,, الخ ثم صافي قيمة الفاتوره , و ختم المتجر و على هذا الأساس سيتم عمل نموذج الطلبيات ( و الذي بنفس الوقت سيكون فاتورة العميل في حال الشحن ) , بحيث البيانات التفصيليه في ترويسة الفاتورة سيكون مصدرها جدول الطلبيات Orders بينما القسم الجدولي و الخاص بأصناف الفاتورة سيكون مصدر بياناته الجدول Order Details و هذا مايعبر عنه بالنموذج الفرعي و الذي سيتم الحديث عنه لاحقا , الآن سؤال , لنفرض أننا لانقوم بادخال البيانات عن طريق النموذج و انما عن طريق الجداول مباشرة سنقوم بداية بادخال البيانات الخاصة بترويسة الفاتورة رقم 340 مثلا في جدول Orders حيث سيكون لدينا OrderID = 340 سنذهب الآن الى جدول Order Details لادخال البيانات الخاصة بأصناف نفس الطلبيه , سندخل رقم الصنف و الكميه و سعر الوحده , طبعا هذا الجدول معبأ ببيانات أصناف تعود لطلبيات سابقه , و لكن كيف سيتم الاشارة في ذلك الجدول الى أن هذه الأصناف تعود للطلبيه رقم 340 و ليس الى غيرها ؟ هنا لابد من انشاء حقل جديد ضمن جدول Order Details و يسمى OrderID يتم ربطه مع نفس اسم الحقل في الجدول Orders ( العلاقات سيتم التحدث عنا لاحقا ) و يأخذ نفس القيمه أي 340 في حال تم الربط بين الجدولين على الحقل OrderID اذا سيتم تلقائيا ربط اصناف كل طلبيه بالسجل الرئيسي في جدول الطلبيات , أي بمجرد استعلمنا عن الطلبيه رقم 340 سنعرف اصنافها تلقائيا على أساس نفس هذا الرقم في الجدول الفرعي . و سيتضح هذا الأمر بدقة أكثر في حال تصميم نموذج الطلبيات و النموذج الفرعي له .
-
لنلقي مزيدا من الضوء على كيفية دمج الحقلين : الاسم الأول و الاسم الأخير في المعادله السابقه نبدأ بنفس الخطوات التي سبق شرحها أثناء عملية تحويل الحقل الى قائمة اختيار , حيث نضع المؤشر على اسم الحقل ثم ننتقل الى خصائص الحقل في الأسفل لدينا General – Lookup من Lookup نحول ال Display Contral من Check Box الى Combo Box ثم ننتقل الى حقل Row Source نضغط الأزرار الثلاثة على يمينه فتفتح لنا صفحة تصميم استعلام جديد – نختار منها جدول الموظفين نفسه ( حيث أن اسم المدير المطلوب ادراج اسمه هو موظف فعليا و اسمه موجود في جدول الموظفين ) . الآن نختار في الحقل الأول للاستعلام رقم الموظف كحقل معرف , نجعل الحقل الثاني في الاستعلام فارغا , ثم نختار الحقلين الاسم الأول و الاسم الأخير في الحقلين الثالث و الرابع من الاستعلام . الآن اذا كان الموظف اسمه الأول أحمد و الثاني حسن , نريد دمج هذين الاسمين ليكونا في حقل واحد قيمته أحمد حسن بدلا من أن يكونا في حقلين . الحل يكون بدمج قيمتي الحقلين في حقل جديد و ليكن اسمه Name سيأخذ مكانه في الحقل الثاني الفارغ من الاستعلام و يأخذ قيمة دمج الحقلين التاليه الآن لنجيب على بعض الأسئله التي قد تخطر ببال أحدنا : أولا : كيف تم الدمج بين الحقلين ؟ الجواب : اذا أردنا دمج حقلين معناها أن قيمة جديده ستنشأ من خلال هذا الدمج غير موجوده في الجدول , اذا سنعطيها تسميه جديده أي حقل جديد لكن هذا الحقل ضمن الاستعلام و ليس حقلا من الجدول , ثم نسند اليه القيمه الجديده و علامة الاسناد هي : مثلا لو كان لدينا حقلين Quantity , Price و نريد معرفة القيمه Value طبعا المعادله الأساسيه الرياضيه هي : Value=Quantiti * Price لكن في الاستعلام اذا أردنا تسمية حقل جديد فلابد من اسناد قيمه اليه و اشارة الاسناد هي علامة : و تكون معادلة ادراج القيمه كمايلي : Value:Quantiti * Price علامة & تقوم بدمج أي حقلين أو أكثر ( يمكن دمج عدة حقول في حقل واحد ) لكن بشرط أن هذا الدمج يكون من خلال الاستعلام أو النموذج أو التقرير و لكن لايمكن أن يكون في الجدول مطلقا . مثال لنختار ملف بيانات صغير غير ملف NorthWind ( الملف المرفق ) نجعل فيه الجدول Address فيه اسماء الآشخاص الثلاثيه ( الأول – الثاني – الثالث ) و رقم الهاتف و رمز المنطقه ) , ننشآ الاستعلام PhoneNumbers لدمج الحقلين رقم الهاتف و رمز المنطقه , طبعا سنضطر الى تسمية حقل جديد و ليكن FullPhone و نستخدم علامة & لدمج قيمتي الحقلين كما يلي : FullPhone: [code] & [phone] نشغل الاستعلام و نلاحظ كيف تم الدمج لو أردنا ادراج علامة فصل بين الحقلين - لابد من وضعها بين الحقلين رمز المنطقه و الهاتف كما يلي SeparetPhone: [code] & "-" & [phone] لماذا ؟ نلاحظ أن الاضافه على المعادله التي قبلها هي علامة - , و طالما أن هذه عباره عن نص و ليس رقم لذلك كان لابد من وضعها بين علامة " " , جربوا دمج الأسماء , الأول مع الثاني يكون : SName: [firstname] & [midname] نلاحظ أن الاسمين دمجا مع بعض تماما , و نحتاج الى مسافه بينهما , اذا : S1Name: [firstname] & " " & [midname] الان نريد دمج الأسماء الثلاثه مع بعض TName: [firstname] & " " & [midname] & " " & [LATname] نعود الى مثالنا في قاعدة NorthWind نجد أنه لأجل معرفة الاسم الكامل للمدير نضع Name: [LastName] & ", " & [FirstName] أما لماذا وضعناه في الحقل الثاني و ليس الثالث أو الرابع مثلا ؟ جوابه بعد قليل . نغلق الاستعلام الذي أنشأناه لاختيار اسم المدير فيعود بنا المؤشر الى صفحة تصميم الحقل Reportto نجد الحقل الثالث في الاستعلام هو مصدر الصف RowSource أي جملة الاستعلام الذي تم انشاؤه سابقا . بعده نجد حقل Bound Column و هذا يعبر عن ترتيب الحقل في الاستعلام الذي يجب أن يعطي قيمة الحقل الاساسيه في الجدول أي Reportto هذا الحقل سيأخذ قيمته من قيمة الحقل EmployeeID في الاستعلام و ترتيبه الأول , لذلك نضع الرقم واحد عند هذا الحقل لو كنا نريد مثلا وضع قيمة الحقل الثاني في الاستعلام ( و هذا خطأ و لكن للمثال فقط ) لكان يجب أن نضع الرقم 2 في حقل Bound Column و لو كنا نريد أن نضع قيمة الاسم الأول أ ي العمود الثالث في الاستعلام لكان يجب وضع القيمه 3 و هكذا بعد حقل Bound Column لدينا الحقل Column Count و هذا يقول لك كم عمودا تريد أن يظهر لديك عندما تفتح القائمه التي سيتم انشاؤها , ؟ اذا أردنا فقط رقم الموظف لكان يجب وضع الرقم 1 , و اذا كنا نريد الحقلين الأول و الثاني أي رقم الموظف و الاسم الكامل نضع الرقم 2 , و اذا أردنا أول ثلاثة أعمده نختار 3 و هكذا . العمود الذي بعده اسمه Column Head أي هل تريد أن يظهر لك اسم العمود من القائمه أم لا ؟ يعني اذا اخترت رقم الموظف و اسمه , هل تريد عند فتح القائمه أن يظهر لك الأرقام و الاسماء فقط اختر لا , و اذا أردت أن يظهر لك راس العمود و تحته الأرقام و الأسماء اختر نعم الحقل التالي Coulmn Width كم تريد عرض كل حقل من الحقول المختاره في الاستعلام يمكنك أن تختار العرض المطلوب لكل حقل و بين كل قيمه علامة فاصله منقوطه ; مثلا لو اخترت 2.5cm فهذا يدل على قيمة أول حقل و هو رقم الموظف أي سيظهر حقل رقم الموظف بهذا العرض و بعده بقية الحقول المختاره نختار 0cm للدلاله على أننا لانريد اظهار رقم الموظف أي نريد فقط أن يظهر لنا حقل الاسم الكامل , لو كان لدينا ثلاثة حقول و نريد اظهار الثالث فقط نجعل القيمه كما يلي : 0cm; 0cm و هكذا Concanecate.rar