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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    404

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

  1. السلام عليكم ما قاله اخي كاسر صحيح ، مع تعديل بسيط . العلاقة بين الجدولين معناها ، اظهر الارقام الموجوده في الجدولين (نفس الارقام) . لتغيير العلاقة في الاستعلام ، انقر مرتين على الخط بالفأرة اليسار) او : 1. انقر على الخط بالفأرة اليمين ، 2. اختر اعدادات الربط . اختر : جميع السجلات الموجودة في الجدول "كفالة فقير" ، اللي هو رقم 2 . نشوف الآن ان الخط العلاقات تغير . والنتيجة: . جعفر 933.30.accdb.zip
  2. حياك الله اذا نظرت في مشاركة ام ناصر الثانية ، انظر في الكود ، فسترى انها وضعت هذه الارقام ، فأعتقدت بأنها تسأل عنها ، فأجبتها جعفر
  3. وعليكم السلام انزلت مرفق اخي kanory مما شجعني على الرد ، بنفس طريقته تقريبا ، ولكن بكود مختلف ومختزل Private Sub cmd_Go_Click() Dim rst As DAO.Recordset Dim rst2 As DAO.Recordset Dim db As DAO.Database Dim RC As Integer Dim i As Integer Dim j As Integer Dim x() As String Set db = CurrentDb db.Execute ("Delete * From tbl_temp") Set rst2 = db.OpenRecordset("Select * From tbl_temp") Set rst = db.OpenRecordset("Select * From Table1 Where [mawad] is not null") rst.MoveLast: rst.MoveFirst RC = rst.RecordCount For i = 1 To RC x = Split(rst!mawad, "/") For j = LBound(x) To UBound(x) rst2.AddNew rst2!mawad = x(j) rst2.Update Next j rst.MoveNext Next i rst.Close: Set rst = Nothing rst2.Close: Set rst2 = Nothing db.Close DoCmd.OpenQuery "qry_Statistics" End Sub جعفر 932.count_.mdb.zip
  4. والآن اجيب على اسئلتك: 1. هناك نوعين من Recordset ، نوع يخص DAO وآخر يخص ADO ، ومع تشابههما ، إلا ان هناك الكثير من الاوامر التي تختلف بينهم ، فإذا لم نخصص نوع الـ Recordset ، فالاكسس يستعمل مكتبة الاولى في القائمة ، مثلا ، في الصور التالية ، مكتبة ADO قبل مكتبة DAO ، فعند كتابة Recordset فقط ، فالاكسس يعتبرها تابعه لـ ADO: في الاكسس 2003 . وفي الاكسس 2010 فما فوق تم دمج مكتبة DAO في MS Office 14 Access Database engine object . 2. هذا امر OpenRecordset ، فيه عدة اختيارات ، والمبرمج اختار هذه لأسبابه ، ويمكنك الاستغناء عن الجزئين الاخيرين منها ، حيث هذا يكفي: (Set rst = db.OpenRecordset(strSQL . 3. المؤشر في سجلات Recordset يكون كما في القائمة التالية: BOF Record1 Record2 .. .. EOF حيث BOF = Begining Of File EOF = End Of File فإذا كنا على BOF او EOF فلا يوجد هناك سجلات ، فالسطر معناه ، اننا مادمنا لسنا قبل بداية ولا بعد نهاية الـ Recordset ، فقم بالخطوة التالية ، 4. انتقل الى اول سجل تصادفه (رجاء متابعة النقطة التالية) ، 5. اذا اردنا ان نجعل الـ Recordset بالكامل في ذاكرة الكمبيوتر ، فعلينا ان نأخذ المؤشر الى آخر سجل ، ثم عندما نأخذ المؤشر الى اول سجل ، فيعرف البرنامج عدد سجلات هذا الـ Recordset ، بينما في الرقم#4 اعلاه ، فنحن طلبنا منه البدء من اول سطر وبدون معرفة عدد السجلات ، والنقطتين معناها سطر جديد في الكود ، يعني: بدل كتابة For i = 1 To RC childrst.Delete childrst.MoveNext Next i يمكننا كتابة For i = 1 To RC: childrst.Delete : childrst.MoveNext : Next i . ولكننا اذا عملنا هذا الشيء لكل الكود ، فلن نعرف كيف نتصيد الخطأ ، ولا نستطيع استعمال Goto ، فنحن نستعمله في نطاق نعمل انه لن تكون لدينا اخطاء فيه جعفر
  5. انظر الى الحقل في الجدول الآن ، ستجد ان المرفقات لاتزال موجودة ، ولكن الاكسس لا يستطيع فتحها!! تفضلي اختي : 1. لكي تحذفي مرفقات السجل الذي انتي عليه فقط ، 2. واذا كان السجل يحتوي على اكثر من مرفق ، واردتي حذف مرفق معين من هذا السجل ، فيمكنك استعمال هذا السطر ، جعفر
  6. هلا والله اخوي عبد الفتاح فكرة حلوة ، بس شوف الحقل في الجدول بعد الحذف ، وحاول تفتح المرفق من هناك!! هذا الحقل ليس كحقل آخر عادي ، فيجب التعامل معه بطريقة اخرى جعفر
  7. السلام عليكم اخي عبد الفتاح كلامك يكون صحيح ، اذا لم تكن هذه الفقرة في الموضوع: جعفر
  8. وعليكم السلام السبب الوحيد اللي يجي في بالي ، هو ان هناك كود في التقرير يعمل/عمل على تجميع الحقول هكذا ، وقمتي بحفظ التقرير ، فظل التصميم بهذه الطريقة!! ويمكنك ارفاق هذه الجزئية من برنامجك للنظر فيها. جعفر
  9. قمت بتعديل مشاركتي السابقة ، فبدل "فحفظ الصور" اصبح "فحفظ المرفقات سواء الصور/pdf" وهذه بعض المشاركات السابقة لي عن موضوع المرفقات ، ورجاء قراته بالكامل : . وطرق الاستغناء عنها بمجلد في الوندوز . جعفر
  10. السلام عليكم اخي وقبل ان تواصل العمل في برنامجك ، فحفظ اي انواع من المرفقات سواء الصور/pdf في البرنامج يُعتبر خطأ كبير وفادح ، وضرره اكثر بكثير من فوائده!! احفظ المرفقات في مجلدات داخل الوندوز ، وبالكود تقدر اظهارها في النماذج ، او ارفاقها بالايميل. جعفر
  11. وعليكم السلام وهذا مؤشر معمول في البيت ، يعني تقدر تغير فيه مثل ما تريد جعفر
  12. وعليكم السلام ضعي هذا الكود على زر: Dim strSQL As String Dim rst As DAO.Recordset Dim childrst As DAO.Recordset Dim db As DAO.Database Dim RC As Integer Dim i As Integer 'from https://stackoverflow.com/a/42239279 strSQL = "SELECT * FROM Table1 WHERE Not (Table1.image.FileData) Is Null;" Set db = CurrentDb Set rst = db.OpenRecordset(strSQL, dbOpenDynaset, dbSeeChanges) If Not rst.BOF And Not rst.EOF Then rst.MoveFirst End If Do Until rst.EOF Set childrst = rst.Fields("image").Value childrst.MoveLast: childrst.MoveFirst RC = childrst.RecordCount For i = 1 To RC 'Debug.Print rst!ID & " > " & childrst.Fields("FileName") 'If childrst.Fields("FileName") = "11.jpg" Then childrst.Delete 'End If childrst.MoveNext Next i rst.MoveNext Loop . جعفر
  13. وعليكم السلام اخي حمدي مع اني اقرأ جميع اسئلتك ، ولكن لسبب ما ، لا اعرف الاجابة عليها السبب في حصولك على الخطأ هو عدم وجود قيمة للمتغير xMada (لاحظ ان نتيجتها False) ، فالاستعلام لا يحتوي على الحقل المطلوب ، فيظهر لك الخطأ: . وبعد عمل هذه التعديلات ، اتضح ان هناك اخطاء كثيرة في السطر: CurrentDb.Execute "UPDATE Ashgal SET " & xMada & "= '" & rstTeacher!المادة & " xFasl & " = " & rstTeacher!الفصل & " ' WHERE ((([اليوم])=" & randOFDays & "));" وعلشان اعرفها ، اضطررت ان افكك هذا السطر هكذا mySQL = "UPDATE Ashgal SET " & xMada mySQL = mySQL & " = '" & rstTeacher!المادة & "'" mySQL = mySQL & " ,Fasl" & nNumber & " = '" & rstTeacher!الفصل & "'" mySQL = mySQL & " WHERE [اليوم]=" & randOFDays Debug.Print mySQL CurrentDb.Execute (mySQL) 'DoCmd.RunSQL (mySQL) . وهذا السطر كان المعاون الاساسي لمعرفة المتغيرات Debug.Print mySQL انا لا ادري اذا كانت النتائج صحيحة ، ولكني اعرف بأن الاخطاء توقفت ، وانتهى الكود من العمل جعفر 930.‫‫تعديل.accdb.zip
  14. عملت بحث في المنتدى ، وهذا اول رابط وجدته جعفر
  15. وعليكم السلام آخر مرة اشتغلت على كود الاوتلوك كان قبل حوالي 10 سنوات ، ومنذ ذلك الوقت لم اشتغل على الاوتلوك!! في مجموعة طرق تسمح لك ترسل ايميل من الاكسس ، وهنا احد الطرق: https://www.devhut.net/2010/09/03/vba-outlook-automation/ ولكن ، الظاهر يجب ان تحفظ المرفقات في مجلد خارجي ، ومنها ترفقها للاوتلوك. آسف اني ما اقدر اساعد اكثر من هذا جعفر
  16. وعليكم السلام اخي محمد حقل الترقيم التلقائي هو للبرنامج ، وفهرسة السجلات ، وتوليد ارقام فريدة للسجلات ، ولكنه ليس للمبرمج. المبرمج يجب ان يعمل له الحقول التي يحتاج لها لبرمجته ، ولا مانع من الاستفادة من حقل الرقم التلقائي ، لذلك ، ليس مهما اي رقم هو رقمك التلقائي ، ومن اهميته ، فلا يسمح لك الاكسس تغييره ، واذا فقدت رقم تسلسل واستعملت الرقم الذي بعده ، فلا يمكنك استرجاع اي من الارقام المفقودة والتي وسط الارقام الاخرى ، مثلا ارقامك 1،3،4،6 ، فلا يمكنك استرجاع الارقام 2،5 ، اما اذا (خلينا نتابع المثال المرفق) ، الرقم الجديد الذي نحصل عليه هو 31 ، . 1. آخر رقم تم استعماله هو 23 ، بينما فقدنا جميع الارقام بعد الـ 23 ، فإذا اردنا البرنامج ان يبدأ الرقم التالي بالرقم 24 ، فعلينا عمل ضغط واصلاح لقاعدة البيانات ، 2. بينما اذا اردنا ان نبدأ الرقم التلقائي برقم غير 24 ، بالرقم 25 مثلا ، فنستطيع ان نستعمل الكود التالي: . والكود الذي يقوم بذلك هو: Private Sub cmd_Do_Click() If Len(Me.int_Start_2 & "") = 0 Then MsgBox "What is the initial number?" Me.int_Start_2.SetFocus Exit Sub End If biggest_Number = Nz(DMax("[Auto_ID]", "Data"), 0) If Me.int_Start_2 - 1 <= biggest_Number Then MsgBox "the biggest_Number in the table is :" & biggest_Number & vbCrLf & _ "Your initial number SHOULD be bigger than this number" Me.int_Start_2.SetFocus Exit Sub End If 'from http://www.fmsinc.com/microsoftaccess/AutoNumber%20Field/Creating.asp 'add the initial number mySQL = "INSERT INTO Data ( auto_ID )" mySQL = mySQL & " SELECT " & Me.int_Start_2 - 1 & " AS Expr1;" CurrentDb.Execute (mySQL) 'Delete the dummy number mySQL = "DELETE * FROM Data WHERE auto_ID=" & Me.int_Start_2 - 1 CurrentDb.Execute (mySQL) MsgBox "Now the NExt Auto_ID will be " & Me.int_Start_2 End Sub . ونحصل على النتيجة التالي: . جعفر 927.2.Access4.accdb.zip
  17. وعليكم السلام تفضل: 1. يجب تغيير نوع الحقل من نص الى مربع تحرير ComboBox ، 2. بما ان البيانات المطلوبة من الجدول tblFotrType ، ونريد بيانات حقلين ، حيث الرقم هو الحقل الاول (ولا نريد ان نراه ، فنجعل حجمه صفر) ، والحقل الثاني هو المطلوب رؤيته (واعطيناه حجم) ، . ويكون ارتباط الحقل الاول بالجدول . والنتيجة . جعفر 928.تنسيق.accdb.zip
  18. وعليكم السلام اخي ابو عمر تقريبا يمكننا عمل اي شيء بالاكسس ، ولكن ارجو ان تقتح موضوع جديد بهذه الخصوصية ، وترفق لنا مثال مفصل ومرفق بوضح المطلوب جعفر
  19. وعليكم السلام بدل هذا السطر Set rst = CurrentDb.OpenRecordset("Select * From Data") استعمل Set rst = CurrentDb.OpenRecordset("Select * From Data Order By [Name]") . جعفر
  20. وعليكم السلام اخي مصطفى واهلا وسهلا بك في المنتدى الرابط التالي سيفيدك جعفر
  21. الله يخليك ، اجلس واقرأ ، اخاف لا تطيح لما تعرف شو اللي عملته حذفت الحقل التالي: جعفر
  22. تفضل ، جرب هذا المرفق جعفر 918.5.‏‏‏‏برنامج المخــــــــــزون - - نسخة.mdb.zip
  23. الله يطول عمرك اخوي ابو زاهر انا كنت اريد برنامجك اللي فيه البيانات متكررة ، واريد مجموعة منها ، انا ما اريد ان ادخل البيانات ، وانما اريدك انت ان تدخل البيانات بالطريقة الصحيحة جعفر
  24. اها ، ما قرأت كل الكود الظاهر يجب ان تعمل connection للجداول قبل خطوة إضافة السجل ، لأن الكود اعلاه يغلق الاستصال بعد الكود ، فكل اللي تقوم فيه من بيانات وسجل سابق ولاحق ، هي موجودة في Recordset الذي جلبته من البيانات قبل اغلاق الاتصال. Ado فيه اتصال وقطع اتصال ، وهذا الذي استعملته انت ، بينما Dao مافيه قطع اتصال ، جعفر
×
×
  • اضف...

Important Information