بحث مخصص من جوجل فى أوفيسنا
![]()
Custom Search
|
-
Posts
9903 -
تاريخ الانضمام
-
تاريخ اخر زياره
-
Days Won
404
نوع المحتوي
المنتدى
مكتبة الموقع
معرض الصور
المدونات
الوسائط المتعددة
كل منشورات العضو jjafferr
-
عندما يعطي برنامج الاكسس اخطاء - النسخة رقم 4 + عمل نسخ احتياطية
jjafferr replied to jjafferr's topic in قسم الأكسيس Access
شكرا اخواني: خالد ، sandanet ، احمد ، وابو عبدالله 🙂 جعفر- 61 replies
-
- backup
- comapct and repair
-
(و2 أكثر)
موسوم بكلمه :
-
عندما يعطي برنامج الاكسس اخطاء - النسخة رقم 4 + عمل نسخ احتياطية
jjafferr replied to jjafferr's topic in قسم الأكسيس Access
شكرا اخوي خالد 🙂 في مجموعة قليلة من الاعضاء اللي يعرفون فائدة هذا البرنامج 😢 اما انا ، فهذا البرنامج اضعه على سطح المكتب ، ويكون مفتوح ، وبعد الانتهاء من بعض تعديلات على اي من برامجي ، على طول استعمل البرنامج هذا ، اطمئن ان الكود نظيف ويعمل اللي كتبته (في احد البرامج في اول ايامي في الاكسس ، من كثرة ما عملت تعديل على الكود ، صار الكود ما يعطيني نتائج صحيحة ، وحينها كنت محتاج لهذا البرنامج!!) ، ويعمل لي نسخ مختلفة (وهذا شيء جدا مهم ، وهو خلال عمل او تعديل اي برنامج ، يجب عمل نسخ منه خلال العمل وليس بعده فقط ، وانا عادة يكون عندي على الاقل 10 نسخ او اكثر ، وكنت اعمل نسخ ولصق) . يا ريت تخبرنا تجربتك ويخبرنا بقية الاعضاء ، فهي الطريقة الوحيدة لنشر مفهوم هذا البرنامج 🙂 دكتور حسنين ، واخوي محمد ، شكرا لكم 🙂 جعفر- 61 replies
-
- 5
-
-
-
- backup
- comapct and repair
-
(و2 أكثر)
موسوم بكلمه :
-
عندما يعطي برنامج الاكسس اخطاء - النسخة رقم 3
jjafferr replied to jjafferr's topic in قسم الأكسيس Access
السلام عليكم 🙂 النسخة 4 من البرنامج ، وفيها التعديلات المطلوبة للعمل على النواتين 32بت و 64بت ، وبميزات اخرى : عندما يعطي برنامج الاكسس اخطاء - النسخة رقم 4 + عمل نسخ احتياطية - قسم الأكسيس Access - أوفيسنا (officena.net) جعفر -
السلام عليكم 🙂 المرفق يحتوي على النسختين mdb و accdb ، ويعمل على النواتين 32بت و 64 بت 🙂 النسخة السابقة: عندما يعطي برنامج الاكسس اخطاء - النسخة رقم 3 - قسم الأكسيس Access - أوفيسنا (officena.net) بعض الاوقات عند تشغيل برنامج اكسس ، نجد انه يغلق بدون سبب ، بمثل هذه الرسالة: . او يُظهر اخطاء ، مثل هذه الرسائل وغيرها : . . . هذا معناه ان برنامجك يحتاج تنظيف من الاخطاء التي فيه ، او يحتاج الى استعادة حيويته مرة اخرى ، بالتنظيف والصيانة 🙂 وعادة نقوم بهذا العمل على برنامج الواجهات FE ، ولكن برنامج الجداول BE يستفيد منه كذلك. نافذة البرنامج : . 1. نختار الملف ، سواء mdb او accdb ، اما ملفات mde و accde ، فلن تستفيد من Decompile/Compile ، ولكنها ستستفيد من الضغط والاصلاح ، وعمل نسخ اضافية ، 2. اذا البرنامج فيه كلمة سر (ليس كلمة سر المستخدمين ، ولا كلمة سر الكود VBE) ، فيمكنك كتابة كلمة السر هنا ، وسيقوم البرنامج بحفظه/نسخه في ذاكرة الكمبيوتر ، وتستطيع استعمال الالصاق Ctl+v عندما يسألك البرنامج ، كما يقوم البرنامج بإستخدامه في فتح برنامجك لمراجعة الاخطاء. اذن هناك خطوة يمكن للبرنامج ان يستخدم كلمة السر مباشرة ، وهناك خطوة يجب عليك ادخال كلمة السر عن طريق اللصق Ctl+v ، تم إضافة ميزة عمل النسخ الاحتياطية لبرنامجك ، بحيث تحفظ نسخة من برنامجك بعد التنظيف ، في المجلد الذي تختاره ، ويكون الحفظ المسلسل هكذا : . يعني بدل ان تحفظ نسخة من برنامجك بطرقك الخاصة ، تستطيع وبعد تعديل برنامجك ، ان تتأكد انه خالي من الشوائب ، ويعمل نسخه منه تلقائيا 🙂 وهناك عدة طرق لإختيار مجلد الحفظ: 3. حفظ الملف في نفس مجلد البرنامج ، 4. اختار المجلد ، وبعد اختياره ، تستطيع ان تنقر على الزر 9 ليقوم البرنامج بحفظ هذا المجلد/المسار في البرنامج للمرات القادمة ، 5. اول مسار تريد حفظه هو: استعمل الخطوة 4 في فتح المجلد الرئيسي لحفظ النسخ الاحتياطية (واذا ما كان عندك ، فقم بعمله من الآن) ، ثم احفظ المجلد/المسار بالزر 9. وبعدها ، البرنامج تلقائيا يختار هذا المجلد (اذا قمت بحفظه بواسطة الزر 9) كلما فتحت البرنامج ، اي انه اول سجل في الجدول ، 6. عن طريق الخطوة 4 ، تستطيع حفظ اي عدد من المجلدات ، ولاحقا تستطيع ان تختار هذا المجلد لحفظ النسخة الاحتياطية فيه ، 7. عدم عمل نسخ احتياطية ، للأسف الشديد 😞 8. عند اختيار اي من الاختيارات اعلاه ، سيضع البرنامج مسار مجلد النسخ الاحتياطية هنا ، 11. الآن نطلب من البرنامج ان يقوم بعمله ، بالخطوات التالية : أ. يحفظ نسخة من البرنامج وقبل مساسه (حتى اذا لا قدر الله وحصلت مشكلة في العمل ، يمكنك الرجوع لهذه النسخة) ، ويقوم البرنامج بعمل النسخة في مجلد برنامجك ، بإضافة bak_ في نهاية اسم الملف ، كما في الصورة ، واذا احتجت لإستعمال الملف لاحقا ، فقط قم بحذف bak_ وسيعمل البرنامج : ب. ضغط واصلاح : لما تحذف سجلات من برنامجك ، فإن البرنامج يعطي اشارة الى الجدول بإخفائه ، ولا يقوم بحذفه إلا بعد الضغط والاصلاح ، عند عمل فهرسة لحقول في الجدول ، فإن البرنامج يحتاج الى ضغط واصلاح حتى يقوم بترتيب اعدادات الفهرسة ، عند العمل على البرنامج لفترة طويلة بإضافات وتعديل وحذف ، فالبرنامج يحتاج الى ضغط واصلاح لإعادة ترتيب الفهرسة لسرعة عمل البرنامج ، قد يتم خطأ في تسجيل سجل ، ربما بسبب انطفاء الكهرباء ، او اغلاق الكمبيوتر وبدون اغلاق البرنامج ، وهذا السجل يجعل الجدول لا يعمل بطريقة صحيحة ، والضغط والاصلاح يحل هذه الاشكالية ، البرنامج عبارة عن ملف في الكمبيوتر ، ولما تعمل البرنامج ، فإن الكمبيوتر يحفظ البرنامج على المكان الفارغ من القرص الصلب ، ولما تضيف سجلات جديدة ويكبر حجم البرنامج ، فقد يحفظ الكمبيوتر الجزء الجديد في مكان آخر على القرص الصلب ، مكان غير ملاصق للجزء الاصل (وهذه طريقة حفظ الكمبيوتر للملفات) ، وبهذه الطريقة يصبح الملف موجدا على اجزاء مختلفة من القرص الصلب ، مما يجعل البرنامج ابطأ ، ولما تعمل ضغط واصلاح ، فإن الاكسس يقوم بحساب المساحة المطلوبة للبرنامج ، ثم يقوم بعمل برنامج جديد في مكان جديد على القرص الصلب ، وينسخ البرنامج اليه ، مما يجعل البرنامج اسرع ، بالاضافة الى امور اخرى لا يتم حلها إلا بالضغط والاصلاح ، الضغط والاصلاح لا علاقة له بالكود ، ولا يقوم بفحصه. ج. Decompile : لما نكتب الكود ، الاكسس يحتفظ بكل سطر بلغة P-Code الخاصة بمايكروسوفت (والتي تُستخدم لبعض البرامج الاخرى كذلك) ، وعند تنفيذ الكود ، فالاكسس ينفذ كود لغة P-Code ، وفي بعض الاحيان من كثرة التعديلات على الكود ، فإنه لا يتم تحديث P-Code بطريقة صحيحة ، فينتج عنه رسائل اخطاء اكسس ولا يعمل البرنامج بطريقة صحيحة ، وعند عمل Decompile ، فالاكسس يحذف كود P-Code القديم ، ويسجل فيه كود جديد من VBA ، مما يجعل البرنامج اصغر في الحجم زيادة في الكفائة. د. Compile : بهذه الطريقة ، نتأكد من عدم وجود اخطاء في الكود ، وبقايا ومخلفات ، مثل: لما نحذف كائنات في النموذج/التقرير ، ولا نحذف الحدث الخاص بها ، فالكود يجب حذفة ، لعدم وجود الحدث الي يستعمله ، لما نحذف كائن في النموذج/التقرير ، وفي الكود نكون قد اعطيناه قيمة ، فيجب حذف المسمى من الكود ، عند كتابة كود بطريقة غير صحيحة وغير مكتملة ، فيجب تصحيحها ، وهذه الخطوه مهم لتحويل البرنامج الى mde او accde . يحاول البرنامج القيام بهذا العمل لبرنامجك ، ولكنه اذا لم يستطيع ويحصل على اخطاء ، فإنه يخبرك بهذا ، ويخبرك مكان الخطأ في الكود ، سواء وحدة نمطية او نموذج او تقرير ، ويعطيك مثل الرسالة التالية ، والتي اذا اخترت نعم ، فيوقف البرنامج ، . ويأخذك لبرنامجك الى نافذة الكود VBE ، ثم يجب عليك ان تعمل التالي يدويا: . وتُصلح الاخطاء التي في برنامجك ، الى ان لا يعطي برنامجك اخطاء اخرى ، وبعدها تستطيع ان ترجع الى البرنامج ليقوم جميع الخطوات مرة اخرى. هـ. اذا اشتغلت خطوات البرنامج وبدون اخطاء ، فهنا يقوم البرنامج بعمل نسخة احتياطية من برنامجك ، وبالتسلسل الصحيح ، وفي المجلد الذي اخترته. 12. البرنامج يخبرك عن الخطوات التي تمت 🙂 جعفر Decompile_4.accdb..zip Decompile_4.mdb..zip Decompile_4.2.accdb.zip
- 61 replies
-
- 17
-
-
-
- backup
- comapct and repair
-
(و2 أكثر)
موسوم بكلمه :
-
ملف اكسل فيه اوراق لتسهيل قضاء الصلوات الفائته
jjafferr replied to jjafferr's topic in قسم الأكسيس Access
هنيئا لك هذا التوفيق (وَمَا يُلَقَّاهَا إِلا ذُو حَظٍّ عَظِيمٍ) 🙂 اما نحن الخطّاؤون فننتظر مغفرة من ربنا وقبول اعمالنا بقضاء هذه الصوات الفائته ، ونطلب منكم الدعاء لنا 🙂 جعفر -
كيف يمكن عمل كود متغير طبقا لاسم النموذج
jjafferr replied to engc2011e's topic in قسم الأكسيس Access
ما كنت ادري اذا صرحت بالامر ، يمكنني قفز المتغيرات المطلوبة من الامر !! شكرا اخوي خالد على هذه المعلومة 🙂 ، وهل بإمكاننا المضي على هذا المنوال بالنسبة لبقية الاوامر كذلك؟ جعفر -
وعليكم السلام اخوي ابو ابراهيم 🙂 طريقه جميلة ، شكرا لك على هذه التحفة 🙂 ولكني اخاف على صاحب الموضوع منها ، لأنها بطيئة ، وسيدخل في WebBrowser وحلاوة الوانه وخصوصا في البحث ، ويضيع ، مثل اخونا وائل عبد الرحمن 🙂 جعفر
-
وبسبب تدقيقك ، واعطائنا المعلومة الدقيقة ، والملف الصحيح ، تم التخلص من المربع 🙂 الآن تاتي هذه الرسالة: جعفر 1322.5.تحويل.accdb.zip
-
لفتح اي ملف وبأي صيغة ، ولنفرض ان الحقل FileName يحتوي على اسم ومسار الملف في الكمبيوتر ، اكتب هذا الكود في حدث النقر على الزر : application.followhyperlink chr(34) & me.FileName & chr(34) جعفر
-
رجاء احذف بيانات الجدول ، واستوردها من جديد ، فهذا السطر اللي انت عملته ، موجود في الكود بطريقة تختلف قليلا ، وبعدين اعمل مقارنتك
-
كيف يمكن عمل كود متغير طبقا لاسم النموذج
jjafferr replied to engc2011e's topic in قسم الأكسيس Access
وعليكم السلام 🙂 وههلا وسهلا بك في المنتدى 🙂 للإستفادة القصوى من المنتدى ، رجاء قراءة قوانين المنتدى : https://www.officena.net/Tips/Questions.htm الطرق الاسهل: 1. استخدم الامر OpenArgs لإرسال اسم النموذج ، عند فتح النموذج Z02_Load_File ، هكذا : DoCmd.OpenForm "Z02_Load_File",,,,,,me.name او لإرسال الرقم 123456 DoCmd.OpenForm "Z02_Load_File",,,,,,"123456" وفي اي من احدات النموذج Z02_Load_File ، يمكنك قراءة هذه القيمة بإستعمال me.OpenArgs ، وطبعا تقدر ترسل اي عدد من القيم بهذه الطريقة ، الشرط ان القيم تكون بين "" ، مثل : DoCmd.OpenForm "Z02_Load_File",,,,,,"123456|Finance_Department" ثم في النموذج Z02_Load_File ، تستعمل الامر Split لتفرق بين هذه القيم. 2. ان تعمل متغير في وحدة نمطية مستقلة ، هكذا : Option Compare Database option explicit Global myValue as string او public myValue2 as integer ثم لم تعطي القيمة قبل ان تفتح النموذج Z02_Load_File ، هكذا: myValue = "This is a test" DoCmd.OpenForm "Z02_Load_File" او myValue = 998877 DoCmd.OpenForm "Z02_Load_File" وفي اي من احدات النموذج Z02_Load_File ، يمكنك قراءة هذه القيمة بإستعمال اسم المتغير myValue او myValue2 ، 3. او نفس طريقة #2 ، ولكن باستعمال TempVar جعفر -
لا يوجد اذونات المستخدمين بـ اكسيس 2013 , 2016 , 2019
jjafferr replied to Abdelaziz Osman's topic in قسم الأكسيس Access
وعليكم السلام 🙂 تم حذف هذه الخاصية من ابتداءً من الاكسس 2007 ، واذا بحث في المنتدى ، فالاعضاء ما شاء الله عليهم ، عملوا مجموعة برامج تساعدك في هذا الموضوع 🙂 جعفر -
هل يمكن لرقم خلال حقل النص أن يكون له ارتباط بحقل آخر
jjafferr replied to nssj's topic in قسم الأكسيس Access
🙂 -
السلام عليكم 🙂 مع مراعاة نصائح اخي ابوعبدالله ، تفضل ملفك بعد التعديل 🙂 جعفر 565310943_.mdb
-
ورجاء ، اعطنا ملفك كاملا وهذه الاحاديث الطويلة (على ملف وورد مثلا) التي تسبب لك مشكلة ، واخبرنا الخطوات التي تتبعها وتعمل لك المشكلة ، حتى نستطيع معرفة المشكلة
-
طبيعي يكون هناك فرق بين حقل نص (عدد الحروف لا يتعدى 255 حرف) وبين حقل مذكرة (عدد الحروف لا يتعدى 65535 حرف اذا تم ادخاله يدويا ، بينما يستوعب بيانات بمقدار 1 جيجا اذا تم ادخالها برمجيا) ، ولكن هذا لا علاقة له بإغلاق الاكسس ، فالمشكلة في مكان آخر ، الفرق هو في ملف البرنامج والبرمجة جعفر
-
السلام عليكم 🙂 1. لكل برنامج ميزاته وعيوبه ، فالافضل من الان ان توزن ميزات وعيوب اكسس ، ومنها تواصل العمل في الاكسس او تنتقل الى برنامج آخر لا يوجد به شرطي 😁 2. البرمجة مثل الطبخ ، اللحم مثلا ، كل طباخ يتفنن فيه بطريقة ويعمل طبخة تختلف عن الاخرى وعن الطباخ الآخر ، وقد تعجبك طبخة معينة من يد طباخ معين ، ولا هذا لا يعني ان طبخ الطباخين الآخرين ليس أفضل ، وانما هو قرار اتخذته انت ولأسبابك (مثل طبخ الام ، فلا طبخ يضاهي طبخها 🙂). فالمبرمجين بتجاربهم يعطوك الجواب (على قدر سؤالك) ، ولكل مبرمج طريقته في البرمجة ، وانت تتخذ القرار بإستخدام طريقة او اخرى ، لأسبابك، 3. بسبب انك تتعامل مع حقل مذكرة Memo ، والذي فيه بيانات ثقيلة ، فليست جميع الطرق مناسبة لك ، وقد تكون هناك طرق جميلة في المنظر ، ولكن فليكن عندك هدف ، المنظر او السرعة ، لآنه في الكثير من الاوقات لا تستطيع دمج الاثنين مع بعض. لهذا السبب ، وفي كل سؤال تسأله ، يجب عليك ان تخبرنا بأن السرعة/المظهر هو اهتمامك ، وعليه سيقوم الخبراء بالدلو بتجاربهم 🙂 4. النقاط اعلاه ، يجب اتخاذ القرار فيها من الآن ومن بداية مشروعك ، لأننا هنا في المنتدى رأينا الكثير ، ولما البرنامج تصبح به مشاكل ، يعود ويلقي اللوم على الخبراء. 5. معظم الأسئلة ، يحتاج المبرمج الى وقت وجهد (وفي بعض الاحيان ، البحث) وليعمل البرمجة لها ، فكلما كنت دقيقا في هدفك وغايتك ، واعطيت المعلومات بالتفصيل وبأمثلة ، كلما سهّلت على المبرمج/العضو عمله 🙂 رجاء تشرح النقطتين بالتفصيل وبأمثلة نعم ، وفكرت في استعمال التاريخ وتحوله الى رقم ، ولكن رأيت ان الترقيم العشري افضل واسهل للإستعمال على المدى البعيد ، وخصوصا ان البرامج تتعامل مع الرقم اسرع من النص والتاريخ 🙂 جعفر
-
هل يمكن لرقم خلال حقل النص أن يكون له ارتباط بحقل آخر
jjafferr replied to nssj's topic in قسم الأكسيس Access
تم حل هذه الاشكالية بالمرفق الجديد ، فيصبح حدث النقر المزدوج في الحقل: Private Sub EH_DblClick(Cancel As Integer) Dim lng_Mno As Long 'send the "UnSaved Text" (to retain the text position as is), and the click position to the Function Get_Number 'to retrieve the number clicked on lng_Mno = Get_Number(Me.EH.Text, Me.EH.SelStart) 'once the Function returns the value, examin it If lng_Mno = 0 Then MsgBox "لم يتم الحصول على رقم" ElseIf lng_Mno = 1 Then MsgBox "لم يتم التعرف على الخطأ" Else DoCmd.OpenForm "مسند", , , "[Mno]=" & lng_Mno End If End Sub والدالة في الوحدة النمطية: Option Compare Database Option Explicit Public Function Get_Number(fld As String, P As Long) As Long On Error GoTo err_Get_Number ' 'fld = Field content 'P = Position left mouse was double clicked in the field 'max_Length = maximun length of numeric field, default is 10 on each side = 20 characters 'C = the character to check 'Add_C = Adds the numeric Characters ' '1. check the characters to the Left <----| '2. check the characters to the Right |----> ' ' jjafferr ' v.1 : 21-01-13 : initial re;ease ' v.1.1 : 21-01-14 : added error traping for noe numeric values ' Dim i As Integer Dim Add_C As String Dim C As String Dim max_Length As Integer max_Length = 10 'What dose Access Read: -10 to 10 = 20 letters/characters 'C = Mid(fld, P - max_Length, max_Length) & vbCrLf & Mid(fld, P + 1, max_Length) 'Debug.Print C 'Get the numbers on the Left side of the click For i = P To (P - max_Length) Step -1 C = Mid(fld, i, 1) 'loop through the characters one at a time If IsNumeric(C) Then 'test the character to our condition Add_C = C & Add_C 'passed the condition, Concatenat it Else Exit For 'did NOT pass the condition, get out of the loop End If Next i 'Debug.Print Add_C 'Get the numbers on the Right side of the click P = P + 1 For i = P To (P + max_Length) C = Mid(fld, i, 1) If IsNumeric(C) Then Add_C = Add_C & C Else Exit For End If Next i 'Convert the concatenated string to Long, and 'return the number value Get_Number = CLng(Add_C) Exit_Get_Number: Exit Function err_Get_Number: If Err.Number = 13 Then Get_Number = 0 ElseIf Err.Number = 5 Then Get_Number = 1 Else Get_Number = 1 MsgBox Err.Number & vbCrLf & Err.Description End If 'don't break the code, so Resume by exiting from the Function Resume Exit_Get_Number End Function انا لم اقل هذا ، وإنما قلت جعفر 1326.2.Get Number between text.accdb.zip -
لا لا ، المسألة ليست الاكسس و اكسل ، وإنما اكسس او اكسل !! وفي انتظار قرارك 🙂 جعفر
-
1. نعم ملاحظة صائبة ، وان شاء الله اظيفها ، 2. نعم ، حاولت ان لا ابتعد كثيرا عن الاكسل ، حتى لا يضيع اخونا ابو حسان 😁 على راسي 🙂 جعفر
-
هل يمكن لرقم خلال حقل النص أن يكون له ارتباط بحقل آخر
jjafferr replied to nssj's topic in قسم الأكسيس Access
ما فهمت اي تحديث تتكلم عنه ، ورجاء ، اعطني مثال بالشيء الذي تريده ، فأنا لا افهم المصطلحات !! لو عملت هذا في بداية الامر ، لعملت الكود على هذا الاساس ، اما الآن فلا داعي له ، إلا اذ اردت ان يكون البحث عن اي شيء بين القوسين ، يعني ارقام وحروف مثلا ، او حروف فقط. الدالة تنطلق من المكان الذي نقرت عليه في السطر ، تنظر الى الوراء الى 10 (ويمكنك تعديله في الكود) حروف ، فأذا وجدت رقم ، تأخذه ، واذا اذا وجدت حرف توقف ، ثم تنظر الى الامام 10 حروف ، فأذا وجدت رقم ، تأخذه وتضيفه الى الارقام السابقة ، واذا اذا وجدت حرف توقف ، جعفر -
السلام عليكم 🙂 هلا والله اخوي ابو خليل 🙂 البرنامج اللي انا عملته جاهز واخونا ابو حسان جربه ومافيه مشكلة ، وكل اللي مطلوب عمله هو تقرير جديد 🙂 انا كنت متعمد ما ارد على السؤال ، لأنه مثل ما تفضلت انت وقلت ، انه خونا ابو حسان لازم يبدأ يتعلم اكسس ، وإلا ، ففي كل صغيرة وكبيرة بيضطر يلجأ للمساعدة 🙂 خلاص ، بكرة ان شاء الله اقوم بعمل هذا التقرير 🙂 وسؤال آخر لأخوي ابو حسان: بما انني انا الذي أخذتك من الاكسل الى الاكسس ، فإذا قمت بالرد على سؤالك الاصل ، وقمت بعمل نسخ احتياطية على الاكسس ، فهل هذا سيسهل عليك؟ جعفر
-
السلام عليكم 🙂 1. نعم ، 2. تفضل المرفق ، 3. هذا خلاف عمل قاعدة البيانات ، واذا اردت ان تميز سجلات من اخرى ، فأعمل حقل خاص لها في الجدول ، ورجاء رجاء ، لا تفصلهم بجداول مختلفة ، لأنك سوف تعقد الامور على نفسك ، وستسأل عن حل ، وجميع الحلول لن تكون في صالحك. جعفر 1322.4.تحويل.accdb.zip
-
هل يمكن لرقم خلال حقل النص أن يكون له ارتباط بحقل آخر
jjafferr replied to nssj's topic in قسم الأكسيس Access
المشكلة ان تنسيق ونمط النموذج والجدول عندك كان غير ، فرجاء استعمال المرفق من الآن 🙂 وكلامنا فقط عن الجدول والنموذج احتمالات2 🙂 ولكي نتفادى رسالة الخطأ ، هكذا ننادي الدالة في الوحدة النمطية: Private Sub EH_DblClick(Cancel As Integer) Dim lng_Mno As Long lng_Mno = Get_Number(Me.EH, Me.EH.SelStart) If lng_Mno = 0 Then MsgBox "لم يتم الحصول على رقم" ElseIf lng_Mno = 1 Then MsgBox "لم يتم التعرف على الخطأ" Else DoCmd.OpenForm "مسند", , , "[Mno]=" & lng_Mno End If End Sub . واصبحت الدالة هكذا : Public Function Get_Number(fld As String, P As Long) As Long On Error GoTo err_Get_Number ' 'fld = Field content 'P = Position left mouse was double clicked in the field 'max_Length = maximun length of numeric field, default is 10 on each side = 20 characters 'C = the character to check 'Add_C = Adds the numeric Characters ' '1. check the characters to the Left <----| '2. check the characters to the Right |----> ' ' jjafferr ' v.1 : 21-01-13 : initial re;ease ' v.1.1 : 21-01-14 : added error traping for noe numeric values ' Dim i As Integer Dim Add_C As String Dim C As String Dim max_Length As Integer max_Length = 10 'What dose Access Read: -10 to 10 = 20 letters/characters 'C = Mid(fld, P - max_Length, max_Length) & vbCrLf & Mid(fld, P + 1, max_Length) 'Debug.Print C 'Get the numbers on the Left side of the click For i = P To (P - max_Length) Step -1 C = Mid(fld, i, 1) If IsNumeric(C) Then Add_C = C & Add_C Else Exit For End If Next i 'Debug.Print Add_C 'Get the numbers on the Right side of the click P = P + 1 For i = P To (P + max_Length) C = Mid(fld, i, 1) If IsNumeric(C) Then Add_C = Add_C & C Else Exit For End If Next i 'return the number value Get_Number = CLng(Add_C) Exit_Get_Number: Exit Function err_Get_Number: If Err.Number = 13 Then Get_Number = 0 Else Get_Number = 1 MsgBox Err.Number & vbCrLf & Err.Description End If Resume Exit_Get_Number End Function جعفر 1326.1.Get Number between text.accdb.zip