الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

*فورم* كيف أجعل النموذج الفرعي يظهر لي السجل الأخير

مغلق
بدأه فينوس في 6 فبراير 2003 · 9 رد · 5,089 مشاهدة · في قسم الأرشيف و المواضيع المميزه
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

مشكلة عويصة جداً

يكاد أحدنا يظن أنه وصل إلى آخر الطريق فيجد نفسه كأحد المجانين الذي وضع في غرفة مدورة و قالوا له اجلس في ركن الغرفة ..

حقيقة هذا حالي منذ يومين و أنا أحاول حل هذه المعضلة التي أكاد أجن منها :

لدي نموذج رئيسي يحوي نموذج فرعي المطلوب كيف أجعل النموذج الفرعي يظهر لي السجل الأخير عندما أقوم بالتنقل في النموذج الرئيسي من سجل لآخر؟؟؟؟؟؟؟؟؟؟؟؟؟؟

#2

الأخ فينوس

سلامتك من الجنون والعزل

ليتك ترفق مثال بالمطلوب حتى نستطيع فهم ما تريد لأنني صراحة لم أفهم ما تقصد 0

كيف تريد عرض أخر سجل في النموذج الفرعي أثناء تنقلك بين السجلات في النموذج الرئيسي0 ما فائدة النموذج الفرعي بهذه الطريقة؟

هل تقصد أن لكل سجل في النموذج الرئيسي عدة سجلات في النموذج الفرعي وتريد عرض أخر سجل فقط0

الرجاء الإيضاح وأن اردت الحصول على المطلوب أرفق مثال هذا أفضل بكثير0

لك تحياتي

#3

أخي الكريم

السلام عليكم

جرب الكود التالي

DoCmd.GoToControl "sub_form"

    DoCmd.GoToRecord , "", acNewRec

حث sub_form هو اسم عنصر تحكم النموذج الفرعي الموجود في النموذج الرئيسي

تحياتي

أخوك / أبو هاجر

#4

[ALIGN=RIGHT]مرحباً

قصدت بسؤالي السابق : لدي نموذج فرعي من نمط نموذج مفرد( و ليس مستمر) ..و هذا النموذج مضمن في نموذج رئيسي و العلاقة هي من واحد لكل !

أريد عندما أفتح النموذج الرئيسي أن يقف مؤشر النموذج الفرعي على السجل الأخير ..و إذا تم التنقل سواءً أماماً أو خلفاً فإن النموذج الفرعي يظهر السجل الأخير المرتبط بالنموذج الرئيسي ..

حاولت بعدة طرق :

أن أجعل فرز سجلات النموذج الفرعي تنازلياً إلا أنه يسبب إرباكاً للمستخدم

وضعت في الحدث Form_Current للنموذج الرئيسي الأمر :

docmd.goto ,"sub_form",aclast

لم تنجح الطريقة إذ أعطاني رسالة بأن النموذج غير مفتوح !!!

و رغم أنني أضفت التعديل الذي اقترحه أبو هاجر فلم تنجح الطريقة

قمت باستخدام كائن Recordset و استعملت المؤشر bookmark كمايلي :

قمت بإضافة إجراء Position_Current في وحدة نمطية عامة كمايلي :

Public Function Position_Current(frm As Form)

On Error GoTo Err_Position_Current



Dim RStLast As DAO.Recordset

    Set RStLast = frm.RecordsetClone

    RStLast.MoveFirst

    RStLast.MoveLast

    frm.Bookmark = RStLast.Bookmark

   

    Set RStLast = Nothing



Exit_Position_Current:

    Exit Function



Err_Position_Current:

    If Err.Number = 3021  Then

        Resume Next

    Else

        MsgBox Err.Description & Err.Number

        Resume Exit_Position_Current

    End If

End Function

و أضفت في الحدث Form_Current للنموذج الرئيسي :

Private Sub Form_Current()

   Position_Current me.subForm

end sub

إلا أن المشكلة أنه يقوم بنقل المؤشر و ثم يعود إلى أول سجل

بصراحة بقي لي و أنا أبحث عن حل أكثر من أسبوع و لما أجده

#5

الأخ فينوس

ما رأيك لو تمسح جميع البيانات الهامة وتضع بيانات غير صحيحة إذا كنت لا تريد الإطلاع على بياناتك ثم تضع رابطاً للمثال وما عليك سوى الإنتظار ساعات ويأتيك الرد0

#6

الأخ مصلح أشكرك على تجاوبك و لكن المشكلة أن البرنامج ضخم ( حوالي 6 ميغا) هذا من ناحية و أن أجزئ جزء من البرنامج فهذا يأخذ وقتاً مني ربما ليس بالقليل ..على كل من هنا إلى يوم الخميس إن عجزت أو أفلحت فسأضع ذلك في المنتدى ..

شكراً مرة أخرى

#7

الاخ الكريم فينوس

السلام عليكم ورحمة الله وبركاته

في زر الانتقال للسجل التالي وكذلك زر الانتقال للسجل السابق ضع كود

الاستاذ هاجر

DoCmd.GoToControl "sub_form"

DoCmd.GoToRecord , "", acNewRec

فبذلك كلما انتقلت لسجل جديد يضع المؤشر على اخر سجل

ولك تحياتي

#8

بداية أود أن أقول لكم كل عام و أنتم بخير ..

بالنسبة لمشكلتي تم حلها ..و هي كما اقترحها الأخ أبو هاجر ..أما السبب في كونها لم تعمل معي سابقاً هو الخطأ في إدخال البارمترات ربما بسبب كوني متوتراً بعض الشئ في المرة الماضية ..

مرة أخرى شكراً جزيلاً لكم

#9

الأخ فينوس

السلام عليكم

أعتذر عن تأخري في الرد خلال الفترة الماضية وأحمد الله على حل المشكلة والكود الذي ذكرته لك يعمل مع النماذج سواء كانت مستمرة أو نموذج مفرد

تحياتي

أخوك / أبو هاجر

#10

الأخ أبو هاجر ..

أشكرك على ردك ..

بالنسبة لطريقتك فهي جيدة و لكن ؟ يعيبها عيب هو أن تعمل بشكل جيد إذا كانت النماذج الفرعية موجودة في نفس الصفحة و متى كثرت النماذج فإنه يحدث زيغ بصري نتيجة نقل التركيز من نموذج فرعي لآخر و كأن النموذج يرتج .

أما بالنسبة لطريقتي في استخدام Dao فهي أفضل و قد عرفت المشكلة التي كانت تظهر معي و قمت تقريباً بحلها و خلال الأيام القليلة القادمة سأنشر مثالاً حول الطريقتين و الفرق بينهما للفائدة ..

مع التحية

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…