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

jjafferr

أوفيسنا
  • Posts

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

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

  • Days Won

    404

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

  1. السلام عليكم ورحمة الله وبركاته أخي نكرو مانسر اول شئ يجب ان تفعله عند استخدام Recordset لتعبئة البيانات الجداول ، هو حذف العلاقات بين الجداول ، حيث انك ستتحكم بجميع الحقول والسجلات برمجيا ، وبدون اخطاء (انت تتكلم عن برمجة قواعد البيانات / اكسس في اعلى درجاتها ، فلا مجال لأخطاء المبتدئين هنا ) . 1. هذا غير صحيح ، فالبيانات في النموذج الفرعي مفصولة ، ولا يتم حفظ البيانات (سواء المعدلة او السجلات الجديدة) إلا اذا ضغطت على الزر Save ، واذا تتبعت الكود ، سترى بان الكود لا يكتب رقم العميل ، اذا كان هناك تعديل في البيانات ، ولكن الكود يكتب جميع البيانات ، ومنها رقم العميل ، اذا اضفت سجلات جديدة. 2. البرنامج بحاجة الى كتابة رقم العميل (او امر التوريد) في الجدول ، فانت حر في طريقة اعطائه الرقم كما تحب (ولا يجب ان يكون رقم العميل من النموذج الرئيسي) ، فتستطيع ان تجعل له حقل في النموذج الفرعي وتملئه كما تملئ بقية الحقول ، 3. انت لا تحتاج الى علاقة بين النموذج الرئيسي والنموذج الفرعي ، فانت الذي تحدد اي بيانات / سجلات للنموذج الرئيسي ، واي بيانات للنموذج الفرعي ، نحن بحاجة الى ربط النموذج الفرعي بالنموذج الرئيسي بحقل او اكثر ، فقط لتصفية السجلات في النموذج الفرعي على اساس بيانات النموذج الرئيسي ، بينما في حالتك ، فانت لا تصفي البيانات ، وانما تضيفها على كيفك لهذا ، فالمرفق Unbound متكامل أخي الاستاذ رمهان 4. الميزة قي التعامل مع السجلات / البيانات بطريقة Recordset ومكتبات ado doa : يجعل البرنامج خفيف ، حيث لا تاخذ من الجداول إلا السجل المطلوب ، بدل ان تأتي بالجدول كاملا الى النموذج ، ثم تصفيه في النموذج (باستخدام Form Filter مثلا) ، لا يعمل ضغط على القاعدة الخلفية (الجداول) ، وبهذه الطريقة تكسر حاجز الـ 15-25 شخص الذين يستطيعون استخدام البرنامج قبل ان يبدأ البرنامج بالبطئ ، فبهذه الطريقة لا حدود لعدد الاشخاص الذين يستطيعون استخدام البرنامج في شبكة ، اذا اضفت على الجداول حقلين ، حقل للرقم التلقائي ، وحقل للتاريخ (لاحظ جميع برامجي ، فانا اضيف هذين الحقلين في كل جدول) ، فيمكن ان تغير خلفية الجداول بدل عن الاكسس ، تستطيع ان تستعمل SQL server او My SQL ، او خلفية اخرى ، وبدون اي تغييرات تُذكر ، اذا تعلمت التعامل مع السجلات بهذه الطريقة ، فانت قريب جدا من برمجة ado.NET 5. وانا اضيف صوتي لصوتك ، لمعرفة السبب جعفر
  2. تفضل ، استطعت ان اجعل البرنامج صغير ، بإزالت الصورة الخلفية fin_New.zip
  3. وعليكم السلام الجميع يستطيع المشاركة ، ولكن عادة يفضل أن تفتح موضوع جديد ولكن الجميع عندما يريد المشاركة ، يجب أن يكون السؤال واضح وبالتفصيل ، وإلا فالاحتمالات تصبح ضئيلة للمشاركة ، وللأسف شرحك غير واضح وحتى مسميات الحقول ليست صحيحة ولا ترفق مثال للإقتداء به فالأفضل أن تتبع تعليمات تغيير إسم المرفق (right click on the file, rename the extension from zip to 7z) جعفر
  4. السلام عليكم ورحمة الله وبركاته عملت مثال على الرابط التالي وبه مرفق يعمل على 32 بت و 64 بت: http://www.officena.net/ib/topic/64325-مثال-يعمل-على-اكسس-32-بت-و-64-بت/ جعفر
  5. السلام عليكم ورحمة الله وبركاته عملت مثال على الرابط التالي وبه مرفق يعمل على 32 بت و 64 بت: http://www.officena.net/ib/topic/64325-مثال-يعمل-على-اكسس-32-بت-و-64-بت/ جعفر
  6. السلام عليكم ورحمة الله وبركاته عملت مثال على الرابط التالي وبه مرفق يعمل على 32 بت و 64 بت: http://www.officena.net/ib/topic/64325-مثال-يعمل-على-اكسس-32-بت-و-64-بت/ جعفر
  7. السلام عليكم ورحمة الله وبركاته عملت مثال على الرابط التالي وبه مرفق يعمل على 32 بت و 64 بت: http://www.officena.net/ib/topic/64325-مثال-يعمل-على-اكسس-32-بت-و-64-بت/ جعفر
  8. السلام عليكم ورحمة الله وبركاته هذا الموضوع اُثير اكثر من مرة في الآونة الاخيرة ، ورأيت من الافضل ان اضع مثال ليقتدي به الجميع وقبل ان نبدأ ، اود ان اشير الى انني اعمل على اكسس 32 بت ، ولا املك نسخة من اكسس 64 بت احب ان اشير الى الرابط الذي شرحت فيه ان مايكروسوفت توصي بتنصيب الاوفيس / اكسس 32 بت ، بغض النظر عن نوع الوندوز المنصّب على الكمبيوتر ، سواء كان 32 بت او 64 بت: http://www.officena.net/ib/topic/64036-هل-استخدم-اوفيس-32-بت-او-64-بت/ ولكن ، ماذا نفعل اذا عملنا برنامجنا على اكسس 32 بت ، واتضح ان الزبون عنده جهاز فيه اكسس 64 بت المثال التالي يشتغل على 32 بت و 64 بت ، ونستطيع ان نستفيد منه لعمل برنامجنا البرنامج المرفق ، بعد فك الضغط ، سيحتوي على 3 برامج: . هذا برنامج No_Password_BE.accdb ، وبه جدول واحد ، ولا يحتاج الى كلمة سر لفتحه: . هذا برنامج Password_is_jj_BE.accdb ، وبه جدول واحد ، وكلمة السر لفتحه هي jj: . البرنامج: JStreetAccessRelinker2.accdb من الرابط http://www.jstreettech.com/downloads.aspx ، وبه ماكرو ووحدات نمطية تعمل على 32 بت و 64 بت (فالفضل في هذا المثال يعود للبرنامج وليس لي ) ، وقد قمت بإضافة نموذج لربطه مع احد برنامج الجداول اعلاه ، ومبدئيا فهو مرتبط مع البرنامج No_Password_BE.accdb ، . وعند فتح البرنامج لأول مرة ، سوف يفتح نافذة تطلب معرفة مكان برنامج الجداول No_Password_BE.accdb ، وتستطيع ان تنقر على الزر Link Another BE ، وستفتح لك نافذة تطلب منك معرفة مكان برنامج الجداول الجديد الذي تريد ان تربطه (بدل البرنامج No_Password_BE.accdb) : . وبما ان البرنامج هذا محمي بكلمة سر ، فسوف تظهر لك نافذة لإدخال كلمة السر (لاحظ ان الادخال مشفر) : . وعندما يتم الربط ، سترى رسالة التاكيد: . الرجاء من الشباب الذين لديهم نسخة من الاكسس 64 بت ، التاكد من ان البرنامج يشتغل على كمبيوترهم بدون اخطاء. عندما نريد ان نعمل برنامج يشتغل على النسختين 32 و 64 بت ، فكود النماذج هو نفسه بين نسختي 32 بت و 64 بت ، والشئ الوحيد الذي يتغير هو دوال الوحدات النمطية API ، والكود الذي ينادي هذه الوحدات (بغض النظر سواء كان في نموذج او في وحدة نمطية مستقلة) ، هنا سوف اعطي مثال واحد من الكود عن طريقة العمل للنسختين 32 و 64 بت: الكود التالي يستعمل دالة API فتح نافذة اختيار ملف ، والدالة هي 32 بت (لاحظ comdlg32.dll ) : Private Declare Function GetOpenFileName Lib "comdlg32.dll" _ Alias "GetOpenFileNameA" (OPENFILENAME As tagOPENFILENAME) As Long الان اذا اردنا ان نجعل هذه الداله API تعمل على 64 بت كذلك ، فالكود يجب ان يكون: #If VBA7 Then 'هذه لنسخة 64 بت Private Declare PtrSafe Function GetOpenFileName Lib "comdlg32.dll" _ Alias "GetOpenFileNameA" (OPENFILENAME As tagOPENFILENAME) As Boolean #Else 'وهذه لنسخة 32 بت Private Declare Function GetOpenFileName Lib "comdlg32.dll" _ Alias "GetOpenFileNameA" (OPENFILENAME As tagOPENFILENAME) As Long #End If ولاحظ في كود البرنامج ، انه تم جمع جميع الدوال مع بعض ، وجمعها في if# و else# و end if# واحدة. وهناك اصدار جديد لكود الربط ، ويمكن انزاله من هنا: http://www.jstreettech.com/files/JStreetAccessRelinker2.zip جعفر 238.Work_on_32Bits_and_64Bits.zip
  9. أخي طارق اذا عندك اي استفسار ، رجاء ان تسأل ، لأني يوم الاربعاء صباحا على سفر ولن استطيع دخول المنتدى لفترة. جعفر
  10. السلام عليكم ورحمة الله وبركاته . نعم يمكن عمل هذا ، بإتباع التعليمات حسب ما وضحت في الرابط اعلاه http://www.officena.net/ib/topic/59661-الأكسس-32-بت،-64-بت/#comment-398477 في الرابط التالي توضيح من مايكروسوفت https://msdn.microsoft.com/en-us/library/office/gg264421.aspx . . الظاهر اني لم اشرح نفسي بشكل واضح في الرابط السابق ، مما نتج عنه هذا المفهوم الخاطئ ، فانا اعتذر عن هذا جعفر
  11. تفضل 1. أضفت حقل جديد للنموذج وجعلته مخفيا . 2. الكود اصبح: 'only split is nfous is empty If Len(Me.nfous & "") <> 0 Then Exit Sub Dim x() As String x = Split(Me.barcode, "+") Me.nfous = DLookup("[NoufousName]", "NoufousTable", "[Field1]='" & x(0) & "'") Me.nfous_ID = DLookup("[NoufousID]", "NoufousTable", "[Field1]='" & x(0) & "'") Me.[0000] = x(1) Me.[00] = x(2) Me.[00000] = x(3) Me.[0] = x(4) 'we will use the query method instead of the Recordset 'update the Record, if found DoCmd.SetWarnings False DoCmd.OpenQuery "qry_Update_BC_NF" DoCmd.SetWarnings True . 3. عملت استعلام تحديث: . للعلم ، بسبب كبر حجم قاعدة بياناتك ، اضطررت ان اضغط المرفق بصيغة 7z وتستطيع ان تنزل برنامج فك الضغط المجاني من هذا الموقع: http://www.7-zip.org لذلك بعد انزال المرفق fin.zip ، رجاء تغيير اسمه الى fin.7z ، ثم فك الضغط. جعفر fin.zip
  12. وعليكم السلام أخي طارق انا عندي حالة طارئه من كم يوم ولازالت ، ولم ادخل المنتدى. انا شخصيا لا اتعامل مع الافراد حسب هواي (ولم ألاحظ هذا على اي من المشاركين) ، ولكننا جميعا نساعد قدر استطاعتنا ووقتنا المتاح. سأحاول الليلة عمل المستطاع لإيجاد الحل لطلبك جعفر
  13. تفضل يا سيدي الكريم شاكرا لك جميل كلمات ، ودعائك جعفر 230.Report_to_Excel.mdb.zip
  14. معلش أخي وائل ، انا دايخ ومخي ما يستوعب اشياء جديدة اليوم (الكوتا حقة مخي قفلت خلاص ) مادام الاستاذ رمهان ماشي معاك ، فعلى بركة الله جعفر
  15. حياك الله شروط المنتدى لا تسمح بأكثر من سؤال في مشاركة واحدة فالرجاء افتح مشاركات جديدة بعدد الاسئلة جعفر
  16. السلام عليكم أخي موسى الرابط التالي فيه طريقة حفظ النسخ الاحتياطية: http://www.officena.net/ib/topic/63797-دعوة-لتطوير-اداه-لنسخ-قاعدة-البيانات-المرتبطة-كل-مدة-زمنية-ساعةيومشهرسنة/ جعفر
  17. أخي نكرو مانسر ما سمعنا منك ، هل الرابط والامثلة اللي انا وضعتها تخدم طلبك؟ جعفر
  18. السلام عليكم . 1. والكود لا يفعل هذا الشئ ، مثل طلبك ، فالكود لا يعمل على ازرار + و - ، 2. وهذا الذي يفعله البرنامج بالضبط ، مثل طلبك ، فالكود يعمل على ازرار الاصناف فقط. وين الخطأ اذا؟ جعفر
  19. وعليكم السلام . تذكر لما سألتك: . ولا يهمك تريد شئ ثاني قبل ما اقفل الدكان جعفر
  20. . وعليكم السلام اخي رمهان 1. الـ Recordset يكون باستخدام ADO او DAO ، فلذلك الامثلة حسب طلب السؤال 2. انا افتكرت الموضوع مثلك ، ولكن لما الاخ نكرو مانسر شرح الموضوع بشكل اكبر ، فارفقت له رابط بنفس الفكرة (طبعا حسب فهمي للموضوع) جعفر
×
×
  • اضف...

Important Information