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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    408

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

  1. حياك الله أخوي حسين هل في شيء معين تريدني انظر فيه؟ جعفر
  2. السلام عليكم أخي حلبي الرابط فيه طلبك: وهذا جعفر
  3. وعليك السلام اختي ظاهرا الكود مافيه خطأ ، ولكن هل انتي على السجل الصحيح للمستخدم ، لمقارنة بيانات السجل بالبيانات التي يتم ادخالها؟ جعفر
  4. حياك الله أخوي رمهان ، والله المنتدى له وحشه لما الواحد يكون بعيد واهل المنتدى هم المقصودين ، مثل ما قال الشاعر أمر على الديــــــار ديار ليـلى ... أقبل ذا الـــــــجدار وذا الجـدارا وما حب الديار شـــــغفن قلبي ... ولكن حب من ســـــــكن الديارا جعفر
  5. السلام عليكم أخي أبو إبراهيم الغامدي ، مبارك عليك الترقية ، وهذا ان شاء الله اول الغيث جعفر
  6. الكود السابق: UBound(strFileNames) UBound معناه العدد الاكبر من strFileName ، ولكن للاسف بسبب الضغط على زر cancel ، فالمتغير strFileName يصبح Null ، لذلك لم يستطع الامر السابق اصطياد الخطأ، بينما الامر If Len(strFileNames & "") = 0 Then فيقوم محل امرين وهما: If isNull(strFileNames)=true or strFileNames= 0 Then جعفر الله يسلمك ويعافيك ان شاء الله اخوي محمد جعفر
  7. حياك الله اخوي ابو الآء وحياك الله اختي جعفر
  8. وعليكم السلام أخي اباجودي استبدل هذا السطر If UBound(strFileNames) = 0 Then بهذا السطر If Len(strFileNames & "") = 0 Then بسم الله عليك ايه يا اباجودي ، ما انت قلت انها تظهر لما تضغط على الزر cancel جعفر 207.5.m.salama.accdb.zip
  9. وعليكم السلام اختي 1. اذا تسمحي لي بتغيير الكود قليلا الى التالي ، فانتي لستي بحاجة الى If اخرى: if result=vbYes then docmd.quit else docmd.cancelevent msgbox "Back" endif 2. برنامج الاكسس تلقائيا يحفظ البيانات عندما ينتقل التركيز من السجل الذي انتي عليه ، سواء انتقلتي الى سجل آخر او خرجتي من النموذج الذي انتي فيه، ولكن اذا اردتي حفظ البيانات يدويا ، فهناك مجموعة طرق للقيام بهذا ، منها: سيتم حفظ البيانات كلما استعملتي هذا الامر docmd.runcommand accmdsaverecord او الامر التالي يحفظ البيانات فقط اذا تم عمل تغيير عليها if me.dirty then me.derty=false جعفر
  10. وعليكم السلام اختي واهلا وسهلا بك في المنتدى سأعطيك الطرق التالية لعمل المطلوب: 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 جعفر
  11. حياك الله أخي أوس ، واعتذر اني لم الحظ تعقيبك جعفر
  12. السلام عليكم شباب أخي أبوعبدالله: قد لا يكون الذي تبحث عنه ، ولكنها طريقة مفيده لإدخال مجموعة من البيانات مرة واحدة: جعفر
  13. السلام عليكم اخي ابوعمار رجاء معاينة الرابط الاخر للسؤال: جعفر
  14. السلام عليكم اخي ابوعمار انا اعتذر منك على التأخر في الرد ، حيث كنت على سفر ارجو انك لازلت بحاجة الى هذا الجواب الحل في: ا- الاستعلام ، لعمل الارقام في تسلسل (لأن حقولك عبارة عن نص ، والتسلسل فيها لا يكون صحيح) ، 2- مجاميع التقرير (في اسفل التقرير) ، لكي نعمل مجموعات الحقول ذو الرقم الواحد ، والثلاثة ، والاربعة ، والستة ، 3- الكود ، لإخفاء السجلات الغير مطلوبة. والنتيجة: جعفر 610.1.مطلوب تقرير.accdb.zip
  15. السلام عليكم النقطة رقم 2 يمكن الحصول على الكود حقها من الرقم 16 في المرفق التالي: جعفر
  16. الله ان شاء الله يسلمك ويعافيك ، اخوي أبوخليل جعفر
  17. السلام عليكم بالفعل فكرة ممتازة ، ولكن: للأسف الشديد ، الكثير من المبرمجين يعتمدون على حقل الرقم التلقائي في ربط حقول الجداول ، مع ان حقل الرقم التلقائي المُفهرس لا يجب استخدامه إلا للاكسس ، لا للمبرمج ولا لبرنامجه ، لذلك ، فنقل البيانات من جدول الى آخر ، فإن حقل الرقم التلقائي سيلخبط البيانات والعلاقات بين الجداول انا في برامجي ممكن استفيد من هذه الفكرة ، فحقل رقم التسلسل الذي استخدمه لا علاقة له بحقل الرقم التلقائي جعفر
  18. نعم لوسمحت ترفق الملف ونرى ما يمكن عمله ان شاء الله جعفر
  19. انا لا اعرف الشركة ، ولكن بما ان خبير أكسس مثل Allen Brown قام بتزكيتهم في موقعه وموقعهم ، فهذا الضمان الذي اعتمد عليه وهذا البرنامج غير متوفر في السوق حسب علمي ، فالشركة قامت بعمل برنامج تحويل MDE الى MDB والمتوفر في السوق ، ولكن بدون استخراج الكود ، والظاهر انهم لما نجحوا في الحصول على الكود كذلك ، فأوقفوا بيع البرنامج ، وجعلوا هذا التحويل بمقابل 450$ للبرنامج جعفر
  20. السلام عليكم بالاضافة الى طريقة اخي شفان ، هناك طريقتين بحثت عنهم: 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
  21. للعلم اذا اردت ان تنادي عضو لموضوعك ، فهناك طريقة لإرسال تنبيه له ، هكذا: اكتب @ وبعدها اكتب الاسم مباشرة ، واذا اردت التنبيه لأكثر من عضو ، فاترك مسافة بينهم مثلا ، سأرسل تنبيه اليك والى اخي أوس واخونا العود ابوخليل: @Shivan Rekany @sandanet @ابو خليل
  22. كسر حماية الوحدة النمطية متوفر، والقصد من commercial معناه بأنهم يقومون بالعمل بأجر مادي شو المشكلة اخي الو عبدالله !! الموضوع ليس بجديد وصار له سنين ، والحمدلله ، مافي شئ من برامجنا تأثر واللي يريد يسرق ، يحصل له الف طريقة !! جعفر
  23. بالعكس اخي أوس ، انا اتعمد فك الكود الى اسطر بالتفصيل ، حتى يكون الكود سهل الفهم (بس الظاهر جبت اسمي وقصدك @رمهان بكوده المختزل) واليك شرح الكود: 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 جعفر
  24. تفضل: http://www.everythingaccess.com/mdeconversion_example.htm وسترى: Original source code Reverse engineered source code وفي الرابط التالي ، اسمهم مذكور من شخص ثقة ، Allen Browne http://allenbrowne.com/links.html جعفر
×
×
  • اضف...

Important Information