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

التنقل بين سجلات السجل الفرعى وتشغيل الاكواد تلقائيا


Amr Ashraf
إذهب إلى أفضل إجابة Solved by Shivan Rekany,

الردود الموصى بها

السلام عليكم

اولا اساتذتى الافاضل اعتذر عن الموضوع السابق ثانيا بالنسبة للمشكلة لدى نموذج فرعى غير منضم يحضر قيم من جدول عن طريق جملة SQL ولدى كود يتم تشغيله بعد التحديث لكل سجل على حدى (فى النموذج الفرعى ) أريد تنفيذ هذه الخطوة تلقائيا بحيث يقوم النموذج الفرعى بعد احضار السجلات من الجدول بالانتقال الى اول سجل وتشغيل كود بعد التحديث الخاص به ثم ينتقل الى السجل التالى ويشغل الكود الخاص به وهكذا وذلك لأن هناك معادلة حسابية تعمل بعد تحديث كمية كل سجل وكانت تعتمد على الكتابة اليدوية ولكن بعد جعل النموذج يحضر القيم تلقائيا اصبح المستخدم لا يكتب شئ ولكن فى نفس الوقت مطلوب ان المعادلة تشتغل لكل سجل على حدى

قمت بعمل محاولة تشغيل الكود عن طريق استدعاء زر امر ولكن الطريقة لم تنجح فى كل السجلات ولكن اشتغلت فى اول سجل فقط

أرجو انى اكون اوضحت الفكرة وللمزيد من الفهم الرجاء الاطلاع على المرفق

 

 

 

form.rar

رابط هذا التعليق
شارك

اظن الفكرة غير واضحة هحاول ابسطها فى كل سجل بالنموذج الفرعى هناك حدث فيه كود المطلوب كالتالى :

Me.Subform.Setfocus
Docmd.gotorecord,,AcFirst
Run Code
Docmd.gotorecord,,AcNext
Run Code
وهكذا حتى الوصول الى اخر سجل فى النموذج الفرعى وتشغيل الكود الخاص به وبهذا ينتهى المطلوب

لو غير واضحة احاول اوضحها بطريق اخر

رابط هذا التعليق
شارك

2 ساعات مضت, Amr Ashraf said:

اظن الفكرة غير واضحة هحاول ابسطها فى كل سجل بالنموذج الفرعى هناك حدث فيه كود المطلوب كالتالى :


Me.Subform.Setfocus
Docmd.gotorecord,,AcFirst
Run Code
Docmd.gotorecord,,AcNext
Run Code
وهكذا حتى الوصول الى اخر سجل فى النموذج الفرعى وتشغيل الكود الخاص به وبهذا ينتهى المطلوب

لو غير واضحة احاول اوضحها بطريق اخر

تريد لأي نموذج هذه العملية اخي ؟ وتريد ان يشتغل اي كود لكل سجلات ؟

  • Like 2
رابط هذا التعليق
شارك

الان, Shivan Rekany said:

تريد لأي نموذج هذه العملية اخي ؟ وتريد ان يشتغل اي كود لكل سجلات ؟

اخى الفاضل 

العملية مطلوبة للنموذج Transaction_sub10 وهو النموذج الفرعى داخل النموذج الرئيسى 

وبالنسبة للكود المطلوب هوا الكود الموجود فى حدث بعد التحديث ل Out يعنى Out AfterUpdate المطلوب ان هذا الكود يشتغل لكل سجل على حدى وفى القاعدة الاصلية هى عملية حسابية يجب ان تتم بعد كل سجل لكن الكود الموجود فى المرفق مجرد مثال لا أكثر لفهم الفكرة فقط 

لو الفكرة مش واضحة لا تتردد بالسؤال واحاول اوضحها

تم تعديل بواسطه Amr Ashraf
رابط هذا التعليق
شارك

38 دقائق مضت, Amr Ashraf said:

وبالنسبة للكود المطلوب هوا الكود الموجود فى حدث بعد التحديث ل Out يعنى Out AfterUpdate المطلوب ان هذا الكود يشتغل لكل سجل على حدى وفى القاعدة الاصلية هى عملية حسابية يجب ان تتم بعد كل سجل لكن الكود الموجود فى المرفق مجرد مثال لا أكثر لفهم الفكرة فقط 

لو الفكرة مش واضحة لا تتردد بالسؤال واحاول اوضحها

انا نزلت المرفق لكن هناك سؤال

لماذا تريد ان تنسخ السجلات النموذج الفرعي الى نموذج الاخر ما هو السبب ؟ ما الفائدة للنموذج الثاني ؟ تريد توصل على اي شيء ؟

رابط هذا التعليق
شارك

الان, Shivan Rekany said:

انا نزلت المرفق لكن هناك سؤال

لماذا تريد ان تنسخ السجلات النموذج الفرعي الى نموذج الاخر ما هو السبب ؟ ما الفائدة للنموذج الثاني ؟ تريد توصل على اي شيء ؟

شكرا على المتابعة اخى الكريم

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

رابط هذا التعليق
شارك

  • أفضل إجابة
34 دقائق مضت, Amr Ashraf said:

شكرا على المتابعة اخى الكريم

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

الان وصلت الفكرة

اليك حل افضل بكثير من طريقتك

عملت لك هذه الاستعلا الالحاق

INSERT INTO Transactions ( Doc, Code, Item, Out, Notes )
SELECT [Forms]![Trans_top10]![Transaction subform].[Form]![Invoice] AS Doc, Order_Sub.Code, Order_Sub.Item, [Forms]![Trans_top10]![Transaction subform].[Form]![Out] AS Out, Order_Sub.Notes
FROM Order_Sub
WHERE (((Order_Sub.ID)=[Forms]![Trans_top10]![Combo0]));

وفي خلف زر استخدمت هذا الكود

Private Sub Command95_Click()
Me.Transaction_subform.SetFocus
DoCmd.SetWarnings False
    DoCmd.OpenQuery "q1", acViewNormal
DoCmd.SetWarnings True
End Sub

اليك ملفك بعد تعديل

 

Pro.rar

  • Like 4
رابط هذا التعليق
شارك

الان, Shivan Rekany said:

الان وصلت الفكرة

اليك حل افضل بكثير من طريقتك

عملت لك هذه الاستعلا الالحاق

وفي خلف زر استخدمت هذا الكود

اليك ملفك بعد تعديل

 

Pro.rar

طبعا التطبيق فى فكرتك افضل اخى الكريم جزاك الله خير ولكن الكود اللى انا حطيته بعد التحديث كان على سبيل الاسترشاد ولم يكن لدى مشكلة فيه ولكن وضعته فقط لاختبار نظرية تشغيل الكود بعد كل سجل فى النموذج الفرعى ورؤية اثرها فى الجدول بعد كل سجل على حدى بس انتا اوحيت لى بفكرة سأقوم بتجربتها ولى عودة مشكور يا غالى :fff:

 

  • Like 1
رابط هذا التعليق
شارك

1 دقيقه مضت, Shivan Rekany said:

الان وصلت الفكرة

اليك حل افضل بكثير من طريقتك

 

Pro.rar

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

 

بعد الالحاق.rar

رابط هذا التعليق
شارك

16 دقائق مضت, Amr Ashraf said:

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

 

بعد الالحاق.rar

هل قصدك بهذا السطر

[Forms]![Trans_top10]![Transaction subform].[Form]![Text46] = [Forms]![Trans_top10]![Transaction subform].[Form]![Out] - 200

انك تريد عند الحاق النتيجة حقل Out الى جدول Transactions تريد ان ينقص 200 وبعدين يلحق الى الجدول ؟

رابط هذا التعليق
شارك

10 ساعات مضت, Shivan Rekany said:

هل قصدك بهذا السطر


[Forms]![Trans_top10]![Transaction subform].[Form]![Text46] = [Forms]![Trans_top10]![Transaction subform].[Form]![Out] - 200

انك تريد عند الحاق النتيجة حقل Out الى جدول Transactions تريد ان ينقص 200 وبعدين يلحق الى الجدول ؟

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

واظن ان حتى الان لم استطع ان اوصل قصدى سأقوم بارفاق مثال شامل مصغر من قاعدتى الاصلية وبها مجموعة من الوظائف التى تعمل بالترتيب حتى يتم التطبيق العملى عليها

تقبل تحياتى

 

 

 

رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information