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

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

  1. kha9009lid

    kha9009lid

    الخبراء


    • نقاط

      12

    • Posts

      1,347


  2. jjafferr

    jjafferr

    أوفيسنا


    • نقاط

      10

    • Posts

      9,724


  3. ابوخليل

    ابوخليل

    أوفيسنا


    • نقاط

      8

    • Posts

      11,622


  4. محمد طاهر عرفه

    محمد طاهر عرفه

    إدارة الموقع


    • نقاط

      4

    • Posts

      8,486


Popular Content

Showing content with the highest reputation on 03 أبر, 2021 in all areas

  1. لو سايرنا ابا اشرف في فكرته فانه يلزم عمل جدول او على الأقل حقول خاصة تبين تفاصيل العملية مع المبالغ المستردة او المدفوعة اضف الى ذلك ان حركة البيع السابقة تم قتلها . بينما الطريقة التي عرضتها يكفي ان تشير الى سبب الارجاع في الملاحظات ، وفي النهاية يتم حصر الاموال الداخلة والخارجة بكل يسر وكذلك يمكننا الاستعلام عن جميع المرتجعات بيع او شراء والملاحظات حولها . كل هذا ضمن جدول واحد
    3 points
  2. صح لسانك اخوي ابوخليل ، ويُكتب هذا الكلام بماء الذهب 🙂 جعفر
    3 points
  3. لماذا ننصح دوما باستخدام جدول واحد لتفاصيل المبيعات والمشتريات الجواب : من اجل مرونة تدفق البيانات وسهولة احتوائها والتعامل معها هذه تتم عن طريق البحث برقم الفاتورة لا عكس قيود ولا شيء من هذا القبيل يجب ان يكون النظام سلس ومفهوم ويتم التعامل معه حسب البيانات المدخلة ( يمنع الحذف والتعديل الا في ظروف ضيقة جدا جدا ) فمرتجع البيع يسجل باعتباره شراء جديد ومرتجع الشراء يسجل باعتباره بيع وفي النهاية وفي المخرجات يمكننا اظهار النتائج من الأرصدة والمستخلصات بشكل صحيح ودقيق وتفصيلي ، وبأقل عدد من الادوات
    3 points
  4. السؤال موجه الى استاذنا ولكن احاول الاجابة بعد اذن معلمي القدير جعفر الكود صحيح ولكن لن يعمل بشكل مباشر وسيتم التفصيل تعديل بعض خصائص النموذج يتم التعديل بشكل يدوي بالدخول على عرض تصميم النموذج ثم من الخصائص يتم الاختيار وهذا ماعمله الاستاذ @king5star ولكن طلبك اخي ازهر عن طريق الكود وسبق ان وضع اخونا ومعلمنا العود @ابوخليل كود جميل يعالج الامر فقط اضفت عليه امر تعديل نمط الحدود لذا سوف نقوم بوضع كود يقوم بفتح النموذج في عرض التصميم بشكل مخفي DoCmd.OpenForm "f2", acDesign, , , acFormPropertySettings, acHidden ثم نعدل خصائص منبثق نعم ومشروط نعم ونمط الحدود الى بلا Forms!f2.PopUp = True Forms!f2.Modal = True Forms!f2.BorderStyle = 0 ثم للتغلب على رسالة المطالبة بالحفظ نضع الامر DoCmd.Save acForm, "f2" ليكون الكود النهائي DoCmd.OpenForm "f2", acDesign, , , acFormPropertySettings, acHidden Forms!f2.PopUp = True Forms!f2.Modal = True Forms!f2.BorderStyle = 0 DoCmd.Save acForm, "f2" وللتراجع عن التغيير نضع الامر DoCmd.OpenForm "f2", acDesign, , , acFormPropertySettings, acHidden Forms!f2.PopUp = False Forms!f2.Modal = False Forms!f2.BorderStyle = 1 DoCmd.Save acForm, "f2" بالتوفيق اخي ازهر j1.accdb
    3 points
  5. بالتوفيق اخي ازهر نعم اخي جعفر احسنت فهم السؤال نصف الاجابة قالت العرب : قد أسفر الصبح لذي عينين
    2 points
  6. هنا يأتي أهمية دراسة أي مشروع قبل البدء ببنائه مشاريع المبيعات والمشتريات انواع : فمنها ما يكون المورد والعميل أساسي في هذه العمليات ( المدفوع / المتبقي / النقدي / الآجل ) ومنها ما لا يعير هذه اهمية وخاصة العميل وليس هذا محل نقاشنا بل : نعم .. وبكل تأكيد وما المانع في ذلك ؟ اذا تأملنا اي العناصر في مشروعنا هو الأهم ؟ المورد ام العميل ام المنتج ؟ من المؤكد والذي لا يختلف فيه اثنان ان المنتج هو مربط الفرس في هذا المشروع
    2 points
  7. هنا تمت مناقشة هذا الموضوع : تحريك نموذج اكسس بالضغط على الماوس - قسم الأكسيس Access - أوفيسنا (officena.net) جعفر
    2 points
  8. 👆 هههههه استاذ ازهر كل مشكلة ولها حل الحقيقة انا لا اعلم الهدف من طلبك لذا اشرت الى ان الذيب ما يهرول عبث فالبتالي اكيد لديك اسبابك وكما هو معلوم ان هذه الطريقة لن تعمل في بصيغة mde و accde فاذا كانت الحاجة لهذه الطريقة كبيرة ممكن التحايل بوضع نسخة اخرى من النموذج f2 بدون حدود وفي الوضع العادي يفتح النموذج الاصلي بنمط حدود وعند تحقق شرط معين يتم فتح النموذج الاخر بدون حدود ولكن هذا موضوع اخر تحياتي
    2 points
  9. همممم الموضوع ما يستاهل كل هذا الشغل ، اعمله في الاعدادات والسلام 🙂 إلا اذا كان سؤال امتحان او سؤال تحدي 🙂 جعفر وطبعا هذه الطريقة لن تعمل في الاكسس بصيغة mde و accde
    2 points
  10. هنا سنتحدث عن حقل المفتاح و الفهارس أولاً المفتاح تحديد أو الغاء تحديد خاصية المفتاح من ايقونة المفتاح التي تظهر فى الأعلي فى وضع تصميم الجداول حقل المفتاح : ما هو ، و لماذا نستخدمه ؟؟ ترجع قوة قاعدة البيانات العلائقية مثل الأكسس ، الي القدرة علي البحث و استرجاع البيانات بسهولة و سرعة مع كونها مخزنة فى عدة جداول ، و ذلك من خلال الاستعلامات و النماذج و التقارير. لذلك يجب أن يحتوي كل جدول علي حقل أو مجموعة حقول تعرف السجلات المخزنة فى الجداول بطريقة وحيدة ، أي أن هناك رقم أو رمز واحد يعرف كل سجل بكل ما فيه من بيانات ، و يمكننا أن نتخيل أن السجلات عبارة عن شارع به العديد من االعمارات (السجلات ) و ان كل سجل يحوي مجموعة من الحقول ( الشقق) ، فلا بد لكل عمارة أن يكون لها رقم وحيد لا يتكرر ليعرف ما بها من بيانات ، بالطبع التشبيه لا يصلح تماما و لكنه لتقريب المفهوم فقط و المعلومة التي يتم من خلالها تعريف السجل بكل محتوياته هي ال Primary Key و المهم فى رقم المفتاح هو الا تكرر قيمته فى أي سجل من السجلات ، و ألا يسمح بتركه بدون قيمة أي فارغ ( Null) و يمكن لحقل المفتاح أن يكون رقما أو نصاً و لكن المهم ألا يسمح بتكراره ولا بتركه بدون قيمة و النوع الافتراضي الذي يحدده الاكسس لحقل المفتاح هو AutoNumber أي حقل تزيد قيمته تلقائيا مع ادخال أي سجل فيه ، و هو أنسب الأنواع لكي يضمن المستخدم عدم تكرار القيمة أو تركها فارغة. و بالطبع يمكن استخدام حقل من نوع آخر بحسب الحاجة. و بذلك يكون نوع حقل المفتاح واحد من ثلاثة حقل ترقيم تلقائي Autonumber حقل غير متكرر و له قيمة Unique & Not Null متعدد الحقول Multi - Field Primary Key المفتاح متعدد الحقول ( المفتاح المركب ) : هذا النوع نلجأ اليه فى حالة عدم ضمان الحصول علي حقول فريدة ، فنلجأ لاستخدام أكثر من حقل كمفتاح للسجلات لكي نضمن أن المفتاح غير متكرر ، فاذا تكررت القيمة 4 مرات مثلا فى الحقل الأول تكون القيمة المناظرة فى الحقل الثاني غير متكررة فى هذه الأربع سجلات فمثلا فى الشكل التالي نجد أن القيمة 102 تكررت فى الحقل الاول و لكن ما يناظرها فى الحقل الثاني قيم مختلفة. فكل سجل فى هذا الجدول يعرف بقيمة فريدة لكل من الحقلين معا و ليس لكل حقل علي حدة ولكي نقوم بعمل مفتاح مركب بين الحقلين نختارهما معا فى نفس الوقت ثم نضغط علي زر المفتاح فى الايقونات العلوية فيظهر مفتاحين امام الحقلين فى وضع التصميم ، و هذا يعني أنهما يمثلان مفتاح مركب للسجل و الأن لنتأكد من هذا الكلام لنحاول اضافة قيمة مكررة للحقلين معا كما فى الجدول المبين فسيرفض الاكسس قيمة السجل الاخير ( الذي يظهر امامه القلم علامة علي أنه فى وضع التحرير ) و ستظهر رسالة تدل علي رفض قبول السجل الجديد ، و هذا لتعارضه مع المفتاح المركب بين السجل الجاري اضافته و السجل الاول و أخيرا لازالة خاصية المفتاح من حقل معين يتم ذلك بالضغط ثانية علي زر المفتاح الفهارس يساعد الفهرس فى الوصول الي السجلات و فى ترتيبها بطريقة أسرع ، و يمكن وضع فهرس علي أكثر من حقل ، و الفهارس علي حقول متعددة تفيد فى التمييز بين السجلات فى حالة السماح بتكرار قيم الحقول . حقل المفتاح يكون مفهرس بصورة آلية ، و لا يمكن عمل فهرس علي حقل من نوع (OLE(Object Linked or Enbeded و لكن بهذا المنطق يجب وضع فهرس علي الحقول التي نرتب بها و التي نبحث فيها و التي نستخدمها للربط بين الجداول ، و لكن لا تصلح هذه القاعدة للتطبيق عمليا ، فهناك جانب آخر للمشكلة و هو أن كثرة الفهارس تؤدي لبطيء تنفيذ بعض الاستعلامات و الاوامر لذلك علينا الموازنة و استخدام الفهارس للحقول الضرورية فقط لا غير لانشاء فهرس جديد نختار الحقل المطلوب فهرسته ، و ليكن الحقل n كما فى الشكل المقابل ثم نتجه الي الجزء السفلي من الشاشة فى خانة indexed و نختار أحد الخيارات الآتية : Yes No Duplicates أو Duplicates OK و الأول يعني أنه حقل مفهرس فقط أما الثاني فيعني أنه مفهرس مع عدم السماح بتكرار القيم المدخلة و للخيار الثاني فائدة أخري ، و هي عدم السماح بتكرار القيم أثناء إدخال البيانات لاستعراض الفهارس الموجودة في جدول ما نختار فتظهر الشاشة التالية : و منها نستعرض و نستطيع أن نغيير خصائص كل من حقول المفتاح و الفهارس و نلاحظ ان الاتجاه الافتراضي للترتيب هو التصاعدي ، و بمكن تغييره بحسب الحاجة و الآن كيف نمنع أن ندخل قيم مكررة فى حقلين مختلفين ؟ عن طريق الفهارس نختار الحقل الاول و نختار أي اسم للفهرس الاول ، و ليكن هو نفس اسم الحقل ( n ) ثم نتجه للعامود الثاني و نختار اسم الحقل ثم نختار اصف الثاني و ننتقي الحقل من العمود الثاني فيه بدون تحديد اسم ثم نرجع الي الحقل الاول و نغير خاصية Unique الي Yes و أخيرا ، عادة ما يلجأ المصمم لنسخ حقل من جدول الي جدول و التعديل فيه كنوع من توفير الوقت ، بدلا من اعادة الادخلات ، و هذا قد ينتج عنه مشاكل فى الفهارس ، تؤدي الي بطيء القاعدة و لذلك ينصح عند انتهاء مرحلة تصميم الجداول ، بعمل مراجعة شاملة علي الفهارس ، و التأكد من عدم وجود فهارس غير مرغول فيها ، نتجت عن نقل حقل من جدول آخر أو من أي سبب آخر . المهم هو ضرورة مراجعتها مع انتهاء تصميم الجداول
    1 point
  11. بعد اذن اخي واستاذي ابو خليل شوف اخي ازهر الخطا بسبب me.j و me.t لكونهما متغيران وليسا حقلين في النموذج timer11.accdb
    1 point
  12. وعليكم السلام-لا يمكن العمل على التخمين عليك برفع ملف مدعوم بشرح كافى عن المطلوب مع وضع شكل النتائج المرجوة
    1 point
  13. الله ينور عليك استاذ علي ويكتب لك الاجر
    1 point
  14. وعليكم السلام-طالما انها معادلة اجمالى من الأفضل ان تكون هكذا =SUM(J6:L6) معادلة الجمع1.xlsx
    1 point
  15. اليوم انا اشتغل بدون ما اكون فاهم اي شي على العموم بدلا من Me.WindowWidth = Me.fw ضع Me.InsideWidth = Me.fw
    1 point
  16. السلام عليكم ورحمة الله وبركاته انا شاكر جدا جدا لحضرتك استاذنا الفاضل الاستاذ علي محمد على مجهودك وبارك الله في حضرتك خالص تحياتي،
    1 point
  17. بس لما تعطي الصورة كاملة 🙂 وانا متأكد بأنه هناك طرق اخرى ، ولكني اشرت لك على موضوع جاهز 🙂 جعفر
    1 point
  18. نعم اخي جعفر ولكن .... ازهر ما يهرول عبث كلام سليم احسن الله اليك يا ابا عبد الله
    1 point
  19. حسب ما فهمت من طلبك j1.accdb
    1 point
  20. السلام عليكم يمكنك استخدام الكود التالي في حدث قبل التحديث لعنصر كود الصنف If Me.RecordsetClone.RecordCount = 0 Then MsgBox " لاتوجد بيانات", vbInformation, "officena" DoCmd.CancelEvent Exit Sub End If تحياتي
    1 point
  21. جزاك الله كل خير
    1 point
  22. مرحبا استاذ جورج هذا القسم تعليمي وبالتالي بامكانك تبدا بعمل الجداول والحقول المطلوبة واذا استعصى عليك امر تضع استفسارك وبعون الله تجد المساعدة واذا ترغب في برنامج خاص يمكن وضع مشاركة في قسم اعلانات شخصية باجر هنا القسم وايضا شاهد هذا الموضوع 👇 فيه برنامج لمحل نظارات لاحد الاخوه بامكانك تحميلة
    1 point
  23. وعليكم السلام 🙂 استعمل مساعد برنامج الاكسس في VBE ، وابحث فيه ، وستحصل على معظم اجاباتك : Form.BorderStyle Property None 0 The form has no border or related border elements. The form isn't resizable. Thin 1 The form has a thin border and can include any of the border elements. The form isn't resizable (the Size command on the Control menu isn't available). You often use this setting for pop-up forms. (If you want a form to remain on top of all Microsoft Access windows, you must also set its PopUp property to Yes.) Sizable 2 (Default) The form has the default border for Microsoft Access forms, can include any of the border elements, and can be resized. You often use this setting for normal Microsoft Access forms. Dialog 3 The form has a thick (double) border and can include only a title bar, Close button, and Control menu. The form can't be maximized, minimized, or resized (the Maximize, Minimize, and Size commands aren't available on the Control menu). You often use this setting for custom dialog boxes. (If you want a form to be modal (modal: A window or dialog box that requires the user to take some action before the focus can switch to another form or dialog box. Dialog boxes and messages are usually modal.), however, you must also set its Modal property to Yes. If you want it to be a modal pop-up form, like most dialog boxes, you must set both its PopUp and Modal properties to Yes.) . فيصبح الكود : me.borderstyle=0 جعفر
    1 point
  24. تفضل لك ما طلبت 1معادلات.xlsx
    1 point
  25. وعليكم السلام-يمكنك استخدام هذا الكود لطلبك Sub Combine() Dim j As Integer Dim s As Worksheet On Error Resume Next Sheets(1).Select Worksheets.Add ' add a sheet in first place Sheets(1).Name = "Year 2020" ' copy headings Sheets(1).Activate With ActiveSheet v = 1 Range("a2").Resize(v + 1, 10) = arr Range("b" & v + 1).FormulaR1C1 = "Total" Range("c" & v + 1).FormulaR1C1 = "=SUBTOTAL(9,R4C3:R[-2]C)" Range("d" & v + 1).FormulaR1C1 = "=SUBTOTAL(9,R4C4:R[-2]C)" Range("e" & v + 1).FormulaR1C1 = "=SUBTOTAL(9,R4C5:R[-2]C)" Range("f" & v + 1).FormulaR1C1 = "=SUBTOTAL(9,R4C6:R[-2]C)" Range("g" & v + 1).FormulaR1C1 = "=SUBTOTAL(9,R4C7:R[-2]C)" Range("h" & v + 1).FormulaR1C1 = "=SUBTOTAL(9,R4C8:R[-2]C)" Range("i" & v + 1).FormulaR1C1 = "=SUBTOTAL(9,R4C9:R[-2]C)" End With Sheet1.Range("b4:k4").Copy Sheets("Year 2020").Range("a3:K3") Columns("A:C").ColumnWidth = 10 Columns("D:I").ColumnWidth = 8 Columns("J").ColumnWidth = 16 Range("b4").EntireRow.Select Range("b2:i2").Interior.ColorIndex = 5 Range("a2:j2").Font.ColorIndex = 2 Range("b2:i2").Font.Bold = True Range("b2:i2").Font.Size = 16 Range("b2:i2").Font.Name = "Times New Roman" Range("b2:i2").HorizontalAlignment = xlCenter Cells.Rows(4).Font.Bold = True Selection.Copy Destination:=Sheets(1).Range("b4") For Each s In ActiveWorkbook.Sheets If s.Name <> "Year 2020" Then Application.Goto Sheets(s.Name).[b4] Selection.CurrentRegion.Select ' Don't copy the headings Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).Select Selection.Copy Destination:=Sheets("Year 2020"). _ Cells(Rows.Count, 1).End(xlUp)(2) End If Next End Sub Book4 .xlsm
    1 point
  26. السلام عليكم ورحمة الله وبركاته ضع صح Microsoft Outlook 16.0 object library كما هوا موضح في الصورة بالتوفيق إن شاء الله
    1 point
  27. الموضوع بسيط علامات التنصيص للحقل النصي تختلف عن الحقل الرقمي stLinkCriteria = "[order]='" & Me![order] & "'" 555.accdb
    1 point
  28. أهلا بكم.. لجعل الأمور أكثر سهولة ومرونة للمبتدئين.. الشفرة التالية تفي بالغرض! Option Compare Database Option Explicit Dim xp As Single, yp As Single '-- أخذ النقطة الأولية للفارة وإسنادها إلى متغير عام '-- بهذه االطريقة يمكن قبض النافذة من أي نقطة دون الشعور بعدم التركيز Private Sub FormHeader_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) xp = X yp = Y End Sub Private Sub FormHeader_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Dim l, t If Button = acLeftButton Then l = Me.WindowLeft + X - xp t = Me.WindowTop + Y - yp Me.Move l, t End If End Sub أو هذه أيضا '-- هذه الطريقة تتماشى مع سلوك المستخدم '-- أغلب المستخدمين يقبض النافذة من المنتصف '-- الشعور بعدم التركيز لا يكاد يلحظ Private Sub FormHeader_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Dim l, t If Button = acLeftButton Then l = (Me.WindowLeft + X) -(Me.WindowWidth/2) t = (Me.WindowTop + Y) - (Me.FormHeader.Height/2) Me.Move l, t End If End Sub Database1.accdb
    1 point
  29. التعامل مع البيانات فى الجداول لاضافة بيانات : أنشيء جدول باحدي الطرق الثلاثة السابقة افتح الجدول فى وضع ورقة العمل datasheet view باختيار الجدول ثم open أو بالنقر المزدوج عليه إضغط علي الخلية الأولي ، و ابدأ فى الكتابة ملاحظة : السجل الذي تدخل فيه البيانات حاليا ، تظهر بجواره علامة قلم صغير للدلالة علي انه يتم تحريره حاليا . للانتقال الي الحقل التالي اضغط Tab و للانتقال الي الخلية السابقة اضغط Shift + Tab إضغط علي أزرار التنقل ( الأسهم للانتقال خطوة واحدة فى اتجاه السهم ) لتكرار البيانات الموجودة فى الخلية الأعلي : CTR + ' لالغاء ما كتبت مباشرة بعد كتابته : CTR + Z لتعديل بيانات مكتوبة : تحرك بالماوس فوق الكلمة المراد تعديلها ، و أدرج المؤشر فى النقطة التي تريد التعديل فيها أو اختار كلمة أو مجموعة حروف لاستبدالها حذف السجلات أولا اختار سجل واحد من المربع الرمادي الموجود فى بداية السجل او مجموعة سجلات ، باختيار اول سجل و ضغط شيفت ، ثم اختيار السجل الأخير و لكي يتم الحذف : اضغط علي ايقونة الحذف رقم 5 و الموجودة بجوار أيقونة الاضافة رقم 4 او اضغط علي زر DELETE أو من القائمة المختصرة للماوس Delete Record أو من قائمة EDIT نختار Delete Record نسخ و قص و لصق السجلات أولا اختار سجل واحد من المربع الرمادي الموجود فى بداية السجل او مجموعة سجلات ، باختيار اول سجل و ضغط شيفت ، ثم اختيار السجل الأخير و استخدم الايقونات الشهيرة للقص و النسخ و و ختار الخلاية التي تريد اللصق اليها و اختار اللصق و طبعا يمكن تنفيذ نفس الاوامر من قائمة Edit او بالاختصارات علي التوالي : CTR + X للقص CTR + C للنسخ CTR + V لللصق أو من القائمةالمختصرة للماوس ترتيب البيانات اختار الحقل الذي تريد الترتيب علي اساسه ، و اختار ايقونة الترتيب سواء التصاعدي أو التنازلي أو من Records , Sort, Ascending or Descending تصفية البيانات اذا كنت تريد قصر العرض علي بيانات محددة لها خاصية تجمعها فتوجد أكثر من طريقة لتصفية البيانات ( عمل فلتر ) اذا كنت تريد عمل التصفية بكلمة أو أكثر او جزء من كلمة ، فاخترها ثم من القائمة المختصرة للماوس ، اختار Filter By Selection أو اضغط مباشرة علي الايقونة رقم 1 هنا فتظهر فقط السجلات التي تحوي ما تم اختياره فى الحقل المناظر و للاختيار العكسي اختار Filter Excluding Selection فيظهر كل ما لا يحوي ما تم اختياره و يمكن أيضا تنفيذ تلك الأوامر من قائمة Records Filter و لازالة الفلتر ، نختار remove Filter من القائمة المختصرة أو من قائمة Filter أو اعد الضغط علي ايقونة الفتر و التي ستجدها مضغوط عليها عند تطبيق أي فلتر ( الايقونة رقم 3 ) طريقة أخري اختار الحقل الذي تريد تطبيق الفلتر عليه و انقر بالزر الايمن للماوس ، و اختار Filter For و اكتب معيار الفلتر المطلوب تنفيذه و يمكن أيضا استخدام ال * للتعبير عن جزء غير معلوم من المعيار مثل *مد فكانك كتبت أي شيء يتنهي ب "مد" و الآن بقي لنا بندان من البنود الموجودة فى قائمة Records Filter الا و هما Filter By Form و Advanced Filter و لنبدأ ب Filter By Form الا و هو التصفية من خلال النماذج و يوجد له ايقونة مخصصة فى الايقونات ، و هو الفلتر و بجانبه نموذج ، الايقونة رقم 2 و عند اختياره ، يظهر اطار به كل رؤوس او أسماء حقول الجداول ، و و باختيار أحد الحقول تنفتح قائمة سرد تحوي محتويات هذا الحقل ( البيانات المسجلة فيه ) فنختار ما نريد منها ، ثم نضغط علي زر Apply Filter لتفيذ الفلتر و هنا يمكن وضع الشروط علي أكثر من حقل فتكون الشروط من نوع AND مثل الاسم = محمد طاهر و البلد = مصر و المهنة = مهندس و هذا باختيار تلك القيم فى الحقول المناظرة و نلاحظ أنه يمكن استخدام معاملات > و < و Like و الأخيرة تستخدم للنصوص مثال فى حقل العمر >15 فى حقل البلد "السعودية" لكل ما ينتهي بال م Like "*م"" و اذا أردنا اضافة شروط اضافية من نوع OR أي "أو" نجد علامة تبويب فى اسفل الاطار ، نختارها لاختيار الشروط الاضافية من نوع or و ايضا لتطبيق الفلتر نضغط علي ايقونة الفلتر ( رقم 3 ) فى الشكل السابق و لازالته نضغط عليها ثانية أو من قائمة records ِapply filter Sort remove Filter Sort و الان لنجرب سويا الفلتر علي الجدول المرفق اذا فتحنا الجدول ، نجد فى الاسفل أن عدد السجلات المعروضة 11 سجل نريد تطبيق الفلتر الاتي : أن كود البلد = 2 فكما سبق ـ اما أن نختار رقم 2 فى كود البلد فى أي سجل ، و نختار ايقونة التصفية بالاختيار أو من القائمة المختصرة ، أو من القائمة العلوية و فى كل الاحوال ستكون النتيجة أن عدد السجلات 3 بدلا من 11 و الان لنجرب الفلتر بالنموذج أو لا نزيل الفلتر الموجود بالضغط علي ايقونة الفلتر ثم نختار الفلتر بالنموذج و نختار فة حقل المرتب salary الرقم 1000 من القائمة ثم نضغط علي زر الفلتر فتكون النتيجة سجلان لسمير و تامر و الان نريد أن نختار كل من مرتبه أقل من 1000 فنختار ثانية الفلتر بالنموذج ، و فى حقل المرتب نكتب <1000 فتكون النتيجة 4 سجلات للموظفين 5و6و9و11 و هنا قبل التطبيق يجب التأكد من عدم وجود شروط أخري ، حيث أنه يحتفظ بالتصفيات السابقة ، فمن يظهر له سجل واحد بدلا من 4 فسيكون فى حقل كود البلد مكتوب شرط أنه يساوي 2 و عليه ازالة هذا الشرط قبل التطبيق و الان التجربة الخيرة نريد شرط مركب ان الاسم يبدأ بحرف ال A و معه أن البلد = 1 لنكتب فى الاسم A و تليها * و سنجدها تتحول اليا الي Like "a*" و نضيف شرط كود البلد ، ثم نطبق الفلتر ، فتكون النتيجة سجلان أحمد و عبده --------------- و الخيار الأخير هو الفلتر المتقدم advanced Filter و هو يتيح التصفية و الترتيب سويا ، و هو يناظر التعامل مع الاستعلامات كما سنري لاحقا و للتعامل معه ننقر نقرا مذدوجا علي الحقل المراد تطبيق المعايير عليه أو نسحبه الي الشبكة و نجد اسفل اسم الحقل خانتان الاولي لاختيار نوعية الترتيب تصاعدي أو تنازلي و الثانية لوضع المعايير الخاصة بالتصفية ، و يتم التعامل معها بنفس طريقة التعامل مع التصفية من خلال النماذج و طبعا يمكننا اختيار أكثر من حقل ووضع أكثر من معيار لكل حقل و ذلك فى الخلية الاخير المعنونة ب OR و الآن الي المثال السابق و قبل أن نطبق المثال الجديد ، حاول تطبيق التجارب السابقة من خلال الفلتر المتقدم و بالطبع سنحصل علي نفس النتيجة و لكن لنجرب التجربة الأولي سويا أن كود البلد = 2 أولا نفتح الجدول ، و نختار فلتر متقدم ، و سنجد أخر فلتر نفذناه مكتوب كقيمة افتراضية فنقوم بازالة العمودان فى الاسفل و نختار مجددا كود البلد بسحيه الي الشبكة أو النقر المزدوج عليه فنجد أن اسم الحقل قد كتب فى خانة Field و فى خانة Critera نكتب 2 و نختار زر الفلتر ، فنجد أن المعروض 3 سجلات و هنا يمكن التحكم فى الترتيب مثلا لو أردنا عرض تنازلي بالاسم نختار حقل الاسم بالنقر المزدوج أو السحب ثم فى خامة الترتيب نختار descending و نترك خانة المعيار Criteria خالية و نضغط علي زر الفلتر لنرس السجلات الثلاثة مرتبة تنازليا بالاسم و الان الي المثال المركب نريد الاسماء التي تبدا ب M or A و يكون العرض مرتبا بالمرتب و البلد لا تساوي 2 و بتطبيق الفلتر نجد الموظفين معروضين بالترتيب التالي 6 ، 11 ، 1 ، 2 و كما ذكرنا ، فان خصائص التصفية المختلقة يتم الاحتفاظ بآخر ما نفذ منها قكيمة الفتراضية للتصفية القادمة ، مع اختلاف الاسلوب المتبع و عليه ، فاذا فتحنا الفلتر بالنموذج سنجد المثال السابق مكتوب فيه استعدادا لتنفيذه ، و هنا سيتضح لنا كيفية الاستفادة من علامة التبويب OR لتطبيق المثال السابق و الآن أترككم مع تطبيق الامثلة السابقة :)
    1 point
  30. السلام عليكم ورحمة الله وبركاته إلى أهل الخبرة فى منتدى أوفيسنا فى هذا المرفق عند الضغط على زر طباعة الإيصالات يقوم بنسخ جميع أزرار الأوامر مع نسخ الخلية m1 بجوار كل إيصال ... ما السبب ؟ كشف مرتبات.rar
    1 point
  31. وعليكم السلام من الواضح انك يجب ان تشتري/تسجل الاداة اعلاه، ولكن هناك طرق اخرى ، احدها في هذا المرفق: https://bytes.com/attachments/attachment/1237d1209368957/anigif.zip جعفر
    1 point
  32. تم رفع هذا الكود فى مشاركة منفصله حتى لا ننسى هذه المشاركة برنامج حضور و إنصراف تم ارفاق كود الحل من الفاضل/ محمد عبد المجيد ( أبو حمزة ) و لا تنسونا من صالح الدعاء تحياتى __حمزه_المرتبات بعد التعديل.rar
    1 point
  33. استاذ / وائل عزالدين اسم المستخدم كريم والرقم السري 4444 ولمن أراد فك حماية أي شيت الباسورد 00 تحياتى
    1 point
  34. السلام عليكم ورحمة الله وبركاته ،،، أساتذة هذا المنتدى الرائع فكم استفدت منكم كثيرا و أسأل الله تبارك وتعالى أن يثقل موازين حسناتكم اسما اسما فردا فردا حتى لا أنسى اسما ، أريد أن أعرف رأيكم في العمل المتواضع اسم المستخدم كريم والرقم السري 4444 ولمن أرد فك حماية أي شيت الباسورد 00 fالمرتبات بعد التعديل.rar
    1 point
  35. أخى الكريم سلام الله عليكم تعديل طفيف لاستدعاء البيانات وطباعتها فى صفحة واحدة مهما كان العدد 2 كشف مرتبات.rar
    1 point
  36. إليك المرفق أتمنى أن يكون المطلوب نسخة أفيس 2003 كشف.rar
    1 point
  37. السلام عليكم مرفق الملف و الكود و شرح خطواته ReplaceallInFolder.rar و يمكنك حذف الثلاثة أسطر الخاصة بكل رسالة اذا لم ترد ظهورها و هي التي تبدأ ب msgbox Sub ProcessAll() ' هذا الكود يقوم باختيار فاعدة البيانات التي تحوي كافة اكلمات المراد استبدالها ' ثم اختيار مسار المجلد الموجود به الملفات المطلوب استبدال الكلمات بها ' ثم استدعاء كود الاستبدال ليعمل عليها واحدا تلو الآخر Dim Wb As Document, sFile As String, sPath As String Dim itm As Variant Dim strFileNames, mydbpath As String Dim f As FileDialog ' اختيار قاعدة البيانات Set f = Application.FileDialog(msoFileDialogFilePicker) f.Show If f.SelectedItems(1) = "" Then MsgBox "يجب اختيار ملف الاكسيس الذي يحوى الكلمات المطلوب استبدالها " Exit Sub End If mydbpath = f.SelectedItems(1) MsgBox "سيتم الاستبدال بناء على الملفت الموجودة فى قاعدة البيانات التالية : " & _ Chr(10) & Chr(13) & mydbpath & Chr(10) & Chr(13) & _ " مع تحيات أوفيسنا " & Chr(10) & Chr(13) & "www.officena.net" ' اختيار مسار الملفات المطلوب التطبيق عليها Set f = Application.FileDialog(msoFileDialogFolderPicker) f.Show If f.SelectedItems(1) = "" Then MsgBox "يجب اختيار مسار المجلد الموجود به الملفات التي تريد التطبيق عليها " Exit Sub End If sPath = f.SelectedItems(1) & "\" MsgBox "سيتم الاستبدال لطافة ملفات الوورد فى المسار التالي : " & _ Chr(10) & Chr(13) & sPath & Chr(10) & Chr(13) & _ " مع تحيات أوفيسنا " & Chr(10) & Chr(13) & "www.officena.net" ' اختيار مستندات الوورد فقط ضمن الملفات الموجودة فى المجلد sFile = Dir(sPath & "*.doc") ' ثم استدعاء كود الاستبدال ليعمل عليها واحدا تلو الآخر Do While sFile <> "" strFileNames = strFileNames & "," & sFile sFile = Dir() Loop ' فتح الملفات و تشغيل كود الاستبدال عليها و احدا تلو الاخر For Each itm In Split(strFileNames, ",") If itm <> "" Then Set Wb = Documents.Open(sPath & itm) Call Replacedoc(mydbpath) 'استدعاء كود الاستبدال Wb.Close True End If Next itm End Sub [/sql] [sql] Sub Replacedoc(mydbpath As String) ' هذا الكود يقوم باستبدال كافة الكلمات فى الملف المفتوح طبقا لما ورد فى قاعدة البيانات المحدد اسمها و مسارها فى المتغير Dim doc As Document Dim db As DAO.Database Dim rs As Recordset Set doc = Application.ActiveDocument Set db = OpenDatabase(mydbpath) Set rs = db.OpenRecordset(Name:="Table1") While Not rs.EOF With doc.Content.Find .ClearFormatting .Text = rs(0) With .Replacement .ClearFormatting .Text = rs(1) End With .Execute Replace:=wdReplaceAll, _ Format:=True, MatchCase:=True, _ MatchWholeWord:=True End With rs.MoveNext Wend rs.Close db.Close End Sub ReplaceallInFolder.rar
    1 point
  38. السلام عليكم موضوع قديم عملته سابقا لشبكات نوفل Novell وحسب ما أعتقد لم يستفد منه أحد لقلة مستخدمي نظام نوفل ، ولكنه الآن يعمل على شبكات الويندوز والنوفل . المطلوب فقط اختيار ملف الرسائل وهو كالتالي : للنوفل : send.exe ويكون عادة على \Public\\ . للوندوز : net.exe ويكون عادة على \C:\Windows\System32 . المرسل إما مستخدم واحد أو متعدد أو للجميع . وينقصه فقط الإرسال إلى سيرفر واحد في حالة وجود أكثر من سيرفر ، فإذا رغبتم بإضافة هذه الخاصية أضفناها بعد أن يتم تجربة المثال وإطلاعنا على النتائج مشكورين سلفا . تحياتي . الملف المرفق ( عدد مرات التنزيل: 118 ) POP_UP_1997.zip
    1 point
  39. بسم الله الرحمن الرحيم فى الحقيقه قمت بتصميم قاعدة بيانات بالاكسس فى العمل وهى باختصار يتم ادخال ارصدة البضاعه عند العميل وما قام بشراءة فى كل زيارة فمثلا ذهب اليه المندوب اليوم فوجد عندة 4 وحدات ثم اعطاة 3 مثلا وبعد 3 ايام ذهب المندوب مرة اخرى فوجد عندة 2 وحدة فاعطاة 6 وحدات والمطلوب حساب معدل الدوران للصنف عند هذا العميل وعند مجموعه من العملاء الذين ينتمون لمنطقه واحدة وكذلك للشركه ككل فى هذا السوق المثال جاهز معى ولكنى لا اجد زر المستعرض لكى استطيع وضعها على الموقع برجاء ارشادى كيف اقوم بوضعها على المنتدى وبرجاء المساعدة فى استخراج هذة الانواع من التقارير حيث هى مهمه لى جدا فى عملى ولكم جزيل الشكر والاحترام
    1 point
  40. السلام عليكم ورحمة الله وبركاته نفرض أنك تشتغل على نموذج بصورة شبه يوميه وتريد عندما تفتح النموذج أن يعود بك إلى أخر سجل قمت بإدخاله أو تعديله . المثال التالي يحل المشكله ان شاء الله وهو يعتمد على نموذج يحتوي على حقل ترقيم تلقائي فريد باسم ( CustomerID ) الشـــرح:- أولاً : أنشىء جدول باسم "tblSys" يتكون من الثلاث حقول التالية : Variable (حقل نصي حجمه 20 حرف) Value (حقل نص حجمه 80 حرف) Description (حقل نص حجمه 255 حرف) ثانياً: ضع الكود التالي في حدث عند إلغاء التحميل للنموذج المراد إستخدامه Sub Form_Unload (Cancel As Integer) Dim rs As DAO.Recordset If Not IsNull(Me.CustomerID) Then Set rs = CurrentDb().OpenRecordset("tblSys", dbOpenDynaset) With rs .FindFirst "[Variable] = 'CustomerIDLast'" If .NoMatch Then .AddNew ![Variable] = "CustomerIDLast" ![Value] = Me.CustomerID ![Description] = "Last customerID, for form " & Me.Name .Update Else .Edit ![Value] = Me.CustomerID .Update End If End With rs.Close End If Set rs = Nothing End Sub ثالثاً: ضع الكود التالي في حدث عند التحميل للنموذج المراد إستخدامه Sub Form_Load() Dim varID As Variant varID = DLookup("Value", "tblSys", "[Variable] = 'CustomerIDLast'") If IsNumeric(varID) Then With Me.RecordsetClone .FindFirst "[CustomerID] = " & varID If Not .NoMatch Then Me.Bookmark = .Bookmark End If End With End If End Sub ملاحظة: أضف المرجع DAO 3.6 إلى قائمة المراجع لديك في القاعدة لكي تعمل القاعدة بالشكل المطلوب. للإستيضاح مرفق مثال على ذلك. والله الموفق (المرجع أحد المواقع الأجنبية) Last_update_Recorde.zip
    1 point
  41. السلام عليكم أحياناً استخدم برنامج على الأكسيس 2000 ويستخدم التاريخ الهجري ... لكن إّا أردت أن أستخدم هذا البرنامج على الأكسيس الأكس بي يتغير التاريخ إلى ميلادي ؟؟! فكيف أجعل التاريخ لقاعدة البيانات المصممة على الأكسيس 2000 تستخدم التاريخ الهجري حتى لو أستخدم على الأكسيس الأكس بي ؟؟؟!
    1 point
  42. مثال للأخ حارث قم بتشغيل الزر فى النموذج يقوم بانشاء جدول به الأخطاء و أرقامها errortable_harith.zip
    1 point
  43. من الاستخدامات منع تشغيل القاعدة في جهاز آخر إذا أختلف رقم القرص عن الرقم المسجل بالقاعدة . في الوحدة النمطية العامة اكتب : Declare Function GetVolumeInformation Lib "kernel32" Alias "GetVolumeInformationA" ( _ ByVal lpRootPathName As String, _ ByVal lpVolumeNameBuffer As String, _ ByVal nVolumeNameSize As Long, _ lpVolumeSerialNumber As Long, _ lpMaximumComponentLength As Long, _ lpFileSystemFlags As Long, _ ByVal lpFileSystemNameBuffer As String, _ ByVal nFileSystemNameSize As Long) As Long وفي حدث عند نقر زر أمر اكتب : Dim disk As String Dim serialnum As Long, serial As String disk = "c:\" 'غير الى القرص الذي تريد RetVal = GetVolumeInformation(disk, NomVolume, Len(NomVolume), _ serialnum, dum, dum, ResStr, Len(ResStr)) 'استخراج الرقم التسلسلي serial = Right(String(8, "0") + Hex$(serialnum), 8) serial = Left(serial, 4) + "-" + Right$(serial, 4) MsgBox serial ************** مع تحيات موقع أبو حمود
    1 point
  44. الإخوة الكرام السلام عليكم وبعد لعل مما يقض مضجع الكثيرين من مبرمجي أكسس هو خاصية " عرض الإطارات في شريط المهام " وهي إحدى الخصائص الموجودة في صفحة خيارات في أكسس وقد ظهرت ابتداء من أكسس 2000 والمشكلة فيها هي أنه عندما يعمل البرنامج يتم إظهار إطار قاعدة البيانات وفيها الجداول وبالتالي فإنه حتى المستخدم العادي يستطيع الوصول إليها هذه الخاصية يتم التحكم فيها على مستوى الأكسس ككل وليس على مستوى قاعدة البيانات كما هو الحال في كثير من الخصائص وقد حاولت التغلب على هذه المشكلة ووجدت أن هذه الخاصية يتم تخزينها في الريجسيري ( قاعدة بيانات الويندوز ) فقمت بكتابة برنامج بالفيجوال بيسك يقوم بإلغاء هذه الخاصية ويمكن تنفيذ البرنامج بالطبع من داخل أكسس ، إلا أن تأثيره لا يظهر إلا بعد إغلاق الأكسس وإعادة تشغيله مرة أخرى البرنامج مرفق وقد وضعته بالسورس كود وبالـ exe ، وهو يعتمد على دوال API ، آمل أن يكون مفيداً للجميع ولكم تحياتي أخوكم / أبو هاجر HideFrames.zip
    1 point
  45. السلام عليكم ورحمة الله وبركاته إليكم طريقة إخفاء شاشة الأكسس نهائيا بعد فتح النموذج المطلوب 1- انشئ قاعدة بيانات جديده 2- انسخ الكود التالي ثم الصقه في وحده نمطيه جديدة وسمها أي اسم ترغب به الكود =============================================== Option Compare Database Option Explicit Global Const SW_HIDE = 0 Global Const SW_SHOWNORMAL = 1 Global Const SW_SHOWMINIMIZED = 2 Global Const SW_SHOWMAXIMIZED = 3 Private Declare Function apiShowWindow Lib "user32" _ Alias "ShowWindow" (ByVal hwnd As Long, _ ByVal nCmdShow As Long) As Long Function fSetAccessWindow(nCmdShow As Long) 'Usage Examples 'Maximize window: ' ?fSetAccessWindow(SW_SHOWMAXIMIZED) 'Minimize window: ' ?fSetAccessWindow(SW_SHOWMINIMIZED) 'Hide window: ' ?fSetAccessWindow(SW_HIDE) 'Normal window: ' ?fSetAccessWindow(SW_SHOWNORMAL) ' Dim loX As Long Dim loForm As Form On Error Resume Next Set loForm = Screen.ActiveForm If Err <> 0 Then 'no Activeform If nCmdShow = SW_HIDE Then 'MsgBox "Cannot hide Access unless " _ & "a form is on screen" Else loX = apiShowWindow(hWndAccessApp, nCmdShow) Err.Clear End If Else If nCmdShow = SW_SHOWMINIMIZED And loForm.Modal = True Then 'MsgBox "Cannot minimize Access with " _ & (loForm.Caption + " ") _ & "form on screen" ElseIf nCmdShow = SW_HIDE And loForm.PopUp <> True Then 'MsgBox "Cannot hide Access with " _ & (loForm.Caption + " ") _ & "form on screen" Else loX = apiShowWindow(hWndAccessApp, nCmdShow) End If End If fSetAccessWindow = (loX <> 0) End Function =============================================== 3- انشئ نموذج جديد وسمه اي اسم ترغب به 4- غير خصائص النموذج الى pop up=yes modal=yes 5- ضع زر امر لإغلاق النموذج مع الأكسس 6- ضع في حدث عند الفتح الكود التالي الكود ============================================== fSetAccessWindow (SW_SHOWMINIMIZED) fSetAccessWindow (SW_HIDE) ============================================== 7- من قائمة أدوات اختر بدء التشغيل ثم حدد النموذج لكي يفتح في بدء التشغيل 8- إحفظ عملك ثم قم بإنهاء القاعدة . 9- شغل القاعدة وسوف ترى ان خلفية الأكسس مختفيه تماما ما عدا النموذج الذي اخترته من قائمة بدء التشغيل . 10 -دعواتكم لنا بالتوفيق مرفق مثال على الطريقة ====================== تحياتي hideaccesswindow.zip
    1 point
×
×
  • اضف...

Important Information