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

متقاعد

الخبراء
  • Posts

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

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

  • Days Won

    25

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

  1. بالتوفيق استاذ يوسف واحسنت اختيار الاجابة الافضل اذا كان هناك اكثر من حل فان الحل الاسهل هو الافضل "novacula Occami"
  2. ههههه نفس الفكرة بس انا استخدمت متغير عام من نوع بايت بدلا من كتابة اسماء النماذج وياخذ قيمته بعد تحديث حقل اليوزر
  3. جرب المرفق بصراحة وضع النموذج بدون اطار و تكبيره عقدني وخصوصا ان جهازي بدون لوحة مفاتيح APE_2023_Stock.accdb
  4. يعمل ياعم احمد انا جربته بشكل سريع على نفس الاجهزة في مشاركتي السابقة ولم يعمل على جهاز بنظام ويندوز 2003 ستاندر اديشن ولم اجرب مثال اخي جعفر على هذا الجهاز واكتفيت بماتم الاشارة اليه تحياتي
  5. الف مبروك استاذ ومزيد من التقدم
  6. ويندوز 11 64 اوفيس 2016 32 ✔️ ويندوز 11 64 اوفيس 2021 64 ✔️ ويندوز 10 64 اوفيس 2019 64 ✔️
  7. الحقيقة لا اعلم هل تحقق المطلوب ام لم يتحقق الفكره في الكود انه يعدل عدد ايام الغياب وفقا لما اشرتم اليه في المشاركة الاولى اما اذا كان المقصود ان يتم التعديل فقط لمن لديه 4 او 5 ايام غياب فاكثر فيمكن تعديله باضافة شرط الحد المانع للتعديل من خلال وضع العدد مباشرة في الكود او من خلال مربع نص وهو الافضل من وجهة نظري حيث يمكن تعديل الحد المانع لحذف الايام او وضع 0 ليكون التعديل لكل الطالبات الملف مرفق test5(1).accdb
  8. جربي المرفق مع ان رأي استاذنا هو الافضل ايضاح لم اجرب الكود وكتبته بشكل سريع لا نشغالي test5.accdb
  9. اعتقد ان السبب في الترميز المستخدم في موقع الانترنت او في مصدر البيانات قبل رفعها الرموز وهذا بناء على ما اذكر من رقم 0 الى 127 ثم الحقت رموز اضافية من 128 الى 255 الويندوز عندما يجد رمز لحرف غير موجود في اللغة المستخدمة يضع رمز بديل واحيانا يكون الرمز مركب ɿ في UTF-8 وباقي تفريعاته ----------- نفس الرمز في ANSI ة؟ ويمكن ملاحظة ذلك عندما نقوم باعداد خط لاستخدامه لاي غرض ثم بعد فتره نجد ان هناك رموز بدلا من بعض الاحرف والسبب اننا اغفلنا عند صناعة ملف الخط اضافة حرف او همزة او علامة استفهام او تعجب ... الخ تحياتي
  10. الحقيقة ان اهتمامي كان مُنصب على معرفة سبب المشكله لماذا كُتبت القيمة بهذا الشكل 15 حرف بينما المنطقي ان تكون 10 احرف واعتقد والله اعلم ان بيانات الجدول ليست مدخله في الاكسس وانما تم استيرادها من ملف وربما ملف نصي وان الامر له علاقة بترميز مختلف اما بالنسبة للحل الحقيقة اني شخصت المشكلة وليس اساسها ربما لو لم يقف الموضوع عند هذا الحد فما قمت بتقديمه انت وانا وقدمه الاستاذ جعفر هو معالجة لاعراض المشكلة اما الحل النهائي فيكون بمعرفة سبب ظهور البيانات بهذا الشكل ومعالجة السبب وليس النتيجة ولكن بما ان الاستاذ لطفي وجد مبتغاه فاكتفي بذلك واتوقف هنا واتمثل بقول الاعرابي فألقت عصاها واستقرّ بها النّوى .. كما قرّ عينًا بالإيّابِ المسافر تحياتي لك استاذ لطفي وللاساتذة جعفر وابوخليل .
  11. وهنا بدون الحاجة الى كود تصحيح بيانات التاريخ testdate1(1)(1).mdb
  12. وفقا لما اشرت في ردي السابق اني عملت كود يدور على سجلات الجدول ويعيد ادخال التاريخ المسجل وبالتالي يمكن التحديث لكن هذا غير مقنع بالنسبة لي ولابد من البحث عن السبب النص المدخل في حقل تاريخ شهادة التسجيل على النحو التالي ⬇️ ‏23‏/‏01‏/‏2023 تجد انه يتكون من 15 حرف انظر للصورة 23/01/2023 بينما العدد المفروض يكون 10 احرف لذا ممكن الحل اما باستخدام كود يقوم الرمز الموجود بين الارقام او بعمل دالة لاستخدامها في الاستعلام الكود الذي عملته Dim i As Integer Dim rst As DAO.Recordset Set rst = CurrentDb.OpenRecordset("0125") rst.MoveFirst For i = 1 To rst.RecordCount rst.Edit rst!x_date = Replace(rst!x_date, "þ", "") rst.Update rst.MoveNext Next i rst.Close في المرفق نفذ استعلام سوف يفشل الاستعلام في التحديث افتح نموذج 1 نفذ الامر سيقوم بتصحيح صيغة التاريخ وسوف يتم تنفيذ الاستعلام كما اشرت ممكن الاستغناء عن الكود عن طريق دالة في الاستعلام ولكني اكتفي هنا تحياتي testdate1(1).mdb
  13. جرب المرفق DT1.accdb
  14. اخيرا قمت بعمل كود تحديث للحقل تاريخ التسجيل في جدول 0125 بعد اسناد قيمة الحقل لمتغير ياخذ قيمته من حقل تاريخ التسجيل بعد تنفيذ الامر نفذت الاستعلام وتم الحاق كافة البيانات اتوقف هنا ونترك الامر للاساتذه
  15. اذا اعدنا ادخال التاريخ سوف يعمل بدون استخدام دوال وبدون اجراء اي تعديلات على الملف الاصلي مع اتفاقي مع استاذي الفاضل بضرور تعديل المسميات جربت على الملف الاصلي للاستاذ لطفي اعادة ادخال التاريخ لسجلين فقط ونفذت الاستعلام وتم الحاق السجلين وفشل ادخال باقي السجلات الخمسة عشر الامر يحتاج الى مزيد من المراجعة ولكن ليس لدي الوقت
  16. اتفق معك ان هناك حالات نكون مجبرين على اختيار محدد ولكن البعض يعتقد ان On Error Resume Next حل لكل رسالة خطا فتجد ان البعض يستخدمه دون معرف سبب الخطا ودون ان يكلف نفسه عناء البحث عن السبب
  17. اعتقد ان هذا الخطأ يكون في حالة عدم وجود بيانات وليس بسبب عدم وجود ما يوافق نتيجة البحث لكون اسلوب عمل الامر FindRecord لايعود برسالة في حالة وجود او عدم وجود قيمة في السجلات تطابق ماتم البحث عنه وتظهر عادة في عدم وجود بيانات في الجدول مصدر النموذج في حالة اننا غيرنا في خصائص النموذج الى ادخال بيانات : نعم في حالة مصدر البيانات استعلام بمعيار غير متوفر في حالة تنفيذ الامر بعد تنفيذ الفلترة في حالة عدم توفر بيانات توافق معيار الفلتر ونفذنا الامر FindRecord قبل ان نلغي الفلترة في حالة فتح النموذج في وضع اضافة بيانات ⬇️ DoCmd.OpenForm "form_name", , , , acFormAdd ربما تكون هذه ابرز حالات ظهور الخطا رقم 2137 مع الامر FindRecord والله اعلم مع تأييدي لرأي الاساتذه جعفر ومحمد تحياتي
  18. مشاركة مع اخي واستاذي كنوري ممكن استخدام دالة dsum مره واحد حيث انها تقبل اجراء عمليات حسابيه اثناء تنفيذها وبالتالي بدلا من كتابتها ⬇️ كما اشار استاذنا الفاضل DSum("[daen]";"tb_movements";"[id_id]<=" & [id_id])-DSum("[maden]";"tb_movements";"[id_id]<=" & [id_id]) ممكن ان تكتب هكذا ⬇️ لكون حقلي المدين والدائن في نفس الجدول وايضا ممكن اضافة شرط العميل DSum("[daen]-[maden]";"tb_movements";"[id_id]<=" & [id_id] & " and [vendor_id]='" & [vendor_id] & "'") وايضا ممكن عدم استخدام الدالة dsum وعمل المطلوب باستخدام استعلام فرعي ⬇️ في هذه الطريقة عملنا اسم مستعار للجدول (select(sum([daen])-sum([maden])) from [tb_movements] where [id_id]<= k.id_id and [vendor_id] =k.vendor_id) من تجربتي جميعها تعطي نتيجة صحيحة وفقا للصورة المرفقة الحقل dd طريقة استاذنا كنوري باستخدام الدالة مرتين الحقل bb باستخدام استعلام فرعي الحقل aa باستخدام الدالة مرة واحدة في جميع الاحوال لا اعلم اي الطرق افضل لكوني افضل ان يكون الرصيد التراكمي في التقرير والله اعلم تحياتي
  19. مواضيعك دائما تحفز على التفكير والبحث بين ثنايا العبارات مثلا في المرفق الاول لك وضعت حقلين كمبو بوكس وواحد ليست بوكس ووضع اخي واستاذي ابو خليل حل باستخدام اسماء الحقول ثم اشرتم الى ⬇️ هنا اقترحت فكرة الدوران على مربعات التحرير والسرد لاختصار الكود ودون الحاجة الى كتابة اسماء هذه الحقول وصححه اخي ابو خليل وفقا لفهمه الصحيح للمطلوب الان السؤال ماذا لو كان هناك كائنات اخرى مثل حقول نصية وخانات اختيار .... الخ ونرغب في اقفالها بحيث يبقى الاختيار فقط لليست بوكس كما اشرتم سنجد اننا نحتاج الى تغيير في الامر If ctl.ControlType = 111 Then الى If ctl.Tag = "*" Then اي اننا سنستخدم خاصية tag للكائنات المطلوب اقفالها ربما يقول قائل نستثني ليست بوكس ويكون الامر بالنفي If ctl.ControlType <> 110 Then هنا سوف نحصل على رسالة خطأ بسبب كون خاصية Locked لا يمكن تطبيقها على كل كائنات النموذج لذا ووفقا للمعطيات فأن استخدام التاج هو الاسلم في مثل هذه الحالة والله اعلم ربما هناك طرق وافكار افضل ولكن اتوقف هنا ولعل لنا مداخله في مواضيع قادمة تحياتي
  20. الملف لمن يرغب معرفة الطريقة وان كان حل استاذنا ابو خليل باستخدام متغير عام اكثر احترافية تفعيل خانة اختيار.accdb
  21. هل هذا المطلوب Data_Base.mdb
  22. ههههههه قالت العرب : عش رجبا ترى عجبا
  23. احسنت استاذنا الفاضل لم انتبه الى هذه الجزئية من رغبة الدكنور محمد ⬇️ فكرة اخرى باستخدام البارمتر السادس في امر فتح "OpenArgs" الفكرة تحميل القيمة 0 او 1 في امر فتح النموذج بناء على خانة الاختيار
×
×
  • اضف...

Important Information