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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    406

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

  1. آسف ، الكود وضعته في الحدث الخطأ الكود الصحيح الآن على حدث بعد التحديث من اسم المادة (يعني لما تدخل مادة جديدة ، وبعد ان تخرج من حقل اسم المادة ، يعطيك الرقم): Private Sub المادة_AfterUpdate() On Error GoTo err_المادة_AfterUpdate If Me.NewRecord = True Then Me.[رقم المادة] = Nz(DMax("[رقم المادة]", "الدرجة", "[رقم الطالب]=" & Me.[رقم الطالب]), 0) + 1 End If Exit Sub err_المادة_AfterUpdate: If Err.Number = 3075 Then 'No Subject Number Exit Sub Else MsgBox Err.Number & vbCrLf & Err.Description End If End Sub جعفر 316.students.accdb.zip
  2. ما شاء الله عليك أخي رضا ، من وينك لك الوقت لكل هذه البرامج تفضل جعفر 316.students.accdb.zip
  3. تفضل يا سيدي هذا الكود الذي يقوم بالعمل ، انا عملته على النقر المزدوج (مرتين) على حقل الاسم: Private Sub name_DblClick(Cancel As Integer) Dim rst As DAO.Recordset Set rst = Me.RecordsetClone rst.MoveLast: rst.MoveFirst RC = rst.RecordCount For i = 1 To RC If rst!print = -1 Then rst.Edit rst!print = 0 rst.Update End If rst.MoveNext Next i Me.[print] = -1 End Sub جعفر 315.11.accdb.zip
  4. شوي شوي علينا أخي رضا ، بعدين بصير مثل البالونه ، انت تنفخ وتنفخ ،و انا راسي يكبر ويكبر ، وبعدين إبرة صغيرة تضربها في البالونه ، واعرف قدري الحقيقي جعفر
  5. وعليكم السلام يعني عند اختيارك اكثر من اسم ، هل تريدهم جميعا مظللين ، ام آخر اسم تم اختياره فقط؟ جعفر
  6. تفضل يا سيدي نعمل ماكرو يشتغل عند تشغيل البرنامج ، ويجب ان يكون اسمه AutoExec ، هذا الماكرو نطلب منه تشغيل الوحدة النمطية Login_Form: . الوحدة النمطية Login_Form ، تقرأ قيمة الحقل Shall_I_Open من الجدول tbl_Shall ، فاذا كانت قيمته =-1 (True) ، فانه سيفتح النموذج frm_Log-n ، وإلا فانه سيفتح النموذج frm_Home : . عند اغلاق النموذج frm_Login ، فانه يغير قيمة الحقل Shall_I_Open من الجدول tbl_Shall ، الى القيمه =0 (False) . جعفر 314.form.accdb.zip
  7. قبل ان تستطيع الضغط على الزر الذي في الشريط الاصفر ، يجب عليك ان تضغط على رز Stop all Macro السبب في ظهور هذه الرسالة ، هو تشغيلك برنامج اكسس من مجلد غير موثوق به (للأكسس 2007 فما فوق) ، فالاكسس 2010 فما فما فوق ، يمكنك القيام بما قاله الاخ كرار ، ولن تظهر لك الرسالة مرة ثانية ، بينما للأكسس 2007 ، فيجب عليك ان تذهب الى اعدادات الاكسس ، وتختار مجلد موثوق به ، وثم تشغل برامج الاكسس من ذلك المجلد ، ولن تظهر لك هذه الرسالة مرة ثانية جعفر
  8. وعليكم السلام انت تريد هذا النموذج ان يفتح مرة واحدة ، وبعدها لا يفتح؟ اعمل جدول خاص لهذا الغرض ، واجعل فيه خانة واحدة ، Shall_I_Open (مثلا)واجعلها نعم/لا ، 1. كلما اردت تشغيل هذا النموذج (عند تشغيل البرنامج مثلا) ، فيجب ان تقرأ القيمة من الجدول ، فاذا كانت = نعم ، فيسمح لك الكود بالدخول في النموذج ، واذا كانت = لا ، فلا يسمح لك بالدخول ويفتح لك نموذج آخر انت تختاره ، 2. عند حدث اغلاق النموذج ، غيّر القيمة الى لا (بواسطة استعلام تحديث مثلا) ، جعفر
  9. السلام عليكم أخي بسام بكرة ان شاء الله اعطيك مثال عن ملاحظتي في الموضوع الاخر جعفر
  10. سؤال الاخ احمد كان كلمات متقاطعة ، فحاولت احلها من الكود ولما كود ADO ما وصلني مكان ، التجأت الى DAO بس ياريت تكمل الكود ، لأني اعتقد بأن الاخ أحمد عنده اسئلة لاحقه لسؤاله الاصلي ، وكودك حيكون اول خطوة للجواب التالي جعفر
  11. تفضل أخي أحمد ، الكود بالشرح: Private Sub cmd_another_DB_Click() 'نشير الى المرجع الصحيح 'فعندنا مرجع 'ADO ومرجع DAO 'وهنا سنستخدم المرجع الاخير ، DAO Dim rst As dao.Recordset Dim db As dao.Database 'اختار قاعدة البيانات ، وفي حالتنا فهي خارجية Set db = OpenDatabase(Application.CurrentProject.Path & "\rr.mdb") 'الآن نربط الكود بقاعدة البيانات اعلاه ، بالجدول المحدد 'ونستطيع ان نعطي امر للتصفية وامر للفرز كذلك Set rst = db.OpenRecordset("Select * From emplyee") 'لكي يتم قراءة الجدول اعلاه بطريقة كاملة ، يجب ذهاب المؤشر الى آخر الجدول ثم الرجوع الى اوله rst.MoveLast: rst.MoveFirst 'عدد سجلات الجدول RC = rst.RecordCount 'إقرأ السجلات من اول سجل الى آخر سجل For i = 1 To RC 'اطبع قيمة السجلsatff_name MsgBox rst!satff_name 'انتقل الى السجل التالي rst.MoveNext 'واصل اللف حول السجلات Next i 'اغلق قاعدة لبيانات ، وازلها من الذاكرة rst.Close: Set rst = Nothing End Sub جعفر
  12. انت لما تحذف بيانات من جدول الطالب ، فتلقائيا سجلات الطالب في جدول الدرجة ينحذف. وين المشكلة؟ لوسمحت تعطيني اسماء الجداول جعفر
  13. السلام عليكم وهذه طريقة اخرى: Private Sub cmd_another_DB_Click() Dim rst As dao.Recordset Dim db As dao.Database Set db = OpenDatabase(Application.CurrentProject.Path & "\rr.mdb") Set rst = db.OpenRecordset("Select * From emplyee") rst.MoveLast: rst.MoveFirst RC = rst.RecordCount For i = 1 To RC MsgBox rst!satff_name rst.MoveNext Next i rst.Close: Set rst = Nothing End Sub جعفر
  14. شكرا لك أخي محمد أخي بسام نعم ممكن ، ولكن في الخلفية ، سيكون الحقلين يستخدمون نفس استعلام البحث!! وبالطريقة التي عملتها انا ، يمكنك ان تبحث اولا عن الكلمات التي في "موضوع الخطاب" ثم تترك مسافة ، ثم تبحث في كلمات الحقل "كلمات ارشادية" جعفر
  15. السلام عليكم ورحمة الله وبركاته قمت بالعمل لإثبات انه ممكن ، ولكن الشئ المهم ما قاله أخي أبو خليل: . لهذا ، هذه النتيجة: . وهذا الكود الذي يقوم بالعمل كاملا: 1. استعلام الحاق للجدول table1 ، 2. استعلام تحديث للجدول table2 ، 3. استعلام تحديث للجدول table3 ، Private Sub cmd_append_update_Click() Dim rstFrom As DAO.Recordset Dim rstTo As DAO.Recordset Set rstTo = CurrentDb.OpenRecordset("Select * From table4") 'table1, Append Set rstFrom = CurrentDb.OpenRecordset("Select * From table1") rstFrom.MoveLast: rstFrom.MoveFirst RC = rstFrom.RecordCount For i = 1 To RC rstTo.AddNew rstTo!a = rstFrom!a rstTo.Update rstFrom.MoveNext Next i 'table2, Update rstTo.MoveFirst Set rstFrom = CurrentDb.OpenRecordset("Select * From table2") rstFrom.MoveLast: rstFrom.MoveFirst RC = rstFrom.RecordCount For i = 1 To RC rstTo.Edit rstTo!b = rstFrom!b rstTo.Update rstFrom.MoveNext rstTo.MoveNext Next i 'table3, Update rstTo.MoveFirst Set rstFrom = CurrentDb.OpenRecordset("Select * From table3") rstFrom.MoveLast: rstFrom.MoveFirst RC = rstFrom.RecordCount For i = 1 To RC rstTo.Edit rstTo!c = rstFrom!c rstTo.Update rstFrom.MoveNext rstTo.MoveNext Next i MsgBox "Done" End Sub جعفر mo_esam_sample.zip
  16. السلام عليكم شكرا لك على هذه الملاحظة ، واللي كان لها الفضل في ايجاد حل سهل: . عليه تم اضافة 2000 الى السنوات ، وكان الله رؤوف رحيم . جعفر 310.N2.mdb.zip
  17. لا يمكن حذف البيانات من جميع الجداول باستعمال استعلام واحد ، لذا يجب عمل استعلام حذف مستقل بكل جدول ، وفي الكود تقوم بتشغيل الاستعلامات واحدة خلف الاخرى ، هكذا: لا تعرض رسالة حذف البيانات التحذيرية docmd.setwarnings false الآن نشغل جميع استعلامات الحذف docmd.openquery "qry_1" docmd.openquery "qry_2" docmd.openquery "qry_3" الآن اعرض جميع الرسائل التحذيرية docmd.setwarnings true . . انا اعطيتك الطريقة لعمل هذا الاستعلام للحقل تاريخ الميلاد ، فكل اللي عليك عمله هو تغيير الحقل الى "تاريخ تقديم المادة" مع الحفاظ على المعيار بين التاريخين. جعفر
  18. . لما قلت لي: . فهمت منها انك فهمتها وطبقتها!! وإلا ، كان بإمكانك ان تستوضح أكثر!! على العموم ، مثل ما قلت سابقا ، استعمل طريقة أخي محمود ، وياريت انك تسجل اعجابك بمشاركته . لا الفكرة جدا بسيطة ، فبدل ان تعمل alt+shift يدويا ، يقوم الكود بعمله جعفر
×
×
  • اضف...

Important Information