اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

متقاعد

الخبراء
  • Posts

    583
  • تاريخ الانضمام

  • تاريخ اخر زياره

  • Days Won

    25

كل منشورات العضو متقاعد

  1. الله يعطيك الصحة والعافيه والشباب شباب القلب
  2. احسنت استاذنا الفاضل لذا انا وضعت الكود كاملا واشرت الى فتح التقرير طبعا مخفي او غير مخفي ماتفرق بالتوفيق استاذ محمد
  3. هذا ما فعلت بالضبط ربما خانني التعبير فكما اشرت عملت المثال وكتبت المشاركة اثناء تناول الافطار 😄
  4. احسن الله اليك استاذي ومعلمي @kanory الان مما سبق ماذا نستفيد من ذكر هذه البارمترات الاستفادة اننا نستطيع ان نعمل نموذج لخيارات الطباعة نحدد فيه عدد النسخ من الى جودة الطباعة "نستفيد منها لتقليل التكلفة عند طباعة المسودات " ترتيب الطباعة الخ تحياتي
  5. البارامتر السته كما يلي PrintRange خاص بتحديد النطاق وله ثلاث قيم 2 او 0 و 1 رقم 2 ويستخدم مع البارمترات التاليه 2 و 3 لتحديد الصفحات 0 لتحديد الكل 1 للجزء المحدد من الكائن PageFrom من صفحة PageTo الى صفحة PrintQuality جودة الطباعة Copies النسخ المطلوبه CollateCopies ترتيب الطباعة وله قيمتين 0 و 1 صفر عشوائي وواحد بالترتيب تحياتي
  6. امر الطباعة DoCmd.PrintOut له 6 بارمترات لكل منها عمله والي يهمنا في تحديد عدد النسخ هو الخامس Copies ولكوننا نرغب في تحديد النسخ عن طريق مربع او قائمة نكتب الامر DoCmd.PrintOut , , , , [tx3] tx3 هو مربع النص الذي نحدد فيه عدد النسخ ويكون الامر هكذا DoCmd.OpenReport "r_1", acViewPreview, , , acHidden DoCmd.PrintOut , , , , [tx3] نفتح التقرير في وضع مخفي ونطبع النسخ المحددة انا ماعندي طابعة ولكن استخدمت طابعة مايكرواسوفت لبي دي اف وطبع ثلاث نسخ مثلما حددت
  7. ممكن باكثر من طريقة وساشرح طريقة بسيطة في مصدر القائمة نقوم باضافة حقل يجمع الكود واسم المادة [الكود]&" "&[اسم المادة] لنقوم بالفلترة من خلال هذا الحقل ولكن هناك بعض الخطوات في خصائص القائمة تبويب بيانات توسع تلقائي = لا تبويب تنسيق عدد الاعمدة = 3 عرض الاعمدة = 0سم;2سم;3سم الان في حدث عند مفتاح اعلى نضع الكود التالي If Len(co2.Text) > 0 Then Me.co2.RowSource = " SELECT [id] & "" "" & [item] AS Expr1, tbl_it.id, tbl_it.item, tbl_it.price " & _ " FROM tbl_it " & _ " WHERE ((([id] & "" "" & [item]) Like ""*"" & [Forms]![frm_3]![co2].[Text] & ""*""));" Me.co2.Dropdown Else Me.co2.RowSource = " SELECT [id] & "" "" & [item] AS Expr1, tbl_it.id, tbl_it.item, tbl_it.price " & _ " FROM tbl_it;" [tx2] = Null: [tx4] = Null End If co2 هي القائمة المنسدلة tx2 و tx4 هي الحقول التي سيتم اضهار الصنفى وسعر الصنف بها ثم في حدث بعد التحديث للقائمة نضع الامر Me.tx2 = Me.co2.Column(2) Me.tx4 = Me.co2.Column(3) بالتاكيد توجد طرق اكثر ولكن ساكتفي بهذه الطريقة اخيرا انا لا فضل استخدام مربعات التحرير والسرد ودائما استخدم مربع نص غير منضم يتم ادخال رقم الصنف به وفي حالة عدم معرفة رقم الصنف نضع رقم صفر ليفتح لنا نموذج اختيار الاصناف جاهزة للفلترة برقم او اسم الصنف وهذه الطريقة اسرع في ادخال البيانات ولا نحتاج لاستخدام الماوس في الصورة المتحركة في المثال ⬇️ يوجد خطا حيث وضعنا اسم الصنف في حقل السعر والسعر في حقل الصنف لاني عملت المثال وصورتة وانا مشغول بعمل اخر ولم اراجعة تحياتي
  8. ههههههه الحقيقة اذا كان بنعمل بالكود في كافة نماذج البرنامج نحول الكود الى وحدة نمطية اي ان الكود نفسه بيبقى 7 اسطر و باقي اسطر المهندس قاسم الاشارة في النمادج المطلوبة تحياتي نفس ردكم اخي احمد
  9. شايف كيف ياعم احمد الشباب يفوز 5 اسطر كودك افضل واسهل من كود الشايب 7 اسطر
  10. امين ولك بالمثل اخي الفاضل يونس جزاك الله كل خير على الدعاء الطيب تحياتي وتقديري لك
  11. ويبارك في اخي العزيز احمد لا ياعم احمد انت مازلت شاب اسال الله يبارك لك في عمر وعلمك تحياتي لك يا ابا بسمله 🌹
  12. الطريقة الاسهل في حدث في الحالي للنموذج ضع الامر التالي Dim intnewrec As Integer intnewrec = Form.NewRecord If intnewrec = 0 Then Me.AllowEdits = False Else Me.AllowEdits = True End If تحياتي
  13. ممكن ومادمت مسن مثلي نعملها على طريقة المسنين DoCmd.SetWarnings 0 DoCmd.RunSQL "UPDATE tblA SET tblA.ATHHAR = 3;" DoCmd.RunSQL "UPDATE tblA SET tblA.ATHHAR = 6 WHERE (((tblA.IDA)=[Forms]![FtblAA]![IDA]));" Me.ATHHAR.Requery DoCmd.SetWarnings -1 نوقف رسائل التحذير ننفذ استعلام تحديث الى رقم ثلاثة ننفذ استعلام تحديث الى رقم سته للسجل الحالي نحدث الحقل ATHHAR في النموذج نعيد تفعيل رسائل التحذير هذه اسهل طريقة حسب اعتقادي الملف مرفق مع ان ارفاق اي ملف ضد توجهي ولكن طلب من مسن لا يرد تحياتي اظهار السجل الحالي فقط.accdb
  14. الموضوع يحتاج ايضاح اكثر مثلا السجل الحالي للعميل يونس عندما نفتح الاستعلام تحتاج الى عرض سجلات يونس يونس لديه 9 سجلات ومثله لباقي الاسماء اذا كان هذا الفهم صحيح ما نحتاج الى حقل اظهار ولا اي تعديل على استعلام QAAAA فقط نفتح استعلام QCCC في وضع التصميم ثم في المعايير للحقل IDA نضع التعبير التالي ⬇️ [Forms]![FtblAA]![IDA] وفي النموذج نعمل زر امر ونضع الكود ⬇️ DoCmd.OpenQuery ("qccc") اعتذر ان لم اوفق في فهم المطلوب فانا رجل مسن وفهمي على قدي تحياتي
  15. مشاركة معكم دالة لحساب السنوات ويمكن تعديلها لتحقيق المطلوب Function Age(varBirthDate As Variant) As Integer Dim varAge As Variant If IsNull(varBirthDate) Then Age = 0: Exit Function varAge = DateDiff("yyyy", varBirthDate, Now) If Date < DateSerial(Year(Now), Month(varBirthDate), _ Day(varBirthDate)) Then varAge = varAge - 1 End If Age = CInt(varAge) End Function هذه الدالة ☝️ من موقع مايكروسوفت الموقع غني بالامثلة ولكن امثلة عامة يمكن التعديل عليها وتكييفها وفقا لحاجتنا تحياتي
  16. جميعنا كذلك نتعلم ونكتشف طرق جديد ونكتسب الخبرات من بعضنا البعض احسن الله اليك اخي قاسم
  17. مشاركة مع المهندس قاسم في النموذج الفرعي الخاص بالسداد عملت اجراء اسمه k وقيمته تساوي ⬇️ Sub k() Parent!Al_Mawad!Al_Baq = Parent!bage Parent!Al_Mawad.Requery End Sub ثم في حدث بعد التحديد للحقل Al_Wasil في النموذج نفسه تمت الاشارة للاجراء k مع التحفظ على الطريقة المستخدمة و اتفاقي مع رأي استاذي الفاضل المهندس قاسم هذا مجرد رأي وليس الهدف انتقاد العمل تحياتي
  18. حياك الله اخي واستاذي ابو البشر والشكر لله اخي وجودكم انتم واخوننا الكرام هو الدافع لعودتنا بعد طول انقطاع من المؤكد ان الموقع يزخر بالامثلة للترقيم في الاستعلام مع ذلك ساتحدث عن طريقتين ربما تفيد احد من رواد الموقع الطريقة الاولى اذا كان لدينا في الجدول حقل ترقيم ولكن توجد ارقام محذوفة Expr1: DCount("[id]";"tbl_1";"[id]<=" & [id]) الطريقة الثانية اذا كان الجدول لا يحتوي اي حقل ترقيم وانما حقول نصية فقط ⬇️ Expr2: (Select Count(1) FROM [tbl_1] A WHERE A.item <=[tbl_1].[item]) item حقل نصي هنا ☝️من الافضل استخدام تسمية توضيحية حتى لا تظهر لنا رسالة بطلب قيمة معلمة . توجد طرق اخرى عديدة بعضها يعتمد على وحدة نمطية وبعضها بدون ولكن هذه من اسهل الطرق. والى لقاء في موضوع اخر باذن الله تحياتي
  19. الطريقة الاسهل بدون تحريك دماغ ( هذا على افتراض وجوده) 😄 نجعل المصدر استعلام ونظيف له حقل ترقيم تلقائي ونكمل بنفس الطريقة
  20. اما انا سوف اعملها بطريقة الطيبين بدون الحاجة الى عدة استعلام فقط استعلام واحد ويكون مصدر للنموذج ويتم كتابة جملة الاستعلام في مربع نص مخفي في النموذج في البداية نحتاج الى نموذج فارغ ونضع فية ثلاث حقول نصية وزري امر ونموذج فرعي لعرض السجلات مصدر سجلات النموذج الفرعي الجدول ولايهمنا كثير لكوننا سوف نتحكم بالمصدر عن طريق الكود مربع النص الاول اسميته tx2 وقيمته الافتراضية 1والثاني tx3 وقيمته الافتراضية 100 والثالث tx10 تسمية الحقول امر راجع لك المهم تسمية الحقل تكون نفسها في الكود الحقل النصي tx10 قيمته تساوي ="SELECT tbl_1.id, tbl_1.id_item FROM tbl_1 WHERE (((tbl_1.id) Between " & [tx2] & " And " & [tx3] & "));" tbl_1 هو اسم الجدول الذي يحتوي على البيانات tx2 و tx3 هي الحقول التي اشرنا اليها سابقا ووضعنا لها قيمة افتراضية الان زر الامر الاول اسميناه التالي ووضعنا فيه الكود If Me.tx2 = 1900 Or Me.tx3 = 2000 Then: Exit Sub Me.tx2 = Me.tx2 + 100 Me.tx3 = Me.tx3 + 100 Me.sub_frm.Form.RecordSource = [tx10] Me.sub_frm.Requery وزر الامر الثاني اسميناه السابق ووضعنا فيه الكود If Me.tx2 = 1 Or Me.tx3 = 100 Then: Exit Sub Me.tx2 = Me.tx2 - 100 Me.tx3 = Me.tx3 - 100 Me.sub_frm.Form.RecordSource = [tx10] Me.sub_frm.Requery والنتيجة يعرض لنا عند النقر على التالي 100 سجل ثم عند النقر الـ 100 التاليه وهكذا ومثله ايضا في زر الامر السابق تحديد الحد الاعلى للسجلات ممكن اخذه بطريقة اليه ولكن انا كتبته بشكل مباشر حاولت ان اكتب الاكواد بطريقة بسيطة لسهولة ايصال المعلومة ولم اضع مثال لكوني اهتم فقط بالجانب النظري تحياني
  21. هذه المشكلة تمت مناقشتها بالموقع وتوجد عشرات المواضيع تتحدث عنها ابحث عن المواضيع التالية سجل محرر تعارض الكتابة بعد تقسيم البرنامج مشكلة في الترقيم بعد تقسيم القاعدة استخدم ملف اكسس من اكثر مستخدم بنفس الوقت تحياتي
  22. الطريقة المستخدمة في LoginForm تحتاج الى مراجعة حيث يمكن ادخال اي كلمة في حقل Username بطريقة معينة يعتبرها access جملة برمجية تؤدي الى الحصول على خطا وبالتالي يمكن تعطيل عمل الاكواد والدخول بصلاحية كاملة الحل الاسهل في بداية الكود لزر الامر ok ضع On Error Resume Next وانت كنت افضل طرق اكثر احترافيه ولكن هذا موضوع اخر فالموقع به العديد من طرق معالجة الاخطاء تحياتي
  23. استكمال للرد السابق الاساتذة الفضلاء استخدموا دالة if وبجهد كبير وعمل رائع يستحق كل التقدير فقط وددت عدم تكرار الكود في حدثين والامر الاخر تكرار استخدام الدالة بينما يمكن استخدام ElseIf بدلا من اعادة الجملة الشريطية للاحتمال الثاني وفي حالتي استخدمت Select Case الان ماذا لو اردنا تنفيذ المطلوب بدون اكواد ممكن ذلك عن طريق التنسيق الشرطي نختار الحقل المطلوب اغلاقة ثم تنسيق شرطي ثم قاعدة جديدة ثم تعبير ونكتب [نوع الخطاب]="داخلي" ومثلة للحقل الاخر مع اختيار خارجي تحياتي
×
×
  • اضف...

Important Information