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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    408

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

  1. وعليكم السلام اختي واهلا وسهلا بك في المنتدى سأعطيك الطرق التالية لعمل المطلوب: 1. لا تعملي اي معيار في الاستعلام ، وسنطلب من البرنامج ان يفتح التقرير برقم Research_ID الذي تنقرين عليه (على نفس السجل ، سواء في النموذج الارئيسي او الفرعي)، وبالنظر الى الصور التي ارفقتيها ، ولأن ارقام حقل Research_ID في يمين الحقل (طبعا هذا اذا لم تقومي بعمل تنسيق له وعمل محاذاته لليمين) ، فهذا معناه ان الحقل نص وليس رقم اذا كان حقل Research_ID نص DoCmd.OpenReport "Report1", acViewPreview, , "[Research_ID]='" & Me.Research_ID & "'" واذا كان رقم DoCmd.OpenReport "Report1", acViewPreview, , "[Research_ID]=" & Me.Research_ID 2. اذا اردتي ان تضعي المعيار في الاستعلام ، فسيكون هكذا (طبعا غيري اسم Main_Form الى اسم النموذج الرئيسي ، و Sub_Form الى اسم النموذج الفرعي): Forms!Main_Form!Sub_Form!Research_ID 3. اذا عندك نموذج رئيسي لا يُغلق طول فترة البرنامج (سواء أكان ظاهر او مخفي) فلنسميه frm_Main ، فاعملي فيه حقل بإسم iResearch_ID مثلا، ثم اعملي الاستعلام على ان يأخذ معيار الحقل Research_ID من هذا الحقل ، وعلى حدث فتح التقرير ، سنرسل قيمة الحقل Research_ID الذي في النموذج الفرعي ، الى الحقل iResearch_ID في النوذج frm_Main ، والذي سيأخذ الاستعلام قيمته: Forms!frm_Main!iResearch_ID=me.Research_ID DoCmd.OpenReport"Report1" ,acViewPreview جعفر
  2. حياك الله أخي أوس ، واعتذر اني لم الحظ تعقيبك جعفر
  3. السلام عليكم شباب أخي أبوعبدالله: قد لا يكون الذي تبحث عنه ، ولكنها طريقة مفيده لإدخال مجموعة من البيانات مرة واحدة: جعفر
  4. السلام عليكم اخي ابوعمار رجاء معاينة الرابط الاخر للسؤال: جعفر
  5. السلام عليكم اخي ابوعمار انا اعتذر منك على التأخر في الرد ، حيث كنت على سفر ارجو انك لازلت بحاجة الى هذا الجواب الحل في: ا- الاستعلام ، لعمل الارقام في تسلسل (لأن حقولك عبارة عن نص ، والتسلسل فيها لا يكون صحيح) ، 2- مجاميع التقرير (في اسفل التقرير) ، لكي نعمل مجموعات الحقول ذو الرقم الواحد ، والثلاثة ، والاربعة ، والستة ، 3- الكود ، لإخفاء السجلات الغير مطلوبة. والنتيجة: جعفر 610.1.مطلوب تقرير.accdb.zip
  6. السلام عليكم النقطة رقم 2 يمكن الحصول على الكود حقها من الرقم 16 في المرفق التالي: جعفر
  7. الله ان شاء الله يسلمك ويعافيك ، اخوي أبوخليل جعفر
  8. السلام عليكم بالفعل فكرة ممتازة ، ولكن: للأسف الشديد ، الكثير من المبرمجين يعتمدون على حقل الرقم التلقائي في ربط حقول الجداول ، مع ان حقل الرقم التلقائي المُفهرس لا يجب استخدامه إلا للاكسس ، لا للمبرمج ولا لبرنامجه ، لذلك ، فنقل البيانات من جدول الى آخر ، فإن حقل الرقم التلقائي سيلخبط البيانات والعلاقات بين الجداول انا في برامجي ممكن استفيد من هذه الفكرة ، فحقل رقم التسلسل الذي استخدمه لا علاقة له بحقل الرقم التلقائي جعفر
  9. نعم لوسمحت ترفق الملف ونرى ما يمكن عمله ان شاء الله جعفر
  10. انا لا اعرف الشركة ، ولكن بما ان خبير أكسس مثل Allen Brown قام بتزكيتهم في موقعه وموقعهم ، فهذا الضمان الذي اعتمد عليه وهذا البرنامج غير متوفر في السوق حسب علمي ، فالشركة قامت بعمل برنامج تحويل MDE الى MDB والمتوفر في السوق ، ولكن بدون استخراج الكود ، والظاهر انهم لما نجحوا في الحصول على الكود كذلك ، فأوقفوا بيع البرنامج ، وجعلوا هذا التحويل بمقابل 450$ للبرنامج جعفر
  11. السلام عليكم بالاضافة الى طريقة اخي شفان ، هناك طريقتين بحثت عنهم: 1. https://msdn.microsoft.com/en-us/library/aa211469(v=office.11).aspx 2. كما في المرفق نستعمل الوحدة النمطية من الرابط التالي: http://access.mvps.org/access/api/api0068.htm والتي تمسك مفتاح الشفت برمجيا ، ومنه لا يعمل الماكرو Autoexec جعفر 609.zip
  12. للعلم اذا اردت ان تنادي عضو لموضوعك ، فهناك طريقة لإرسال تنبيه له ، هكذا: اكتب @ وبعدها اكتب الاسم مباشرة ، واذا اردت التنبيه لأكثر من عضو ، فاترك مسافة بينهم مثلا ، سأرسل تنبيه اليك والى اخي أوس واخونا العود ابوخليل: @Shivan Rekany @sandanet @ابو خليل
  13. كسر حماية الوحدة النمطية متوفر، والقصد من commercial معناه بأنهم يقومون بالعمل بأجر مادي شو المشكلة اخي الو عبدالله !! الموضوع ليس بجديد وصار له سنين ، والحمدلله ، مافي شئ من برامجنا تأثر واللي يريد يسرق ، يحصل له الف طريقة !! جعفر
  14. بالعكس اخي أوس ، انا اتعمد فك الكود الى اسطر بالتفصيل ، حتى يكون الكود سهل الفهم (بس الظاهر جبت اسمي وقصدك @رمهان بكوده المختزل) واليك شرح الكود: Dim rst1 As DAO.Recordset Dim rst2 As DAO.Recordset نحتفظ ببيانات الجدول1 في هذا المتغير#1 في ذاكرة الكمبيوتر المؤقته Set rst1 = CurrentDb.OpenRecordset("Select * From tbl1") بينما نحتفظ ببيانات الجدول2 في هذا المتغير #2 في ذاكرة الكمبيوتر المؤقته Set rst2 = CurrentDb.OpenRecordset("Select * From tbl2") من الآن ، تقريبا كل شغلنا على #1 ، حيث سنقرأ سجلات الجدول جميعها ، ثم نقارن حقلي الاسم والشهادة فاذا وجدنا القيم متساوية في #2 ، فاننا نحذف سجل #2 علشان نبدأ من اول سجل ، يجب ان نذهب الى آخر سجل ، ثم نرجع لأول سجل rst1.MoveLast: rst1.MoveFirst الآن نستطيع حساب عدد السجلات الموجودة في #1 RC1 = rst1.RecordCount الآن سنقرأ جميع سجلات #1 For i = 1 To RC1 اسم حقل الاسم يختلف في الجدولين ، فانتبه له ، بينما اسم الشهادة هو نفسه بين الجدولين لذا الذي نعمله هنا هو اننا نقارن حقلي الاسم والشهادة في السجل في #1 ، ونختبر وجودهما في الجدول #2 rst2.FindFirst "[degree]='" & rst1!degree & "' And [names]='" & rst1!fullnames & "'" اذا "عدم المطابقه" خطأ ، معناه انه في مطابقة بين الحقلين في هذا السجل ونستخدم هذه الطريقة ، لأنها الاسهل If rst2.NoMatch = False Then اذن ، احذف هذا السجل من #2 rst2.Delete End If انتقل الى السجل التالي في الجدول #1 rst1.MoveNext Next i هذه الجزئية جدا مهمة ، لأننا جعلنا الجدولين في ذاكرة الكمبيوتر المؤقته ولكي نُخلي الذاكرة ، يجب عمل التالي rst1.Close: Set rst1 = Nothing rst2.Close: Set rst2 = Nothing جعفر
  15. تفضل: http://www.everythingaccess.com/mdeconversion_example.htm وسترى: Original source code Reverse engineered source code وفي الرابط التالي ، اسمهم مذكور من شخص ثقة ، Allen Browne http://allenbrowne.com/links.html جعفر
  16. وبدون تعليق : http://www.pruittfamily.com/paul/MDE2MDB.htm http://www.everythingaccess.com/mdeconversion.asp جعفر
  17. وعليكم السلام أخي أبو الآء الظاهر الحياة اخذتك بعيدا عن الاكسس جعفر
  18. اخي شفان هل تستعمل الاكسس 2016؟ وهل عملت القفل على الاكسس 2016؟ جعفر
  19. يعني لما تمسك الشفت وتفتح البرنامج ، هل تستطيع ان ترى الجداول وبقية الكائنات؟ جعفر
  20. السلام عليكم أخي ابوجاسم ، اعتقد فيه عدم فهم للموضوع!! لما اباجودى قال: 1 و 2 لحل مشكلة ماقبل التحويل ، ولم يصل للنتقطة 3 بعد !! بالنسبة للنقاط 1 و 2 ، فانت تؤكد على عمل البرنامج بطريقة صحيحة: ولكن اباجودى لم يعمل النقطة رقم 3 بعد ، لذلك تقدر تعمل اللي قلت عنه لوسمحت اباجودى ، اكمل مشوار الخطوة 3 ، والتي ستكون قفل الشفت ، وتسليم المرفق بصيغة accde جعفر
  21. حياك الله اخوي شفان وملاحظتك كانت في مكانها لهذا السبب ، انا اقول : انت وضعت مشاركتك قبل ان ترى ردي الاخير والذي وضعت فيه الكود ، والكود موجود فيه جعفر
  22. اها ، لم التفت للشرط الاول اذن الاستعلام سيكون: . والكود سيصبح: Dim rst1 As DAO.Recordset Dim rst2 As DAO.Recordset Set rst1 = CurrentDb.OpenRecordset("Select * From tbl1") Set rst2 = CurrentDb.OpenRecordset("Select * From tbl2") rst1.MoveLast: rst1.MoveFirst RC1 = rst1.RecordCount For i = 1 To RC1 rst2.FindFirst "[degree]='" & rst1!degree & "' And [names]='" & rst1!fullnames & "'" If rst2.NoMatch = False Then rst2.Delete End If rst1.MoveNext Next i rst1.Close: Set rst1 = Nothing rst2.Close: Set rst2 = Nothing جعفر
  23. وعليكم السلام اخي شفان الرابط بين الجدولين معناه ان Degree يجب ان تكون متساوية بين الجدولين ، فيعرض النتائج تلك فقط واليك طريقة اخرى بالكود ، وبنفس النتائج: Dim rst1 As DAO.Recordset Dim rst2 As DAO.Recordset Set rst1 = CurrentDb.OpenRecordset("Select * From tbl1") Set rst2 = CurrentDb.OpenRecordset("Select * From tbl2") rst1.MoveLast: rst1.MoveFirst RC1 = rst1.RecordCount For i = 1 To RC1 rst2.FindFirst "[degree]='" & rst1!degree & "'" If rst2.NoMatch = False Then rst2.Delete End If rst1.MoveNext Next i rst1.Close: Set rst1 = Nothing rst2.Close: Set rst2 = Nothing جعفر
×
×
  • اضف...

Important Information