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

تعديل قيم بين جدولين وعدم فتح سجل مستمر قبل اتمام الحالي ؟؟


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

السلام عليكم

لدي سؤالين أحدهما بتعديل القيمة بمربع نص بناء على قيم موجودة بجدول آخر

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

جزاكم الله عني كل خير

 

db.rar

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

وعليكم السلام :rol:

 

بالنسبة للرقم ا:

اعمل هذا الحدث للحقل m_sum ، في الحدث بعد التحديث:


Private Sub m_sum_AfterUpdate()

    Me.m_sum = Me.m_sum - Me.com_name.Column(2)
    
    If Me.m_sum < Me.com_name.Column(2) Then
        MsgBox "القيمة اصغر"
    End If
    
End Sub

 

وبالنسبة للرقم 2:

في الجدول notes ، في اعدادات الحقول (ما عدالرقم التلقائي) ، اجعل "مطلوب" = نعم:

322.Clipboard01.jpg.c36b9e7467a81d748e57

 

جعفر

 

322.db.accdb.zip

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

السلام عليكم

أخي واستاذي جعفر أعتذر أولا على التأخر بالرد..

 

لقد جربت الكود والمرفق ولكن

بالنسبة ل (1) فإن الكود لا يقوم بتعديل القيمة في الجدول ويعطي احياناً اشارات -

بالنسبة ل(2)   فأنا اريد ان يكون لدى مستخدم الادخال السجل المستمر الأول والتالي أي اللذي يحوي كلمة new غير موجود وعند اتمام الادخال يظهر السجل التالي ؟؟؟

مع تقديري وشكري لك :signthankspin:

 

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

3 ساعات مضت, رضا الله said:

النسبة ل(2)   فأنا اريد ان يكون لدى مستخدم الادخال السجل المستمر الأول والتالي أي اللذي يحوي كلمة new غير موجود وعند اتمام الادخال يظهر السجل التالي ؟؟؟

مع تقديري وشكري لك :signthankspin:

 

القي نظره هنا

http://arabteam2000-forum.com/index.php?/topic/293030-%D9%83%D9%8A%D9%81-%D9%8A%D9%85%D9%83%D9%86-%D9%85%D9%86%D8%B9-%D8%A5%D8%B6%D8%A7%D9%81%D8%A9-%D8%B3%D8%AC%D9%84-%D8%AC%D8%AF%D9%8A%D8%AF-%D8%AA%D9%84%D9%82%D8%A7%D8%A6%D9%8A-%D9%81%D9%8A-%D8%A7%D9%84%D9%86%D9%85%D9%88%D8%B0%D8%AC/#comment-1397314

ولي عودة 

تحياتي

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

منذ ساعه, رمهان said:

القي نظره هنا

أشكرك كل الشكر أستاذنا رمهان على القائك نظرة ومشاركتنا في هذا الموضوع

بعد النظرة والتطبيق:

الحل يعمل ولكن السجل new يظهر احيانا ويختفي

والزر add يعمل بشكل جيد ولكن أنا اريد التحكم بالاضافة عند تعبئة السجل الحالي يقوم بفتح سجل للإضافة فما الحل

1 ساعه مضت, رمهان said:

ولي عودة 

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

مع تقديري

322.db.rar

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

في 3/18/2016 at 18:31, رضا الله said:

السلام عليكم

أخي واستاذي جعفر أعتذر أولا على التأخر بالرد..

 

لقد جربت الكود والمرفق ولكن

بالنسبة ل (1) فإن الكود لا يقوم بتعديل القيمة في الجدول ويعطي احياناً اشارات -

بالنسبة ل(2)   فأنا اريد ان يكون لدى مستخدم الادخال السجل المستمر الأول والتالي أي اللذي يحوي كلمة new غير موجود وعند اتمام الادخال يظهر السجل التالي ؟؟؟

مع تقديري وشكري لك :signthankspin:

 

وعليكم السلام :)

 

1. انا جربت الكود قبل ان اضعه ، وجربته مرة اخرى الان ، وهو يعمل كما يجب ،

فما قصدك انه "لا يقوم بتعديل القيمة في الجدول ويعطي احياناً اشارات -"

 

2. حتى ولو اخفيت السجل الجديد "والذي يظهر فيه New" ، فالمستخم يستطيع ان ينتقل الى الحقل الجديد وبدون ان يملئ بيانات الحقل الذي هو عليه ،

فالطريقة الصحيحة لإجبارة ، هي كما اقترحت عليك.

 

 

جعفر

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

 

السلام عليكم

20 ساعات مضت, jjafferr said:

فما قصدك انه "لا يقوم بتعديل القيمة في الجدول ويعطي احياناً اشارات -"

أخي واستاذنا جعفر اشكرك على عودتك عسى غيابك خير "للصدف عندما تواجهنا مشكلة يبدأ غيابك :wallbash:؟؟؟"

انظر الصورة أخي جعفر :signthankspin:

db.rar

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

سيدي الفاضل :smile:

 

لما تنقص رقم صغير من رقم كبير ، فلابد وان تكون النتيجة بالسالب ، وهذا ما يظهر لك بإشارة - :smile:

وجربت المرفق ، ولم يحذف السجل ،

ولكني لاحظت ان ترتيب الانتقال من حقل الى آخر غير صحيح ، لاحظ الصورة ، فالارقام الحمراء هي التسلسل ، والحقل m_id مثلا ، بدل ان تكون قيمته 1 ، فانها 3 !!

322.Clipboard01.jpg.c208d133e9c2e3e24a84

.

 

اذا لم افهم طلبك ، رجاء التوضيح اكثر :smile:

 

 

جعفر

 

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

 

3 ساعات مضت, jjafferr said:

سيدي الفاضل :smile:

وانت معلمي الفاضل أخ جعفر

3 ساعات مضت, jjafferr said:

لما تنقص رقم صغير من رقم كبير ، فلابد وان تكون النتيجة بالسالب ، وهذا ما يظهر لك بإشارة - :smile:

:blink: عندما انقص مثلاً رقم 10 من 20 يجب ان يكون الناتج 10 وليس -10

وهذا ما اريده اخ جعفر اي عندما ندخل رقم في m_sum أكبر من الرقم m_fullيعطي تنبيه ان الرقم المدخل أكبر

                                 وعندما ندخل رقم أصغر ينقص الرقم من  m_sum

مع مراعات التعديل اي ادخل مرة واكبس انتر ولكن اذا اردت التعديل يجب عدم اختلاف الارقام

على فرض انني ادخلت اول مرة 10 ينقص 10 من 20 ولكن عندما ارجع للحقل واعدل ال 10 وأكتب 5 يجب ان ينقص 5 من 20 وليس 10 :smile:

وايضا على فرض حذفنا هذا السجل يجب زيادة القيمة في m_sum الى m_full قبل الحذف

3 ساعات مضت, jjafferr said:

اذا لم افهم طلبك ، رجاء التوضيح اكثر :smile:

جزاك الله عني كل خير أخي جعفر وآمل ان أكون قد اوصلت الفكرة ؟؟

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

في 3/22/2016 at 19:02, رضا الله said:

1. عندما انقص مثلاً رقم 10 من 20 يجب ان يكون الناتج 10 وليس -10

وهذا ما اريده اخ جعفر اي عندما ندخل رقم في m_sum أكبر من الرقم m_fullيعطي تنبيه ان الرقم المدخل أكبر

                                 وعندما ندخل رقم أصغر ينقص الرقم من  m_sum

2. مع مراعات التعديل اي ادخل مرة واكبس انتر ولكن اذا اردت التعديل يجب عدم اختلاف الارقام

على فرض انني ادخلت اول مرة 10 ينقص 10 من 20 ولكن عندما ارجع للحقل واعدل ال 10 وأكتب 5 يجب ان ينقص 5 من 20 وليس 10 :smile:

وايضا على فرض حذفنا هذا السجل يجب زيادة القيمة في m_sum الى m_full قبل الحذف

 

1. هاي بسيطة:

غير هذا السطر
 If Me.m_sum < Me.com_name.Column(2) Then
                                    
بهذا السطر
 If Me.m_sum > Me.com_name.Column(2) Then                                    

.

2. إزاي راح اعمل دي!!

ممكن ، بحيث نعمل جدول خاص (او حقل خاص) للقيم التي يجب ان لا تتغير ، اي لا نطرح القيمة من الحقل m_full وانما من حقل آخر ، وتظل قيمة m_full غير متغيرة ،

بحيث نرجع لها في حال تغيير/حذف القيمة ،

ولكن هذه الطريقة غير متعارف عليها ، وغير مُتّبعة في قواعد البيانات ، لأنك لا تعرف الوقت الذي يجب ان تحفظ القيمة ، من الوقت الذي تسجل قيمة جديدة ،

وقد تعمل لك مشاكل في المستقبل :blink:

 

 

جعفر

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

 

السلام عليكم

9 ساعات مضت, jjafferr said:

1. هاي بسيطة:

أخي جعفر مازالت المشكلة ويعطي سالب ولا يتم التعديل على الجدول ؟؟؟؟؟؟:imsorry:

9 ساعات مضت, jjafferr said:

ولكن هذه الطريقة غير متعارف عليها ، وغير مُتّبعة في قواعد البيانات ، لأنك لا تعرف الوقت الذي يجب ان تحفظ القيمة ، من الوقت الذي تسجل قيمة جديدة ،

ماهي الطريقة ؟؟

هل اذا وضعنا زر للحفظ تحل المشكلة أي يتم حفظ البيانات "الأرقام عند الضغط على زر الحفظ وعند التعديل ايضاً يجب الحفظ ليتم التعديل"

ما رأيك أخ جعفر

 

mm.jpg

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

السلام عليكم

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

انا حبدا معاك باسلوبي والله يكون في عونك !

خلينا نتفق اولا على فهم المطلوب وشرحه اكثر

حسب فهمي : لديك جدول مواد به الرصيد ! ولديك جدول اخر به الصرف ! مع امكانية التعديل على الكمية المصروفة في وقت لاحق وبدون اي بيان لهذا التعديل وهذا مخالف كما قال الاستاذ جعفر وانا معه ايضا! وهنا سؤال بزنسي :

1. مالمقصود من التعديل على كمية صرفت سابقا : هل هي بمثابة ارجاع كميه من الكمية السابقة المصروفه - ام كميه مستلمه جديده - ام تصحيح لخطأ في الادخال السابق للكمية ؟ اجب هنا ثم نكمل !

بالتوفيق

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

وعليكم السلام

أخ رمهان اشكرك كل الشكر على عودتك والاكمال معنا

8 ساعات مضت, رمهان said:

ام تصحيح لخطأ في الادخال السابق للكمية ؟

هذا ما قصدته أي قمنا بالادخال ونريد التصحيح فعندما ندخل يجب اي يعدل القيم بالجداول وعندما نريد التعديل مرة اخرى

ستبدأ المشاكل وتختلف القيم لأنها معدلة وتم الانقاص منها فإذا انقصنا مرة أخرى ذهبت الكميات بالهواء

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

ما رأيكم

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

اخ رضا

اولا يوجد حل للمشكلة وكما تريد بالتمام ولكن سنؤجله الى النهاية حيث نريد حل اداري وتقني وليس تقني فقط !

السؤال :1. لماذ تريد التعديل في حقل m_full  فاتركه كقيمة باعتبارها الرصيد الافتتاحي ! ثم يتم جمع الكميات التي بالجدول notes ويتم طرح المجموع من الرصيد الافتتاحي وهنا الامر ليس معقد بل اصبحت عملية حسابية سهلة !

2. لو اتفقت معي كيف نزيد الرصيد عند الشراء او اضافة كميات جديده : العملية سهلة .. ففي جدول notes  يكون هناك عمود يبين نوع الحركة هل هي زيادة ام نثصان ! وهنا لم يعد هناك مشكلة في التعديل على الكميات لاحقا سواء ب : تعديل سجل او اضافة سجل او حذف سجل !

ان واقتني وبعد الاجابة طبقنا النقطتين وللحصول على ماتريد 

بالتوفيق

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

 

السلام عليكم

الان, رمهان said:

حيث نريد حل اداري وتقني وليس تقني فقط !

شكراً على هذه النقطة المهمة :fff:

الان, رمهان said:

لماذ تريد التعديل في حقل m_full  فاتركه كقيمة باعتبارها الرصيد الافتتاحي ! ثم يتم جمع الكميات التي بالجدول notes ويتم طرح المجموع من الرصيد الافتتاحي

اريد التعديل كي يتم عند كل عملية مباشرة

الان, رمهان said:

نزيد الرصيد عند الشراء او اضافة كميات جديده

من خلال نموذج آخر حيث انني اريد الابتعاد عن نوع الشركة أي نضع نموذج لاضافة على m_full

مع تقديري واحترامي

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

السلام عليكم

6 ساعات مضت, رمهان said:

القي نظرة بالمرفق

أخي واستاذنا الفاضل رمهان لقد وصلت إلى الجزء الاكبر لما أريد جزاك الله عني كل خير

ولكن لكي ابتعد عن نوع الحركة فلقد اضفت نموذج add وذلك في حالة الاضافة ولكي يبقى النموذج frm_notes فقط للصرف اي القيمة المدخلة في add تضاف إلى m_full في جدول names

والقيم المدخلة في m_sum يتم طرحها

- وبالنسبة عندما يتم ادخال قيمة في m_sum أكبر من الموجودة ما زال يعطي اشارات -

ما رأيك وشكراً لاهتمامك وسعت قلبك :fff:

مع تقديري واحترامي للجميع

db add.rar

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

مرحبا اخ رضا

القي نظره على المرفق وبه التعديلات

1. حذف الماكرو الذي يلغلق النموذج لاننا نحتاج قيم به ويمكن عمل اخفاء وليس اغلاق

2. تم مجموعة خيار بقيمتين 1 و 2 وهي قيم النوع لاستخدامها لاحقا كقيمة افتراضية للنوع

3. وضع القيمة الافتراضية للنوع حسب الخيار وطبعا هو ياخذ 1 للصرف و2 للاضافة وتم وضع خاصية غير ممكن لكي لايتدخل المستخدم بالتغيير

هنا اردت تعليمك نوعا ما بان التصميم له دور في البرامج ! فهناك مرحلة اسمها التحليل والتصميم في دورة حياة البرامج

لاحظ انه يمكن اخفاء النوع بتعديل خاصية مرئي= لا  اذا انت متضايق من وجوده وسيظل ياخذ القيم الافتراضية والمستخدم لايعلم

طبعا تعمدت الابقاء على التصميم بهذه الطريقة وليس طريقتك لانه بطريقتك لن نجد جواب للسؤال التالي حتى وان لم تحتاجه فهو يظهر في علم المخازن

س : كم كان الرصيد في التاريخ الفلاني وكم كان اجمالي الداخل والخارخ وفي نفس التاريخ؟

بل هناك سؤال اكثر دقة : عندما صرفت الكمية الفلانية كم كان الرصيد قبل تلك الحركة لحظيا وليس تاريخيا لانه بالتاريخ الواحد يمكن ان يكون هناك اكثر من حركة !

 

بالتوفيق

db add.rar

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

4 . تم عمل كود التشييك على عدم القبول لصرف اكبر من الرصيد !  وهناك ثغرة وهي يمكن الصرف بقيمة صفر ! حاول تعديل الشرط اذا رغبت تجاوز هذه الثغرة

 

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

Private Sub m_sum_BeforeUpdate(Cancel As Integer)
If Me.m_sum > bl And Me.type = 1 Then
MsgBox ("لايمكن الصرف بكمية اكبر من الرصيد... للتراجع الضغط على سكيب مرتين")
Cancel = True
End If
End Sub

لاحظ ان تسميتي للعمود type كان بها خطأ حيث هذه احد الكلمات المحجوزه ! فسبقتها بالكائن الام me

بالتوفيق

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

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