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

نجوم المشاركات

  1. rudwan

    rudwan

    المشرفين السابقين


    • نقاط

      6

    • Posts

      2,926


  2. jjafferr

    jjafferr

    أوفيسنا


    • نقاط

      6

    • Posts

      9,871


  3. سليم حاصبيا

    سليم حاصبيا

    أوفيسنا


    • نقاط

      3

    • Posts

      8,723


  4. احمد بدره

    احمد بدره

    الخبراء


    • نقاط

      3

    • Posts

      979


Popular Content

Showing content with the highest reputation on 19 نوف, 2019 in all areas

  1. تفضل أخي الكريم الأستاذ / eissa_l كل ما عليك قوم بكتابة التاريخ الهجري أو الميلادي ثم أضغط أنتر التاريخ الهجري والميلادي.accdb
    3 points
  2. السلام عليكم ورحمه الله وبركاته اخوانى الافاضل فى بعض الاحيان نحتاج اضافه بيانات وعرض البيانات فالنموذج مع عدم السماح بالتعديل فالبيانات السابقه يمكن عمل ذلك فى حاله عرض البيانات فقط من خلال عرض النموذج فى وضع التصميم وتحديد الحقول بالكامل مره واحده ومن الخصائص نقوم بتحديد خاصيه تم تأمينه ونحدد لها نعم كما بالصوره ولاكن اذا اردنا عرض البيانات السابقه مع عدم التعديل عليها والسماح بالاضافه فالكود التالى يفى بالغرض باذن الله احاول ان اتعلم واشارككم مع اصل اليه من معلومات للتصحيح ولاستفاده والاستذاده من اساتذتى وجميع الاخوان فى منتدانا الغالى ومرفق مثال : نموذج tblNames ارجو ان اكون قد وفقت فى الشرح وايصال المعلومه وارجو من اساتذتنا التعقيب والاضافه ' كود لعدم السماح بتعديل البيانات السابقه والسماح بالاضافه فقط If Not Me.NewRecord Then Me.AllowEdits = False End If وجزاهم الله خيرا كل من وضع لنا معلومه وعلمنا وشاركنا وساعدنا واسال الله لهم ان يكتب لهم بكل حرف حسنه وان يرزقهم ويبارك لهم فى جميع ما يحبون وان يرزقهم الفردوس الاعلى تقبل الله منا ومنك صالح الاعمال تحياتى لكم طبتم واهتديتم test.accdb
    2 points
  3. مسابقة دينية للاجابة عليها من اربع خيارات الفيديو
    2 points
  4. وعليكم السلام 🙂 بياناتك افقية بهذه الطريقة: . وتم تحويلها عموديا الى جعفر 1142.قاعدة البيانات1.accdb.zip
    2 points
  5. جرب الملف عسى ان يكون طلبك عمل كارنيه لكل طالب.rar
    2 points
  6. برنامج الموارد البشرية HR "مفتوح المصدر" يحتوى على التالي : -بيانات الموظف . -الإجازات . - الأذنونات . - تسجيل الحضور يدوياً . - الخصومات . - السلف . - المكافأت . - تقيييم الموظف . - ساعات إضافية . - تقارير. - متابعة الحضور والانصراف . - تسجل الحضور والانصراف بشكل آلي . - تسجل الحضور بشكل يدوي . وخيارات أخرى . وهذا البرامج من تطويري وجدت جداوله في موقع خارجي . لا تنسونا من خالص الدعاء ،،، HR.rar
    1 point
  7. السلام عليكم ورحمة الله وبركاته كل عام وانتم بخير اطلب المسامحة ممن راسلني ولم يجد رد مني هديتي لكم بعد هذه الغيبة Option Explicit '========================================================" ' بسم الله الرحمن الرحيم " '========================================================" ' (دالة تحويل الرقم الى نص باللغة العربية (تفقيط " ' kh_TextNum " '========================================================" 'Num الرقم " '========================================================" 'sex جنس العملة " 'FALSE ( فارغ او صفر مذكر ) " 'TRUE ( أو اي رقم غير الصفر مؤنث ) " '========================================================" 'sNameCurr اسم العملة الرئيسية مفرد " 'pNameCurr اسم العملة الرئيسية جمع " 'NameCurrDec اسم العملة الكسرية " 'Decimal_Count طول الكسر افتراضـياً : بدون اظهار الكسر " '===============================================================================================================================================" 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" '===============================================================================================================================================" ' ملاحظات ' (اولاً : العملة الرئيسية مثنى (يقوم بها الكود تلقائيا ' مع ملاحظة اذا اسم العملة ينتهي بالتاء المربوطة ' يجب ان يكتب كذلك وليس بالهاء ' ----------------------- ' ثانياً : اذا كانت العملة الرئيسية مفرد فارغاً تعتبر ' اسماء العملات (الجمع والكسري) فارغة تلقائيا ' ----------------------- 'ثالثاً : الكلمة الابتدائية بامكانك تغييرها او تجعلها فارغة Private Const MyBegTx As String = "فقط " ' "" ' ----------------------- ' MyTNum رابعا : يمكنك التغيير (اضافة,حذف,تحرير) في الثابت ' للفئات الصفرية للرقم ادناه Private Const MyTNum As String = "ألف-آلاف/مليون-ملايين/مليار-مليارات/بليون-بلايين/بليار-بليارات/ترليون-ترليونات/تريليار-تريليارات/كدرليون-كدرليونات" '===============================================================================================================================================" 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" '===============================================================================================================================================" Function kh_TextNum(Num As String, Optional sex As Boolean = False, Optional sNameCurr As String = "", Optional pNameCurr As String = "", Optional NameCurrDec As String = "", Optional Decimal_Count As Byte = 2) As String Dim Spp, zt Dim i%, ii%, pr% Dim MyMid$, nCurr$, Txt$, Txt1$, Txt2$ '====================================== If Not IsNumeric(Num) Then GoTo kh_Exit Spp = Split("/" & MyTNum, "/") ii = UBound(Spp) If Num < 0 Then Num = Abs(Num) '====================================== If Val(Num) > Val(String((ii + 1) * 3, "9") & ".999") Then GoTo kh_Exit '====================================== nCurr = sNameCurr & "-" & IIf(pNameCurr = "", sNameCurr, IIf(sNameCurr = "", "", pNameCurr)) '====================================== Txt1 = Format(Num, String((ii + 1) * 3, "0") & ".000") For i = 0 To ii MyMid = Mid(Txt1, (i * 3) + 1, 3) If MyMid Then zt = Mid(Txt1, (i * 3) + 4, Len(Txt1)) zt = IIf(ii - i, Int(zt), zt) Txt2 = IIf(ii - i, Trim(Spp(ii - i)), nCurr) pr = 1 + IIf(ii - i, 1, CInt(sex)) Txt = Txt & IIf(Len(Txt), " و", "") & kh_nText(MyMid, Txt2, pr, zt, CBool(sNameCurr <> "")) End If If i = ii Then If MyMid = 0 Then Txt = Txt & IIf(Len(Txt), " ", "صفر ") & sNameCurr Next '====================================== Txt = MyBegTx & Txt & kh_dText(Num, sNameCurr, NameCurrDec, Decimal_Count) '====================================== kh_Exit: kh_TextNum = Trim(Txt) End Function ' معالجة العدد من 1 الى 999 لكل فئات الرقم Private Function kh_nText(ByVal iNum As String, ByVal oMm As String, ByVal ibs As Integer, ByVal z As Boolean, ByVal tCu As Boolean) As String Dim Sp Dim Num1%, Num2%, Num3% Dim oM$, S$, S1$, nT$, nT0$, nT1$, nT2$ '====================================== Sp = Split("واحد,إحدى,اثنتان,ثلاث,أربع,خمس,ست,سبع,ثمان,تسع,عشر,إحدى ,اثنتا ", ",") '====================================== If ibs Then S = "ة": Sp(1) = Sp(0): Sp(2) = "اثنان": Sp(11) = "أحد ": Sp(12) = "اثنا " Else S1 = "ة" oM = Trim(Split(oMm, "-")(0)) '====================================== Num1 = Left(iNum, 1) Num2 = Right(iNum, 2) Select Case Num1 Case 1: nT0 = "مائة" Case 2: nT0 = "مائتا" & IIf(ibs = 2, IIf(Num2 < 3, "", "ن"), IIf(Num2 = 0 And oM <> "", "", "ن")) Case 3 To 9: nT0 = Sp(Num1) & "مائة" End Select '========================================= Num1 = Right(iNum, 2) Select Case Num1 Case 1, 2: If nT0 <> "" Then If ibs = 2 Then nT0 = nT0 & " " & oM Case 11 To 99: If oM <> "" Then If ibs Then If z Then oM = oM & "اً" End Select '----------------------------------------- Select Case Num1 Case 1 nT = IIf(oM = "", Sp(0) & S1, oM) oM = IIf(ibs <> 2 And oM <> "", Sp(0) & S1, "") Case 2 nT = IIf(oM = "", Sp(Num1), Replace(oM, "ة", "ت") & IIf(z = 0 And ibs = 2 And tCu, "ا", "ان")) oM = IIf(ibs <> 2 And oM <> "", Sp(Num1), "") Case 3 To 10 oM = Trim(Split(oMm, "-")(1)) nT = Sp(Num1) & S Case 11, 12 nT = Sp(Num1) & Sp(10) & S1 Case 13 To 19 nT = Sp(Num1 - 10) & S & " " & Sp(10) & S1 Case 20 To 99 Num2 = Right(Num1, 1) Num3 = Left(Num1, 1) If Num3 = 2 Then nT1 = "عشرون" Else nT1 = Sp(Num3) & "ون" nT2 = Sp(Num2) & IIf(Num2 > 2, S, "") & " و" & nT1 If Num2 = 0 Then nT2 = nT1 nT = nT2 End Select '====================================== S = IIf(nT = "" Or iNum < 100, "", " و") nT = Replace(nT, Sp(8) & "ة", Sp(8) & "ية") kh_nText = Trim(nT0 & S & nT & " " & oM) '====================================== End Function ' معالجة الكسر Private Function kh_dText(ByVal dNum As String, ByVal NCur As String, ByVal Ndec As String, ByVal co As Byte) As String Dim Td$, Td1$ On Error GoTo 1 If NCur = "" Then Ndec = "" Td = Format(Round(CCur(dNum - Int(dNum)), co), "0." & String(co, "0")) If Td = 0 Or Td = 1 Then Td1 = "": GoTo 1 If Len(Ndec) Then Ndec = " " & Ndec: Td1 = Td * CVar("1" & String(co, "0")) Else Ndec = " " & NCur: Td1 = Td Td1 = " و " & Chr(40) & Td1 & Chr(41) & Ndec 1: kh_dText = Td1 End Function دالة تحويل الرقم الى نص عربي.rar ================================================= الملف المعدل: هذا المرفق بامكانية تفقيط الكسر وامكانية ادخال كلمة نهاية النص دالة تحويل الرقم الى نص عربي.rar ================================================= رابط مباشر للملف
    1 point
  8. اتفضل المرفق في الموضوع هذا يعمل نسخه احتياطيه لقاعدة بيانات الجداول وبدون تدخل منك فقط اضبط الاعدادات لمرة واحدة تحياتي
    1 point
  9. انظر هذه طريقة سريعة على الماشي .... والصبر جميل ....... المدارس.accdb
    1 point
  10. السلام عليكم ,,, الرجاء مراجعه الملف وارجو ان تجد به ما طلبت اخي الكريم ... العمال.xlsx
    1 point
  11. وعليكم السلام شوف هذا المثال اضغط هنا ::بالتوفيق:: إذا كنت ترى هذه المشاركة مفيده فلا تنسى التقييم
    1 point
  12. لا يمكن العمل على صورة ولا احد يقوم بوضع ملف لك يحتوي على بيانات كما تريدها ولا يمكن العمل على التخمين لذا رفع الملف او جزء منه اذا كان كبيراً من الضروريات أو سيتم حذف السؤال
    1 point
  13. وكيف تنتظر وتتم المساعدة بدون ملف ؟ّ!!! لا يمكن المساعدة الا بعد رفع ملف مدعوم بشرح كافى عن المطلوب-والا ستحذف المشاركة ,لأننا نبهنا اكثر من مرة لا يجوز رفع اى مشاركة بدون ملف
    1 point
  14. اساتذتي الافاضل استاذنا ومعلومنا القدير ابوخليل والاستاذ القدير جعفر الله يبارك فيكما وفي علمكما وجعلها الله جل وعلا في ميزان حسناتكما نعم هذا هو المطلوب تماما اساتذتي الافاضل الاستاذ الفاضل ابو ياسين والاستاذ الفاضل emam1424 والاستاذ الفاضل Ahmadkaddy جزاكما الله خيرا وبارك الله فيكما وفي علمكما ممنون لكما جميعا على مساعدتكما لي والوصول الى الحل المطلوب شكرا جزيلا لكما مرة ثانية
    1 point
  15. استاذي العزيز @صالح حمادي تم تفعيل نسختك .. لاداعي للإعتذار فأنت ايضاً قد كفيت ووفيت معي منذ بدايات الموضوع فتحية لك كما أشكر الاستاذ القدير حسنين حرزالدين @SEMO.Pa3x على مساهمته في اختبار عملية التشفير وانا كنت متأكد مليون بالمية انها لن تكون صعبة عليك لكوني مطلع نوعا ما على امور التشفير وفك التشفير .. لكن لي ملاحظة بسيطة هنا وهي لو كانت عملية التشفير المستخدمة تعتمد على مفتاح الشفير والذي نحتاجه لفك تشفير البيانات فهل يمكن كسرها أيضاً لو لم يكن المفتاح معروف؟ استاذي الكبير @jjafferr انا لم استخدم خوارزمية قوية في التشفير بل كانت تجريبية فقط.. بالحقيقة انا احببت ماقام بع الاستاذ حسنين فهو يحفز للوصول الى حمايات اقوى واقوى
    1 point
  16. اهلا بالمعتزل ، وشكرا لك على تلبية الدعوة 🙂 وشكرا توفير هذه المعلومات 🙂 رجاء من اخي @sandanet ان لا تعتبر خوارزميتك ضعيفة ، وانما انظر لها ان المحترف (حتى المعتزل 🙂) يمكنه الوصول لفك هذه الخوارزمية 🙂 وارجو منك الاخذ والعطاء مع اخونا حسنين ، لمعرفة كيفية حصوله على هذه المعلومات ، ورجاء ان يكون هذا على البريد الخاص ، ثم تتحفنا بالنتيجة 🙂 لماذا البريد الخاص ، لأن هذه المعلومة تهم صاحب البرنامج فقط 🙂 جعفر
    1 point
  17. عليكم السلام، اهلا بالمعلم. سبق وذكرت سابقاً اني اعتزلت الهندسة العكسية منذ سنوات طويلة. لكن بما انك وجهت لي دعوة فهذا يشرفني. اولا: البرنامج يتصل هنا https://dl.dropboxusercontent.com/s/n702324j1aclxel/active1.txt تظهر البيانات مشفرة 251252255254253252250248256247249256245249249245250248249257292250253245249249245250248249257213210252252253252251249257253252247248249245249249245250248249257292249256245249249245250248249257213210251254253252251249257256248247248249245249249245250248249257292250248245249249245250248249257213210251253254253252251248257252247249256245249249245250248249257292250253245249249245250248249257213210250248250252254257248255248247249256245249249245250248249257292250253245249249245250248249257 بعد فك التشفير 347654208/18-11-2019\25-11-2019 445431954/01-11-2019\18-11-2019 365431980/01-11-2019\20-11-2019 356543094/18-11-2019\25-11-2019 202469070/18-11-2019\25-11-2019 الرقم الاول يمثل رقم العميل / تاريخ اليوم / تايخ انتهاء التفعيل اعجبتني عبارة ( هناك خطأ غير متوقع ؟ ) بالنهاية شكرا للاخ صاحب الموضوع على مجهودة الجميل
    1 point
  18. احسنت اخي @أحمد الفلاحجى فعلا الملف للاستاذ محمد فؤاد جزاه الله كل خير اعتقد انه كان يشارك في منتديات الفريق العربي للبرمجة
    1 point
  19. جزاك الله خيرا استاذى العزيز @kha9009lid وبالنسبه للملف المرفق فهو للاستاذ محمد فؤاد تركى جزاه الله خيرا فشرح بناء نظام المخازن ومرفق الملف النهائى لهذا الشرح لمن اراده تقبل تحياتى وتمنياتى لك وللجميع بالتوفيق طبتم واهتديتم مرفق الملف النهائي للعمل19.rar
    1 point
  20. كبداية المشروع لا يتعدى مبيعات مشتريات مخزون على عجالة اقترح جدول للموردين رقم المورد اسم المؤسسة المندوب ارقام الاتصال الخ اذا كان الدفع نقدي نكتفي بحقل المبلغ المدفوع في فاتورة شراء والا فنحتاج جدول للسداد جدول للاصناف رقم الصنف الصنف المورد الكمية سعر الشراء سعر البيع الوحدة (حبة او كرتون او .... الخ) وممكن عمله عن طريق جدولين للمشاريع الصغيرة جدول واحد يكفي جدول راس الفاتورة شراء رقم الفاتورة تاريخها المورد نوع الفاتورة نقدي او اجل السعر الاجمالي جدول اطراف شراء رقم الصنف الصنف المورد الكمية سعر الشراء الكمية المتبقية في المخزن قبل الشراء الحالي لغرض تحديث الكمية في جدول الاصناف بعد كل عملية شراء جدول راس الفاتورة بيع مشابهه لرقم 3 مع اضافة حقل لعدد الاصناف وحقل لعدد البنود جدول اطراف الفاتورة بيع مشابه ل 4 مع اضافة حقل للخصم حقل للضريبة حقل للكمية المتبقية من الصنف بعد البيع لغرض تحديث الكمية المتبقية في جدول الاصناف جدول موزعين جدول السداد للموزعين ( الكهربائيين ) الجداول من4 الى 6 يمكن اختصارها الى جدولين مع تحديد نوع الفاتورة شراء او بيع بالنسبة للموزعين ( الكهربائيين ) انت يهمك مشترياتهم منك وسدادهم للمبالغ وما اعتقد يهمك لمن يبيع هذة كبداية وفي الموقع العديد من الامثلة وفي المرفقات ملف نصي لا اعرف من كتبه جزاه الله كل خير يشرح انشاء مشروع مشابه ربما يفيدكم الاطلاع مع اعتذاري لكوني كتبت الرد بشكل سريع علما بانه في عملية انشاء قواعد البيانات ربما يستغرق وقت التخطيط والتحليل والاستشارة وقت يفوق المدة المطلوبة لبناء القاعدة Warehouses_and_Saling_system.rar
    1 point
  21. تم اضافه الملف في المشاركه السابقه مع الشرح قم بتحميله مره اخري
    1 point
  22. وعليكم السلام عاشت ايدك استاذ ابو اشرف بارك الله فيك
    1 point
  23. 1 point
  24. السلام عليكم أيها الاخوه , غالبا ما يكون لدينا جدول فيه أحد الحقول مرتبط بحقل آخر في جدول ثاني , و نريد أن نستعرض البيانات التابعه لهذا الحقل من الجدول الآخر ضمن نفس الجدول الذي نحن فيه , مثلا : لدينا قاعدة بيانات فيها جدولين : جدول اسماء الدبلومات الجامعيه - و يتألف من حقلين : رقم الدبلوم - اسم الدبلوم جدول حركة الطلاب و يحتوي الحقول التاليه رقم مسلسل - رقم الطالب - رقم الدبلوم الآن نريد من خلال حقل رقم الدبلوم من هذا الجدول استعراض اسم الدبلوم من الجدول الثاني و يتم ذلك كما يلي : ضع المؤشر على اسم الحقل المطلوب و هو هنا اسم الدبلوم ( بعد تغييره الى رقم ) , تجد في الأسفل مربعين الأول تنسيق – الثاني بحث , اضغط على زر البحث , ثم اختر مربع تحرير و سرد فتظهر مجموعة حقول من الحقل الثالث و الذي اسمه مصدر عناصر البيانات اضغط على النقاط الثلاث بجنب بعض فيظهر لك صفحة تصميم استعلام جديد , اختر منها الجدول دبلومات و اختر منه الحقلين : رقم الدبلوم – اسم الدبلوم ثم اغلق الاستعلام من مربع الاغلاق مباشرة و بدون حفظ , فتظهر رساله تفيد بأنه تم تغيير مصدر عناصر البيانات هل تريد الحفظ , اختر نعم , فيرجع المؤشر الى الحقول الأولى التي كنا فيها , من السطر الخامس , عدد الأعمده , اختر قيمتها تساوي 2 بدلا من 1 ثم من السطر السابع عرض الأعمده , اجعل القيمه كما يلي : 0cm;2.5cm ثم احفظ , الجدول افتح الآن جدول المواد في صفحة ادخال بيانات و حاول ادخال أي سجل جديد , تجد في حقل رقم الدبلوم يظهر لك اسم الدبلوم مباشرة مع أنه يحفظ رقم الدبلوم و فيما يلي بيان تفصيلي بالرسم للشرح أعلاه MakeFiledCombo.rar
    1 point
  25. مرفق الحل ويمكن تعديل saudi riyal و halala Function SpellNumber(ByVal MyNumber, _ Optional pbNum As Boolean = True, _ Optional ptCur As String = "saudi riyal", _ Optional ptDec As String = "halala", _ Optional ptPlu As String = "") Dim Curr, Decm, Temp Dim DecimalPlace, Count Dim vtPHolder As String ReDim Place(9) As String Place(2) = " Thousand " Place(3) = " Million " Place(4) = " Billion " Place(5) = " Trillion " '' String representation of amount MyNumber = Trim(Str(MyNumber)) '' Position of decimal place 0 if none DecimalPlace = InStr(MyNumber, ".") '' Convert decimal part, and set MyNumber to currency amount If DecimalPlace > 0 Then vtPHolder = Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2) If pbNum = True Then Decm = GetTens(vtPHolder) Else Decm = vtPHolder End If MyNumber = Trim(Left(MyNumber, DecimalPlace - 1)) End If Count = 1 Do While MyNumber <> "" Temp = GetHundreds(Right(MyNumber, 3)) If Temp <> "" Then Curr = Temp & Place(Count) & Curr If Len(MyNumber) > 3 Then MyNumber = Left(MyNumber, Len(MyNumber) - 3) Else MyNumber = "" End If Count = Count + 1 Loop Select Case Curr Case "" Curr = "No " & ptCur & "" Case "One" Curr = "One " & ptCur Case Else Curr = Curr & " " & ptCur & "" End Select Select Case Decm Case "" Decm = " No " & ptDec & ptPlu Case "One", "01" Decm = " and " & Decm & " " & ptDec Case Else Decm = " and " & Decm & " " & ptDec & ptPlu End Select SpellNumber = Curr & Decm End Function '******************************************* ' Converts a number from 100-999 into text * '******************************************* Function GetHundreds(ByVal MyNumber) Dim Result As String If Val(MyNumber) = 0 Then Exit Function MyNumber = Right("000" & MyNumber, 3) 'Convert the hundreds place If Mid(MyNumber, 1, 1) <> "0" Then Result = GetDigit(Mid(MyNumber, 1, 1)) & " Hundred " End If 'Convert the tens and ones place If Mid(MyNumber, 2, 1) <> "0" Then Result = Result & GetTens(Mid(MyNumber, 2)) Else Result = Result & GetDigit(Mid(MyNumber, 3)) End If GetHundreds = Result End Function '********************************************* ' Converts a number from 10 to 99 into text. * '********************************************* Function GetTens(TensText) Dim Result As String Result = "" 'null out the temporary function value If Val(Left(TensText, 1)) = 1 Then 'If value between 10-19 Select Case Val(TensText) Case 10: Result = "Ten" Case 11: Result = "Eleven" Case 12: Result = "Twelve" Case 13: Result = "Thirteen" Case 14: Result = "Fourteen" Case 15: Result = "Fifteen" Case 16: Result = "Sixteen" Case 17: Result = "Seventeen" Case 18: Result = "Eighteen" Case 19: Result = "Nineteen" Case Else End Select Else 'If value between 20-99 Select Case Val(Left(TensText, 1)) Case 2: Result = "Twenty " Case 3: Result = "Thirty " Case 4: Result = "Forty " Case 5: Result = "Fifty " Case 6: Result = "Sixty " Case 7: Result = "Seventy " Case 8: Result = "Eighty " Case 9: Result = "Ninety " Case Else End Select Result = Result & GetDigit(Right(TensText, 1)) 'Retrieve ones place End If GetTens = Result End Function '******************************************* ' Converts a number from 1 to 9 into text. * '******************************************* Function GetDigit(Digit) Select Case Val(Digit) Case 1: GetDigit = "One" Case 2: GetDigit = "Two" Case 3: GetDigit = "Three" Case 4: GetDigit = "Four" Case 5: GetDigit = "Five" Case 6: GetDigit = "Six" Case 7: GetDigit = "Seven" Case 8: GetDigit = "Eight" Case 9: GetDigit = "Nine" Case Else: GetDigit = "" End Select End Function تفقيط انجليزي.rar
    1 point
  26. هذا تجميع لأهم الدروس والمواضيع المميزة بالمنتدى ضم روابط المواضيع المثبتة من أعمال معلمينا الفضلاء ومبدعينا في صفحة واحدة .. وذلك من باب التجديد والتغيير وإعطاء مساحة اكبر للمواضيع المتجددة .. *********************************************************************** أولا : توجيهات للأعضاء الجدد في المنتدى ثانيا : طلب من جميع الخبراء وجميع الاعضاء النشطاء الذين يتصدون للحلول وإجابة السائلين *********************************************************************** القسم الأول : الجداول والاستعلامات: الاستعلام الجدولي والمعايير القسم الثاني : النماذج: شرح أداة WebBrowser 1 2 شاشة انتظر من فضلك !! | سلسلة مهارات في أكسس | 06 | توسيط النماذج داخل النافذة أو الإطار طريقة إبداعية لتغيير خلفيات جميع النماذج إعادة تسمية العناصر الكثيرة دفعة واحدة في النموذج بأسماء متسلسلة مثل : ( Box2 , Box1 , ... ) ⭐ كيف تغير اللغة في برامجك ⭐ ✨💻 صفحة رئيسية متطورة بقائمة جانبية وأزرار فرعية ⭐ التحكم الكامل فى واجهة اكسس ( تصغير بجوار الساعة - توسيط - اخفاء - تغيير أيقونة شعار أكسس ) القسم الثالث : التقارير: مسقط التقارير او صانع التقارير انشاء شريط طباعة للتقرير القسم الرابع : الماكرو والوحدات النمطية VBA: إنشاء دروس VBA أكسس كشكول VBA ترجمة النصوص وتحويلها إلى صوت في vba باستخدام جوجل ( تجارب وفوائد ) :: دالة لحساب أيام الحضور والغياب .. وفكرة عد القيم النصية في حقول السجل الواحد :: اجعل برنامجك يعمل على النواتين 32بت و 64بت اجعل برنامجك يعمل على النواتين 32بت و 64بت _ طريقة ثانية شخابيط ابو جودى: سلسلة منافع مختلفة لتجميعات دوال عامة وافكار مختلفة ( بداية مهمه لتسجيل الاخطاء) شخابيط ابو جودى: سلسلة منافع مختلفة لتجميعات دوال عامة وافكار مختلفة ( FileDialog ) شخابيط ابو جودى: سلسلة منافع مختلفة لتجميعات دوال عامة وافكار مختلفة ( بداية مهمه لتسجيل الاخطاء) شخابيط ابو جودى: سلسلة منافع مختلفة لتجميعات دوال عامة وافكار مختلفة ( FileDialog ) شخابيط وافكار : اليوم اقدم اليكم منفعة لا غنى عنها (ImmediateWindowHelper) تفقيط عام متعدد : تحويل الارقام وقيمة ارقام العملة أو ( عملات متعددة ) الى نص مع التفقيط باللغة العربية ولغة اخرى منتقى التواريخ "Date pickers" القسم الخامس : قواعد البيانات SQL وما يتعلق بها: أكسس و اسكيوال سيرفر Access with Sql Server الأكسس و SQL جُمل SQL مشاركة قاعدة البيانات على الانترنت بواسطة SQL Server [تطبيق] تحويل قاعدة بيانات اكسس الى SQL Server (الجزء الاول _ الجزء الخامس) ربط الاكسيس ب php القسم السادس : البرامج والأدوات والإضافات: إدارة الجداول المرتبطة ، أداة وشروحات نظام مراسلة واشعارات شبيه بالفيس بوك معالج بحث وتصفح مسقط التصفح كارنيهات باستخدام باركود ماتركس - QR code محاكاة برنامج واتساب بالاكسس .. هدية لاوفيسنا القائمة المختصرة - Shortcut menu ارسال رسائل whatsapp (وتساب) بدون حفظ الرقم رسائل whatsapp (وتساب) في اكسس رسائل whatsapp (وتساب) بدون حفظ الرقم ( الكاتب الذكي لدوال المجال في أكسس Dloockup, DCount, DMax, DMin, Dfirst, DLast , DSum, DAvg) ⭐⭐(( مكتبة الأكواد الخاصة )) :: الإصدار الثاني 2.0 ⭐⭐ ، /// ، مكتبة الأكواد الخاصة | سلسلة هدايا الأكسس | 04 | 🎁 - 📟 آلة حاسبة 📟 - هدية مميزة مفتوحة المصدر 🎁 🖌️✏️👨😉🧑‍💻 ... برنامج دردشة بين المستخدمين على الشبكة ... 👨‍💻🧑‍💻✍️😊✏️🖊️ 🎁 :: هديتي لكم :: 🌷📨 >> برنامج مرسال الواتسأب - مع المرفقات - << ✉️ 🙂🌷💌 🎁 :: مرسال الواتسأب :: 📨 :: الإصدار الثاني 2.0 :: مطور :: 🧬🏹 🎁 هدايا الأكسس ✨ | 03| زاد المثابر للحصول على أسماء العناصر في أكسس | أداة رائعة للمطورين 🧛🏻‍♂️ [الاصدار الثاني] ارسال رسائل جماعية لعدد x من المستخدمين على الواتس اب في الاكسس هدية: برنامج تصدير بيانات من جداول/استعلامات اكسس الى اكسل ، 32بت و 64بت هداء لكم برنامج بسيط للديون والسداد 🟢 واتساب ويب web.watsapp 🟢 هدية : تصدير كائنات دفعة واحدة الى قاعدة أخرى أو حسب إختيارك 🧮 الكاتب الذكي لدوال المجال |::| 📜 نسخة مطورة ومحدثة |::| 😊 الإصدار الثاني 2.0 ⭐ كيف تغير اللغة في برامجك ⭐ القسم السابع : الأفكار والنصائح والتوجيهات: مواضيع مهمة .. قراءة وتفكيك بيانات الحقل الى حقول تطبيقات وأفكار وتلميحات تخفيض امان windows وتسجيل المكتبات عند تنصيب البرامج هام لمطورى ومصممى قواعد البيانات إنتبهوا حتى لا تواجهوا مشاكل مع العملاء خلاصة الأقوال .. حول مسائل الحماية 🔒🔑💪🏻 القسم الثامن : مواضيع متنوعة: ملف للبحث عن المواضيع في هذا المنتدى بعض المواضيع المتميزة والمهمة ( 8 ) الحماية برقم القرص الصلب والمعالج واللوحة الأم شرح أكسس 2003 - 2007 - 2010 - 2013 ( صوت وصورة ومرفقات ) رفع نسخة احتياطية على السحابة (google drive) ::💡 أفكار وفوائد 💡:: أسهل طريقة لعمل مربعات صح ✔ أو خطأ ✘ بالحجم واللون الذي تريده ❌☑️✔️✅❎ ⭐⭐ طريقة إبداعية لتحديث نسخة الواجهات FE 🖥️ لدى المستخدمين بدون برامج أو أدوات خارجية 😊👌⭐⭐ رمز الاستجابه السريع QR CODE حسب متطلبات هيئة الضرائب السعودية: ------------------------------------------------------ 1. https://www.officena.net/ib/topic/112126-موضوع-مهم-للنقاش-ماهو-مستقبل-الاكسس-بعد-تطبيق-المرحله-الثانيه-للفاتوره-الاكترونيه/ 2. الموضوع والمرفقات النهائية لرمز الاستجابه السريع QR CODE حسب متطلبات هيئة الضرائب السعودية 3. https://www.officena.net/ib/topic/112589-مكتبة-الموقع-الفاتورة-السعودية-المبسطة/ --------------------------------------------------------------------------------------------------------------------------------------------------------------- القسم التاسع : الدروس والشروحات والمشاريع : طريقة /اضافة صوت للاكسس مع التحكم فى (الايقاف/التشغيل) للصوت تصميم قاعدة بيانات احترافيه لإدارة يوميات وشئون العاملين
    1 point
  27. أليك أخي ماطلبت أخي جميع المعادلات السابقة ومعادلتك أيضا صحيحة ولكن تنسيق رقمك في الخلية تنسيق ( text) أي يجب وضعة بين علامتي تنصيص التلوين بشرط.rar
    1 point
  28. السلام عليكم ورحمة الله وبركاته هذه احدى نفائس أخينا رضوان جزاه الله عنا كل خير وجدت هذا الموضوع في الصفحة 30 وترتيبه 1160 ضمن مواضيع قسم الأكسس العام لذا قررت أن أثبته لينتفع به اخواني الأعضاء ومن ثم أنقله الى الأرشيف الخاص (( الموضوع مثبت لغاية تاريخ 30/8/2006 ))
    1 point
  29. نفتح النموذج في وضع التصميم , نجده يتألف من ثلاثة أقسام : Form Header راس النموذج Detaild المحتويات FormFooter تذييل النموذج ضمن راس النموذج نجد عنوان النموذج Customers و في قسم المحتويات نجد الحقول التي اخترناها لتكون ضمن النموذج و سنعود الى هذا القسم بالتفصيل أما في التذييل فيمكن أن نضع حقول مثل مجموع , توقيت و تاريخ ,, الخ بالاطلاع على قسم المحتويات نجد كل حقل يتألف من مكونين , مربع عنوان و مربع نص مربع العنوان لايحتوي اي يبيانات و هو فقط للدلاله على اسم العنصر الذي يشير اليه مثل اسم العميل أما مربع النص فهو الذي يحتوي القيم المأخوذه من الجدول الأساسي نستطيع التحكم بخصائص مربع النص من خلال الآتي نضع المؤشر على مربع النص CompanyName اسم الشركه , ثم نضغط بالفأره باليمين نجد قائمة في نهايتها خصائص Properties نضغط عليها فتفتح لنا قائمة بها عدة عناصر الأول : تنسيق Format من خلال هذه القائمه نستطيع تنسيق الألوان و نمط الخط و تنسيق الأرقام و التاريخ .. الخ Format تنسيق شكل الأرقام و التاريخ فقط Decimal Places عدد الخانات العشريه Visisble ( مرئي ) القيمة الافتراضيه نعم نريده مرئي , لكن أحيانا نضطر لادراج مربعات نص لانريد اظهارها للمستخدم , لذلك نجعل قيمة هذا الحقل لا , فيبقى موجودا في النموذج وله حسابه لكن لن يظهر للمستخدم Display When هنا تحديد فيما اذا كنا نريد اظهار مربع النص دائما , أم عند الطباعه فقط . أو يظهر على الشاه فقط و يختفى في الطباعه Scroll Bar تثبيت زر سحب و افلات Can Grow هل النص قابل للتمدد ( اذا كانت البيانات أكبر من حجم مربع النص ) Can Shrink هل النص قابل للانكماش ( اذا كانت البيانات أصغر من حجم مربع النص ) Left – Top – Width – Hight للتحكم باحداثيات مربع النص ثم بعد ذلك مجموعة خصائص لتغيير نمط الخلفيه و الألوان .. الخ يمكنكم تنسيقها للحصول على مربعات نص جذابه . القائمه الثانيه Data بيانات هذه القائمه تحتوي : Control Source مصدر البيانات , نجد هنا أن قيمة هذا الحقل هي CompanyName في جدول العملاء , لو أردنا تغيير هذا الحقل يمكن ذلك , نفتح السهم بجانب الاسم و نجد أسماء بقية الحقول المختاره في النموذج ,نستطيع اختيار مثلا ContactName و بذلك سيعرض هذا الحقل اسم الشخص المراد الاتصال به بدلا من اسم الشركه , Input Mask قناع الادخال بالنسبه للتاريخ و الرقم Default Value القيمة الافتراضيه للحقل Validation Rule قاعدة التحقق من الصحه هنا بمجرد ادخال أي قيمه في هذا الحقل يتم اختبا رالقاعده , و تصلح هذه القاعده أكثر بالنسبه للأرقام و التواريخ Validation Text الرساله التي ستظهر في حال مخالفة القاعدة Enabled أحيانا نضطر لعرض مربعات نص غير متاحه للمستخدم , أي لاظهار قيمه معينه دون أن يكون للمستخدم حق التأشير عليها أو الوصول اليها , لذلك نجعل قيمته لا Locked مقفل , في حال أردنا منع المستخدم من التعديل على هذا الحقل حتى و لو كان متاحا نجعل قيمة هذا الحقل نعم الأحداث Events , و هذه قائمه هامه جدا و تتعلق بالأوامر التي نريد اعطاؤها للبرنامج لتنفيذ ها عند حدث معين مثل عند النقر على زر مربع النص أو عند الخروج منه أو قبل الدخول اليه ,, الخ , و هذا بحد ذاته مبحث مستقل له تعليمات و قواعد خاصه . قائمة Other مختلف وتتضمن عدة حقول , و ما يهمنا منها هو حقل الاسم Name و يجب الانتباه جيدا الى هذا الحقل اذ أنه هو الذي يتعامل معه النموذج , القيمة الافتراضيه لهذا الحقل هي نفس قيمة مصدر بيانات العنصر , أي CompanyName لكن لو قمنا مثلا بتغيير مصدر بيانات هذا النص الى ContactName كما فعلنا سابقا , فان أي قيمه تدخل في هذا الحقل , تدخل في حقل ContactName في الجدول , لكن النموذج سيتعامل مع هذا الحقل على أساس أنه CompanyName , و هذا أمر هام جدا لدى تنفيذ أوامر الفيجوال بيسيك , فالحرص يكون على اسم الحقل و ليس على مصدر البيانات . و اخيرا قائمة الكل All و تتضمن جميع القوائم السابقه
    1 point
  30. طبعا قبل شرح كيفية تصميم العلاقات بين جداول قاعدة NorthWind لابد من الاشاره الى أن العلاقه تكون بين حقلين من جدولين - يكون لهما نفس نوع البيانات , أي لاتربط حقل نصي مع حقل رقمي , أو حقل له تنسيق رقم صحيح مع حقل له تنسيق رقم مزدوج و هكذا - أحد الحقلين يفضل أن يكون مفتاحا رئيسيا بتأمل تصميم العلاقات بين جداول قاعدة NorthWind نجد أن شكل العلاقه مثلا بين الجدولين Products – Categories على حقل رقم الشريحه في كلا الجدولين أي CatigoruID يأخذ الشكل الثاني أي تقييد بمعنى أن كل صنف يتم ادخال بياناته من جديد لابد من ملْ حقل رقم الشريحه فيه , و لكن لم يتم اختيار تتابع التحديث أو تتابع الحذف , أي الشكلين الثالث و الرابع من العلاقات المشروحه في الدرس السابق و ذلك لمنع المستخدم من تغيير رقم الشريحه أو الغاؤها طالما أن هناك أصنافا تتبع هذ الشريحه و كذلك الحال شكل بقية العلاقات حيث يربط : جدولي الموردين و الأصناف , على حقل رقم المورد في كلا الجدولين جدولي الأصناف و تفصيل الطلبيات , على حقل رقم الصنف في كلا الجدولين جدولي الطلبيات و الموظفين , على حقل رقم الموظف في كلا الجدولين جدولي الطلبيات و شركات الشحن , على حقل رقم الشاحن في كلا الجدولين جدولي الطلبيات و العملاء , على حقل رقم العميل في كلا الجدولين , مع ملاحظة أنه هنا تم اختيار نوع العلاقه الثالثه أي السماح بتعديل كود العميل في جدول العملاء , وينتقل هذا التأثير الى جدول الطلبيات بحيث يتم تعديل كل طلبيات هذا العميل حسب رقمه الجديد , و طبعا مع عدم السماح بحذف رقم العميل , لأنه في هذه الحالى سيؤدي الى حذف طلبياته كامله , و هذا خطأ و ذلك لأنه محاسيبا سيتم تسجيل كل الطلبيات بقيمها و حركاتها في المستودع , ففي حال الغاء التعامل مع هذا العميل لا يجب حذف سجله من جدول العملاء لأن ذلك سيؤدي الى حذف سجلات محاسبيه و قيود مخزنيه تؤدي الى خلل في أرصدة المستودع و في الميزان المحاسبي لذلك اذا كنا نريد الغاء هذا العميل من لائحة التعامل , يفضل اضافة حقل صح أو خطأ الى جدول العملاء , فاذا رغبنا بعدم استمرار التعامل معه يتم التأشير على حقل عدم التعامل و بالتالي لايدرج اسمه ضمن العملاء الفعالين ( هذا يتم عن طريق استعلام ) العلاقه الأخيره و هي بين جدولي الطلبيات و تفضيل الطلبيات , الربط على رقم الطلبيه في كلا الجدولين , و هنا نختار تتابع الحذف , اي مثلا لو اردنا الغاء طلبيه فيجب الغاء تفصيل طلبياتها من جدول تفصيل الطلبيات , و الا ستكون هناك أصناف وهميه تخرج من المستودع لطلبيع ملغاة , لذلك نختار تتابح الحذف , ففي حال الغاء طلبيه تلغى تلقائيا كل الصناف التي سجلت لها على جدول تفصيل الطلبيات .
    1 point
  31. الآن نعود الى ما كنا بصدده قبل درسين و هو انشاء جدول الطلبيات , حيث اضطررنا للعروج قليلا عن ذلك الجدول بهدف تصميم جدولي شركات الشحن – الموظفين , للاستفاده منهما في تصميم حقلي شركات الشحن و رقم الموظف . سنضيف الآن الى جدول الطلبيات حقلا باسم 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 سنعرف اصنافها تلقائيا على أساس نفس هذا الرقم في الجدول الفرعي . و سيتضح هذا الأمر بدقة أكثر في حال تصميم نموذج الطلبيات و النموذج الفرعي له .
    1 point
  32. لنصمم الآن جدول الموردين Suppliers و الذي يتألف من الحقول التاليه : اسم العميل CompanyName بقية البيانات التفصيليه المشابهة لجدول العملاء مثل العنوان و الهاتف و اسم الموظف المسؤول .. الخ و يجدر الملاحظه أننا لانكتفي باسم المورد و البيانات الخاصه به , بل نضع رقما معرفا لذلك الجدول ( و هذه ناحيه يهملها البعض ) , اذ أن الرقم المعرف للمورد هو الذي سيتم التعامل معه طيلة البرنامج , أم اسم المورد فما هو الا بيان تفصيلي لهوية ذلك المورد , فاذا تغير اسم المورد مثلا من اسم شركه الى اسم شركة أخرى نتيجة تصفيه أو نقل ملكيه أو ماشابه , يسهل تغيير اسم المورد مع الحفاظ على جميع سجلات حركته السابقه . أما لو جعلنا اسم المورد هو المفتاح الرئيسي و هو الرابط مع الجداول الآخرى فسوف لن يتم التعرف على أي من حركاته السابقه في حال تغير اسمه . الآن نعود الى جدول البضائع , و ننشأ حقل رقم المورد SupplierID و نحوله الى قائمه كما فعلنا في الدرس السابق . بنفس الخطوات , ثم نفتح جدول البضائع في وضع ادخال البيانات و عند الوصول الى حقل رقم المورد نجد يظهر لنا اسم المورد للاختيار منه يبقى لدينا حقلين في هذا الجدول و هما : رصيد الصنف في المستودع UnitsInStock الكميه تحت الطلب من هذا الصنف UnitsOnOrder و الحقيقه ليس هناك أي داعي لوجود هذين الحقلين , لسببين : الأول : حسب القاعده الآولى التي شرحناها في بناء الجداول الحقول المحسوبه ( أي التي تعتمد قيمتها على قيمة حقل آخر ) تستخرج من خلال معادله رياضيه في النموذج أو من خلال استعلام , و لاداعي لعمل حقل لها ضمن الجدول الثاني : حتى لو تم عمل حقل لها في الجدول , فان قيمتها لن تتحدث الا من خلال كود في النموذج يتم تفعيله في زمن ادخال بيانات الفاتوره , و لكن لو عاد اي شخص للجدول فانه سيتمكن من تغيير تلك القيمه بدون أي قيد أو شرط لذلك سنحاول ان شاء الله استخراج قيمة رصيد الصنف - الكميات تحت الطلب لدى وصولنا الى النماذج . درسنا القادم سيكون حول تصميم جدول الطلبيات باذن الله , و ليضع كل منكم تصوره حول هذا الجدول ريثما نبدأ الدرس التالي عمليا الطلبيات تتم على الشكل التالي : يقوم مندوب المبيعات أو الموظف بتسجيل بيانات الطلبيه من العميل مباشره , بحيث يضع في بيانات الطلبيه المعلومات التاليه : اسم العميل - عنوانه - تاريخ الطلبيه - التاريخ المطلوب لشحن الطلبيه - تاريخ تسليم الطلبيه اسم وكيل الشحن - عنوانه - الأصناف المطلوبه - الكميات - سعر الوحده - قيمة الصنف القيمة الاجماليه للفاتوره - الخصم - أضافات ( ضرائب و رسوم ) - القيمة الصافيه للفاتوره نلتقي في الدرس القادم ان شاء الله
    1 point
  33. الآن لنحاول بناء الجدول الثاني في الأهميه و هو جدول المنتجات Products يمكن أن نتصور أنه يحتوي البيانات التاليه اسم المنتج ProductName التعبئه QuantityPerUnit سعر الوحده UnitPrice حد اعادة الطلب ReorderLevel الصنف فعال ( لازال قيد التعامل أم تم الغاؤه ) Discontinued الآن لابد لنا من رقم معرف للصنف أي ProductID و هذا الحقل هو الذي سيتم التعامل معه لاحقا كمعبر عن الصنف و هو الذي سيكون الرابط بين جدول الأصناف و بقية الجداول نريد اضافة حقل آخر و هو تصنيف المنتج أي الزمره التي يتبع لها هذا المنتج اذا كان لدينا مجموعة كبيره من المنتجات و نريد تصنيفها في مجموعات و ليكن هذا الحقل اسمه CategoryID أحدنا سيتخيل أنه طالما أن المجموعات ستكون اسماء مثل ( ألبسه - مأكولات - مواد غازيه ,, الخ ) , اذا حقل رمز المجموعه سيكون نص , الأفضل أن نصمم جدولا خاصا للمجموعات ولنسمه Categories , يحتوي الحقول التاليه رقم معرف للمجموعه و مفتاح رئيسي CategoryID اسم المجموعه CategoryName بعض الحقول الاضافيه مثل : الوصف - صورة الآن النقطه الهامه جدا هنا هي أننا في جدول المنتجات سنجعل حقل رمز المجموعه رقما و ليس نصا و سيأخذ قيمته من حقل CategoryID في جدول Categories و ليس من حقل CategoryName و سيكون الربط بين جدولي الأصناف و المجموعات على حقل رقم المجموعه في كلا الجدولين اي CategoryID . الآن ليقل أحدنا اذا كنا نريد تعبئة بيانات صنف جديد في جدول الأصناف , و ليكن مثلا لحوم , نريد تعبئة حقل رقم المجموعه و هي مجموعة اللحوم في جدول المجموعات , ال CategoryID لهذه المجموعه هو 6 , هل كلما أردنا أن نعرف رقم مجموعه لصنف يجب أن نفتح جدول المجموعات و نستخرج رقم تلك المجموعه ثم نضعه في حقل معرف المجموعه للصنف ؟ هذا سيكون عملا مملا و شاقا , نستطيع اختصار كل هذا بتحويل حقل CategoryID في جدول الأصناف الى قائمه تحوي حقلين مأخوذين من جدول المجموعات و هما : CategoryID - CategoryName حيث سنستطيع بكل سهوله اختيار اسم المجموعه المناسب من هذه القائمه و عمل ذلك مشروح على الرابط التالي ففيه شرح مفصل عن مثال على كيفية عمل ذلك . عرض قيمة حقل من حقل آخر مرتبط به - شرح مفصل بالصور و بالتطبيق على مثالنا نجد أن حقل CategoryID في جدول الأصناف تحول الى قائمه منسدله تحوي حقلين هما رقم المجموعه و اسم المجموعه لنفتح جدول الأصناف في وضع عرض البيانات , و لنحاول ادخال صنف جديد , نجد عند الوصول الى حقل رمز المجموعه أننا نختار اسم المجموعه ( و لاننسى أن اسم المجموعه هو للعرض فقط بينما البرنامج يتعامل مع قيمة رقم المجموعه ) و لنحاول تطبيق ذلك على حقل رقم المورد , اذ علينا انشاء جدول للموردين و سنجعل حقل رقم المورد في جدول الأصناف يختار اسم المورد من جدول الموردين بنفس الطريقه السابقه
    1 point
×
×
  • اضف...

Important Information