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

متقاعد

الخبراء
  • Posts

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

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

  • Days Won

    25

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

  1. ماشاء الله عليك استاذنا الفاضل حسام مداخلتي تتعلق بوجهة نظر ان اي قيمة يمكن ان تتغير مستقبلا مكانها الصحيح في الجدول في الجدول ويكون هناك نموذج يخدم هذا الجدو لكون المستخدم يفترض الا يدخل على الاكواد لتعديل راتب اساسي او علاوة او نسبة استقطاع ... الخ ويقتصر تعامل المستخدم مع النماذج والتقارير في جميع الاحوال هي وجهة نظر غير ملزمة تحياتي
  2. سبقتني في الرد☝️احسنت بارك الله فيك
  3. نعم ممكن الفكرة باستخدام ماكرو نسمية AutoKeys وماكرو فرعي ^p واجعل التقرير منبثق نعم ومشروط نعم مرفق مثال test.accdb
  4. جرب الان Database61(1).accdb
  5. انا افضل حلقة تمر على الحقول ثم تخبرني بالحقل الفارغ وتنقل التركيز اليه ويمكن ايضا تلوين خلفية الحقل ولكنه مجرد رأي شخصي وتوجد العديد من الامثلة بالموقع تحياتي
  6. مادام الامر لم يجد اقتراحات او افكار ماعدا مشاركة الاستاذ rockjone33 فسوف اشرح فكرتي المتواضعة اولا انا ضد مثل هذا التقيد بوضع حدث عند الخروج او وضع خاصية حقل مطلوب او استخدام قناع ادخال وهو رأي شخصي غير ملزم لاحد ثانيا في رأس محرر الاكواد للنموذج وضعنا متغيير Dim x As Byte في حدث عند الخروج للحقل pname فقط وضعنا في بدايته الشرط If x = 0 Then If IsNull(Me.PNAME) Or Me.PNAME = "" Then MsgBox "حقل الاسم مطلوب", , "!!!" Cancel = -1 Undo Exit Sub Else End If End If في خصائص النموذج تبويب حدث غيرنا مفتاح المعاينة الى نعم اخير في حدث عند مفتاح للاسفل وضعنا الامر التالي x = 1 If KeyCode = 27 Then DoCmd.GoToRecord , , acPrevious x = 0 Else End If مرفق مثال بسيط Database61.accdb
  7. هذا الامر مزعج جدا ولكن ممكن تقييده الفكرة اننا نتحايل عليه من خلال متغير بسيط في اعلى النموذج واضافة شرط قيمة المتغير في الكود الذي اشار اليه الاستاذ يوسف وتتغيير القيمة للمتغير من خلال زر Esc ليست الفكرة المثالية وان كانت تؤدي الى حل المشكلة مع ذلك ننتظر ابداعات اخواننا واساتذتنا ربما يقدمون حل افضل تحياتي
  8. الطريقة الاخرى بدون استخدام دالة dsum وبدلا منها نستخدم استعلام فرعي Expr1: (select(sum([inputN])-sum([outputN])) from [Q_Rsidreport] where [date]<=kh.[date] ;) هنا استخدمنا اسم مستعار لمصدر الاستعلام النتيجة في استعلام q_3 Prog2000.mdb
  9. ممكن باكثر من طريقة والطريقة الاسهل DSum("[inputN]-[outputN]";"Q_Rsidreport";"[date]<=" & Format([date];"\#mm\/dd\/yyyy\#")) مع ذلك لا انصح بعمل الرصيد التراكمي في الاستعاام والافضل ان يكون في التقرير تجد النتيجة في استعلام q_2 وايضا تم عمله في التقرير مجلد جديد (2).rar
  10. من الصعب تشخيص المشكلة بدون مرفق ولكن من احد اسباب عدم عمل قاعدة البيانات 2019 على الاصدارات الاقدم استخدام حقل من نوع رقم كبير الحل افتح الجدول على وضع التصميم باستخدام اوفيس 19 ثم غير نوع الحقل الى رقم ثم اعمل ضغط واصلاح لقاعدة البيانات
  11. ممكن نستدعي تنفيذ الملف عن طريق الامر التالي Dim myPath As String myPath = "d:\kkkk.bat" Call Shell(myPath, 1) ---------- "d:\kkkk.bat" مسار واسم ملف الباتش
  12. بعد اذن اخي واستاذي ابو الكرم هذا كود استعلام حذف بمعنى احذف جميع الحقول في جدول YourTbl بدلا عنه اكتب اسم الجدول الذي ترغب في حذف سجلاته RgmRtba اسم الحقل في الجدول الذي سنحددة معيار للاستعلام Me.RgmRtba اسم مربع التحرير والسرد في النموذج لاحظ ان الاستاذ وضع علامة <> اي سيتم حذف السجلات التي لا تطابق الاسم في القائمة ويمكن استبدالها الى = اذا كنت ترغب حذف ما يطابق الاسم في القائمة
  13. الشكر لله اخي مالك
  14. وعليكم السلام استخدم الامر التالي Dim stLinkCriteria As String stLinkCriteria = "[رقم السند]=" & Me![رقم السند] DoCmd.OpenForm "سند صرف", WhereCondition:=stLinkCriteria الملف مرفق 1253485438_.accdb
  15. الان الصعوبة رقم 2 تم حلها ضمن حل صعوبة رقم 3 وطالما قمنا بعمل استعلام جديد مبني على الاستعلام الجدولي بامكننا ان نختار الاجماليات ونحدد الحقول ثم نختار المجموع
  16. في الرد السابق تحدثنا عن حل الصعوبة الرابعة وقدمنا الحل لها عن طريق المعلمات والان ننتقل للصعوبة رقم 3 وهي ايضا ممكن حلها هذه ممكن عملها عن طريق حقل محسوب ولكن حتى لا نحصل على خطأ دائري نعمل استعلام جديد مصدره الاستعلام الجدولي ولان الحقول كثيرة ممكن نعمل موديل يحتوي على حلقة تكرارية تمر على حقول الاستعلام الاول ثم تجمع الحقول بعد استثناء اسم المؤسسة او الفرع Public Function sum_fld(id As String) As Double Dim rst As DAO.Recordset Dim fld As Field Dim x As Double Set rst = CurrentDb.OpenRecordset("Select * From [استعلام1] Where [NAME_REGION]= '" & [id] & "'") x = 0 For Each fld In rst.Fields If fld.Name <> "NAME_REGION" Then x = x + fld.Value End If Next sum_fld = x rst.Close End Function ونستدعي الدالة في الحقل المحسوب في الاستعلام الجديد sum_fld([NAME_REGION]) ربما ليس الكود المثالي ولكن يؤدي الغرض وانا كما اشير مجرد متقاعد والنتيجة تحياتي
  17. ولن تستطيع بالطريقة التقليدية لان هذا النوع من الاستعلام " الجدولي " يتطلب وضع معلمات تبين للاستعلام مكان ونوع حقول المعيار هذا الموضوع تم فيه مناقشة الامر بيني واخي جعفر مع وجود مثال
  18. جرب استبدل الامر Fdrnum = DLast("Drnum", "Drig") + 1 بالامر Fdrnum = Nz(DMax("Drnum", "Drig"), 0) + 1
  19. بنفس الطريقة DoCmd.RunSQL "insert into tbl_1 (tx,tx1) values (txt,txt2)" ------------- هنا اسماء الحقول بالجدول (tx,tx1) وهنا اسماء الحقول بالنموذج (txt,txt2) تفصل بينهم بـ , وممكن ايضا عن طريق مصدر السجلات Dim rs As Recordset Set rs = CurrentDb.OpenRecordset("tbl_1") rs.AddNew rs!tx = Me.txt rs!tx1 = Me.txt2 rs.Update rs.Close Set rs = Nothing ------------ اسماء الحقول في الجدول rs!tx rs!tx1 اسماء الحقول في النموذج Me.txt me.txt2
  20. نعم ممكن واسهل طريقة كما اشار استاذنا الفاضل @rockjone33 ⬇️ ويتطلب الامر اضافة خانة اختيار حيث يتم تحديد الاصناف المطلوبة ثم اضافتها وومكن ايضا استبدال نموذج الاصناف بمربع قائمة متعددة القيم تحياتي
  21. عن طريق استعلام الحاق بواسطة معالج اكسس ثم نحوله الى كود ⬇️ DoCmd.RunSQL "INSERT INTO tbl_1 ( tx )SELECT [Forms]![frm1]![txt] AS Expr1;" وممكن بدون معالج ونكتب الكود ⬇️ DoCmd.RunSQL "insert into tbl_1 (tx) values (txt)" وممكن عن طريق العمل على مصدر السجلات ⬇️ Dim rs As Recordset Set rs = CurrentDb.OpenRecordset("tbl_1") rs.AddNew rs!tx = Me.txt rs.Update rs.Close Set rs = Nothing مرفق مثال تحياتي Database41.accdb
  22. تمام الان وضحت الرؤية واسفر الصبحُ لذي عينين بالتوفيق اخي واستاذي د.محمد تحياتي وتقديري 🌹
  23. انظر للصورة المرفق وملفك بعد التعديل فاتورة.accdb
×
×
  • اضف...

Important Information