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

Hawiii

03 عضو مميز
  • Posts

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

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

كل منشورات العضو Hawiii

  1. لا أنصح باستخدام Last فهي لا تعني الأكبر حيث Last تعني آخر إدخال هنا يجب أن تضمن أن الإدخالات أدخلت بالترتيب الزمني 100%. عموما عملت لك حل آخر ولا يهون الأساتذة الذين سبقوني بالحل ، وهو تصميم استعلامين بدلا من استعلام واحد فهو أكثر ضمانا لصحة البيانات المطلوبة. كما صممت لك استعلام ثالث يظهر لك الإختلافات بين الأكبر والأخير وقد أظهر اختلافات لـ 105 طالب. الإستعلامات التي صممتها تبدأ بـ qry. test_Hawiii.rar
  2. لا داعي لاستخدامها بعد هذه التجربة واختبارها من الأستاد @kha9009lid ، ولكن ما المشكلة لو استخدمتها؟ ، فيه مثل محلي بس لا أريد أذكره هنا فقد يساء فهمه لمن ليس من بيئتي ، ولكن معناه أن في بعض الأمور نأتي بها ليست ذات عبئ فإن أتينا بها فنتيجتها : إن ما نفعت فهي لا تضر 🙂 ، توكل على الله ولا تحير نفسك ، وأنصحك إما تستخدمها أو لا تستخدمها 🙂
  3. نعم صحيح أعتذر ، ربما هذه الدالة لأنها لا تتعامل مع بيانات وإنما تعد سجلات. ومع ذلك عني فأنا احترازا استخدمها حيث إضافتها لن تشكل عبئا على مساحة البرنامج. لم أجرب بس كلامك منطقيا صحيح.
  4. لا يا أخي ، هناك اجراءات احترازية لا بد منها وكثيرا لا تكون اختباراتنا بالشكل الكافي فنقع في الخطأ مثلما عملته أنت. من ضمن الإختبارات التي يغفلها أكثرنا هو اختبار عمل البرنامج بدون بيانات ، وعندها ستعرف أن هذا الإضافة مهمة جدا.
  5. بعد الإعتذار لكل من ساهم في الحلول فلم أطلع عليها. في مايكروسوفت أكسس Form تسميه نموذج Report تسميه تقرير فأنت تريد تقريرا وليس نموذجا. رفعت لك التقرير حسب المطلوب ومصدره استعلام. فقط مثالي لتعرف كيفية تصميم الحقل فانظر لخائصه وانظر لمصدر الحقل في الاستعلام. خذ الفكرة وطبقها على تقاريرك حسب الرغبة. الرصيد التراكمي.rar
  6. ربما ينفعك هذا الموضوع: نموذج التقويم ( النتيجة )
  7. الله يبارك في الجميع حل اضافة السجلات بدون تكرار لجدول آخر ممكن عملها باستعلام واحد فقط. لكن كان ودي أشارككم بحل بالكود أقوم فيه فقط بتحديد المكرر وأراه بنظري أنسب من عمل جدول آخر ولكن لم أرى أي إشارة بقبول المشاركة. نشارككم في مواضيع أخرى إن شاء الله.
  8. لو تزودوني بنسخة 2007 حتى أقدر أشارككم بفكرة ثالثة تختمر في رأسي.
  9. في نفس المكان أخي ، خاصية القيمة الإفتراضية Default Value موفقين
  10. أعتقد أن صاحب هذا الموضوع أول من كتب كود الشجرة في مواقع الأكسس العربية على الإطلاق. ليت كل من ينقل عنهم ولو جزئيا ذكر المصدر وإن كان يجهله فليذكر اسم المنتدى وإن لم يتذكره فليوضح أقلها أن (الأصل) ليس من جهده. مثال لعرض الشجرة - قسم الأكسيس Access - أوفيسنا (officena.net) تقبل الله صيامكم وقيامكم
  11. ويمكنك أيضا استخدام دالة التاريخ: = DateSerial(2020,1,1) وهي (عندي) أفضل من كتابتها بين علامتي الرقم وخصوصا لتجنب الخلط بين اليوم والشهر. كذلك تحتاج أن تجعل نوع الحقل تاريخ فربما النوع عندك نص.
  12. الحقيقة لم أجد أي مرجع يذكر موضوع هذا العدد وأنا أضفت حقول أكثر من عشرة للتجربة ولم أجد أي رسالة خطأ في الكود.
  13. المثال نفسه جمعت فيه ثلاث الطرق السابقة وأضفت عليه رابعة بعد الإستفادة من الطريقة الثالثة طريقة الأستاذ خالد يعني المثال فيه أربع طرق الآن Private Sub Product_NO_AfterUpdate() 'Hawiii Dim rst As DAO.Recordset Dim flds As Variant Dim fldsArray Dim fld As Field Dim count As Integer On Error Resume Next '------------------------------------- Const tableName As String = "Products" Const fldsKey As String = "Product_NO" '------------------------------------- Set rst = CurrentDb.OpenRecordset(tableName, dbOpenSnapshot) With rst For Each fld In .Fields If fld.Name <> fldsKey Then count = count + 1 flds = flds & IIf(count > 1, "] & '|' & [", "[") & fld.Name 'If count = 10 Then Exit For End If Next fld flds = flds & "]" '-------------------------- flds = DLookup(flds, tableName, fldsKey & "=" & Me(fldsKey)) If IsNull(flds) Then GoTo fldsClear fldsArray = Split(flds, "|") '-------------------------- count = -1 For Each fld In .Fields If fld.Name <> fldsKey Then count = count + 1 Me(fld.Name) = fldsArray(count) Me(fld.Name).Picture = "" Me(fld.Name).Picture = CurrentProject.Path & "\Images\" & fldsArray(count) 'If count = UBound(fldsArray) Then Exit For End If Next fld End With rst.Close Exit Sub '-------------------------- fldsClear: For Each fld In rst.Fields If fld.Name <> fldsKey Then Me(fld.Name) = Null Me(fld.Name).Picture = "" End If Next fld rst.Close MsgBox "منتج غير مسجل", vbCritical + vbMsgBoxRight, "تنبيه" End Sub استدعاء بيانات المنتج_3.rar
  14. شكرا لك أخ خالد ، أكيد شرحك مو لي 😃 ملخص الفكرة للمبتدئين : هو تجميع لعدة قيم حقول في متغير نصي واحد وهو هنا باسم (A) عن طريق البحث بدالة DLookup ثم نجري عملية عكسية بتفكيك قيمة المتغير النصي إلى عدة قيم وتخزينها في مصفوفة وهي هنا باسم (x) عن طريق دالة Split
  15. جميل الأخ خالد ، معلومة جديدة لي ، ولأول مرة أتعرف على هذه الطريقة في استخدام دالة DLookup ، لعلها مستجدة في الإصدارات الجديدة. ليتك استخدمت نفس أسماء الحقول لتكون المقارنة أسهل وأكثر فائدة للمبتدئين.
  16. ولاني نسيت أزيل .Fields حيث لا داعي لها هنا ، هنا أرفق لكم التعديل: Private Sub Product_NO_AfterUpdate() Dim rst As DAO.Recordset On Error Resume Next Set rst = CurrentDb.OpenRecordset("Products", dbOpenSnapshot) With rst .FindFirst "Product_NO=" & Me.Product_NO If Not .NoMatch Then Me.Product_Name = !Product_Name Me.Product_price = !Product_price Me.Product_Image.Picture = "" Me.Product_Image.Picture = CurrentProject.Path & "\Images\" & !Product_Image Else Me.Product_Name = Null Me.Product_price = Null Me.Product_Image.Picture = "" MsgBox "منتج غير مسجل", vbCritical + vbMsgBoxRight, "تنبيه" End If End With rst.Close 'Set rst = Nothing End Sub
  17. شكرا للدكتور على المثال وزيادة في الإثراء ، هذه طريقتي في الوصول للبيانات Private Sub Product_NO_AfterUpdate() Dim rst As DAO.Recordset On Error Resume Next Set rst = CurrentDb.OpenRecordset("Products", dbOpenSnapshot) With rst .FindFirst "Product_NO=" & Me.Product_NO If Not .NoMatch Then Me.Product_Name = .Fields("Product_Name") Me.Product_price = .Fields("Product_price") Me.Product_Image.Picture = "" Me.Product_Image.Picture = CurrentProject.Path & "\Images\" & .Fields("Product_Image") Else Me.Product_Name = Null Me.Product_price = Null Me.Product_Image.Picture = "" MsgBox "منتج غير مسجل", vbCritical + vbMsgBoxRight, "تنبيه" End If End With rst.Close 'Set rst = Nothing End Sub
  18. تقبل الله منكم صالح الأعمال.
  19. الحل في الإستعلام PreviousDate.rar
  20. شكرا لكم جميعا كل ماكتبه الأستاذ محمد طاهر جميل ماعدا الإقتباس أعلاه وذلك لأن ليس كل المواضيع عبارة عن اسئلة وتحتاج إلى إجابة ، وقد اقترحنا (أنا وغيري) أن من يسأل في موضوع قديم يتم حذف سؤاله ويرشد إلى فتح موضوع جديد ويشير فيه إلى الموضوع القديم ، ويبقى الموضوع القديم مفتوحا. أعتذر ولكن ردي كان بعد استفزاز شديد وربما لو كنت أشارك أيام شبابي لكن الرد أكثر عنفا وقسوة 🙂 كأنك تتحدث بلساني ولكن عباراتك أبلغ وأوضح فشكرا لك.
  21. @sandanet خذوهم بالصوت لا يغلبوكم ، يا أخي موضوعي اقتراحا وليس أمرا ، وأنا وضعت اسم الأستاذ محمد طاهر في المشاركة الأولى رغبة مني في سماع رأيه ، فهل يمكنك التمهل حتى يتفضل بإبداء رأيه ، أتمنى أن لا تكون من المشرفين حتى لا تستخدم قمعك معي ومع غيري.
  22. شكرا للجميع موضوع أكسس قديم لن ترى فيه فرقا يستحق ذكره لو برمج حديثا ، دعونا من المبالغات والتبريرات الجدلية وخصوصا للذي يصر على نقل الموضوع للعام!!. لا تقيسوا مشاركات منتدى برمجي بموضوعات خبرية كموضوعات الصحف الإلكترونية مثل خبر حريق في برج ما أو حادث قطار أو اعصار في البلد الفلاني ثم بعد فترة يصبح قديما ويتطلب افقاله. لا لإقفال موضوعات الأساتذة القدماء
  23. هذا الموضوع يخص قسم الأكسس .. فأرجو من المشرفين عدم نقله للعام كما فعلوا مع أحد مواضيعي سابقا. @محمد طاهر اقفال مواضيع الأساتذة وليس الجميع وبالخصوص للمواضيع التي كان لها أسبقية وتأسيسية في تواجدها على المنتديات بجهود أصحابها والذين أكثرهم غائبين عن المنتدى الآن ، اقفالها فيه من الجحود الشيء الكبير وفيه طمس لجهودهم. أنا أحتج على هذا الإجراء وإن كان من ضمن قوانين المنتدى (الوضعية) فهي قوانين اجتهادية قابلة للتعديل ، فأرجو التراجع عن اقفال المواضيع القديمة. ملاحظتي أن أكثر المواضيع أقفلت بسبب سؤال عضو جديد ، فلينبه ، ولينصح بفتح موضوعا جديدا يشير فيه إلى الموضوع القديم ، ويمكن حذف المشاركة وترك الموضوع مفتوحا لمن يرى أن هذا الجهد يرقى إلى الشكر والتقدير والثناء ، أو يبدي بملاحظة جوهرية فاتت على الكاتب أو المشاركين في الحوار فيه. بعض المشاركات الجديدة تستحق حذفها والتأكيد على كاتبها بعدم التكرار وخصوصا التي يشارك فيها لتسويق برمجته لمثال مشابه أو وضع مقارنة يرمي فيه التقليل من قيمة العمل السابق. وأتمنى من الجميع قبل بدء مناقشة موضوع جديد لمشكلة قديمة قدمت فيها حلول مثالية/نموذجية بالبحث عن تلك الحلول والإشارة إليها ، فيفترض أن تكون البداية دائما مما انتهي إليه السابقين. والله الموفق.
  24. أجر وعافية ، الله يمن عليك والعائلة الكريمة بالصحة والعافية.
  25. @biskra @kha9009lid !ذن هنا وحسب رأيكما يتساوى الإثنان في التصنيف وينضمان في شريحة واحدة. مع أني لا زلت أرجح الأفضلية للذي يأتي مبكرا ، ولها ميزات كثيرة (لمن يفكر بعقلية المسئول) وعلى كل لكل من الإثنين فرصتين فمن يأتي على الوقت دائما فله فرصة أن يأتي على الدوام أو يأتي متأخرا ، أما من يأتي باكرا فله فرصة أن يأني باكرا أو يأتي مع الوقت تماما وسيكون سجله خاليا من أي تأخير. كما من يأتي باكرا هذا بكل تأكيد أكثر حرصا واهتماما في عمله فهو ممن يحتاط للعوامل الطارئة والمفاجآت غير السارة والتي تتسبب في تأخيره وهناك فوائد أخرى في غير مسألة الحصور لا داعي لسرها الآن.
×
×
  • اضف...

Important Information