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

عملية حسابية

بدأه morsyyy في 3 يونيو 2012 · 9 رد · 2,495 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

اريد ان استفسر ان كان من الممكن فى اكسس 2003 ان يقوم البرنامج بايجاد نتيجة عملية حسابية لحقلين او اكثر فى نفس الجدول (وليست فى الاستعلامات فقط )

وكيف اقوم بذلك

ولكل الاخوة الاعزاء جزيل الشكر

#2

السلام عليكم

الجداول هي قاعدة البيانات اي تخزين البيانات

لايوجد اي داعي للعمليات الحسابية داخل الجداول وهذا امر غير ممكن

لانها وظيفة الاستعلامات

ارجو ان يكون الشرح وافي

1
#3

بارك الله بك اخي الفاضل : ابراهيم

على الشرح

اخي الافضل : مرسي

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

ولكن هناك استثناء وحيد عن باقي نسخ الأكسيس وهي النسخة 2010 حيث تم اضافة حقل محسوب في الجدول وتستطيع القيام بالعمليات الحسابية به مثل الجمع والطرح والضرب والقسمة وكأنك تستخدم الإستعلام

بالتوفيق

1
#4

[

السلام عليكم

الى

اخى الفاضل ابراهيم اختى الفاضلة زهرة

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

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

فارجوا مساعدتى مع ارفاق مثال ب Access2003

ولكم منى افضل التحية ووافر التقدير والاحترام وجزيل الشكر

#5

الأخ مرسي الكريم

أنا أرى أن ذلك ممكن وأين المشكلة بذلك حتى وإن كان على أكسس 2003

أو أني لم أفهم سؤالك

أرفق مثالك لنقوم بالتعديل المطلوب

1
#6
zaher-t كتب:

الأخ مرسي الكريم

أنا أرى أن ذلك ممكن وأين المشكلة بذلك حتى وإن كان على أكسس 2003

أو أني لم أفهم سؤالك

أرفق مثالك لنقوم بالتعديل المطلوب

اخي الفاضل : زاهر

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

كيف يكون ذلك ممكنا !!!!! وهو القيام بعملية حسابية في الجدول فقط وبدون اي استعلامات او نماذج او اي شيء

دعني اضرب لك مثال

لديك جدول وحيد فقط ولا شيء غيره في قاعدة البيانات ويوجد في هذا الجدول حقلين وهما A و B وتريد جمع A+B في الحقل C

فهل هذا ممكن ؟؟؟؟

قد يكون لك وجهة نظر او حل لهذه المسألة مع اكسيس 2003

بالتوفيق

1
#7

السلام عليكم

اليكم شرح عمل باسورد للصلاحيات(قد توقفت لعدم استيعابى للشرح) فبرجاء المساعدة

اولا نقوم بعمل جدول اسمه 11 وننشاه فى طريقة وضع التصميم

1-نصنع حقل نسمية id وهو الاسم التعريفى للمستخدم وهو حقل نصىtext ويكون مفتاح اساسى( وبناء علية سيكون مطلوب و مفهرس ولا يسمح بالتكرار)

2-نصنع حقل اخر نسمية password -كلمة السر - وهذا الحقل نصى text ويكون مطلوب ومفهرس ولكنة يسمح بالتكرار

3-نصنع حقل اخر ونسمية group-وهو الحقل الخاص بتحديد صلاحيات المستخدم وهو حقل رقمى نحدد فية رقم من 1 الى 3 فى مثالى وهو حقل مطلوب ومفهرس ويسمح بالتكرار

اكيد فى حد بيسال الان ما الهدف من وجود هذا الجروب ؟

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

4 وضح بعض البيانات الشخصيه الخاصة بالعضو من اسم وادوات الاتصال به واخرى (غير هام )

الان نقوم بعمل استعلام مبنى على هذا الجدول ويكون بة ID & Password & Group واسمة 1 Query

1-ونضع اسفل IDفى حقل المعيار هذا الكود

plain text

[Forms]![form1]![id]

وهذا الكود يعنى معيار هذا الحقل قم باخذه(البرنامج) من نموذج اسمة form1 وبداخل حقل اسمة ID

2-نضع اسفل password فى حقل المعيار هذا الكود

plain text

[Forms]![form1]![password]

وهذا الكود يعنى معيار هذا الحقل قم باخذه(البرنامج) من نموذج اسمة form1 وبداخل حقل اسمة password

الان نقم بعمل النموذج الاساسى الذى سيظهر للمستخدم للدخول الى قاعدة البيانات

1-وسنسميه form1 وهو نموزج مبنى على الجدول 11 وناخذ منة الحقل الخاص باسم المستخدم وهو id وكلمة السر وهو password

بعد هذا نحذف ارتباط هذين الحقلين بالجدول وذلك من خلال الخصائص والبيانات control sours نمسح الذى امامها وبذلك تصبح هذة الحقول غير مربوطة بالجدول

2- نصنع زر نسمية sign in ونضع فى الحقل الخاص بالحدث عند الضغط هذة الاكواد البسيطة

plain text

If IsNull(ID) = True Then

MsgBox "انت لم تدخل اسم المستخدم", vbCritical, "خد بالك"

End

End If

If IsNull(password) = True Then

MsgBox "انت لم تدخل كلمة السر", vbCritical, "خد بالك"

End

End If

DoCmd.OpenForm "1 Query1"

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

والكود اخر يعنى فتح نموزج اسمة "1 Query1" وهذا الذى سنقوم بعملة فى الخطوة القادمة

بناء نموذج 1 Query1 وهو نموذج مبنى على الاستعلام 1 Queryوسناخذ منه الثلاث حقول السابق عملها بالاستعلام وهى ID & Password & Group

الان نضع label ونكتب به اهلا ومرحبا بك ونضع بجانبة الحقل الخاص ب id فستظهر كرساله تقول اهلا ومرحبا بك فلان (اسم المستخدم )

نجعل الحقل الخاص بالباسورد والجروب غير مرائية وذلك من خصائص visible no

الان سنقوم بوضع بعض الاكواد الخاصة جدا والهامة للنموذج

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

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

وتسطيع عمل هذا من خلال وضع بعض الاكواد فى حدث عند الفتح الخاص بنموذج 1 Query1 وهو بناء ماكرو

ويكون كالاتى

1-فى حقل condition نكتب IsNull([id]) وفى action نكتب msgbox وفى arguments نكتب لقد ادخلت بيانات غير صحيحة اعد المحاولة; Yes; Critical; لقد ادخلت بيانات غير صحيحة

اسفلة نكتب

2- فى حقل condition نكتب IsNull([id]) وفى action نكتب close وفى arguments نكتب Form; 1 Query1; Prompt

اسفلة نكتب

3- فى حقل condition نكتب NOT IsNull([id]) وفى action نكتب close وفى arguments نكتب Form; Form1; Yes

وبهذا نكون حققنا هدفنا السابق

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

plain text

If (Text8) = 1 Then

DoCmd.OpenForm "group1"

End If

If (Text8) = 2 Then

DoCmd.OpenForm "group2"

End If

If (Text8) = 3 Then

DoCmd.OpenForm "group3"

End If

DoCmd.OpenForm "1 query1", , , , , acHidden

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

ولنلاحظ فى اخر كود اننا لا نقوم باغلاقة ولكننا نجعلة فى وضع مخفى والهدف من هذة العملية هو استخدام اسم المستخدم فى كل عملية يقوم بها فعلى فرض انى اقوم بادخال بيانات فاتورة فساجعل بها حقل اسمة اسم المستخدم (وهو اسم المستخدم الذى يدخل البيانات الان)ولنجعل القيمة الافتراضية لهذا الحقل هو اسم المستخدم الماخوذ من هذا (1 query1) النموذج المفتوح فى وضع مخفى. وكانة توقيع من المستخدم على كل عملية قام بها .

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

لا تنسى ان تجعل هذة النماذج (المجموعات) بدون زر close

وقد قمت بوضع زرار فى داخل المجموعات اسمة sign out والهدف منة هو خروج المستخدم ودخول باسم مستخدم جديد ووضعت اسفل حدث عند الضغط

1- close والهدف منة اغلاف هذا النموذج المفتوح الان

2- close Form; 1 Query1; Yes والهدف منة اغلاق نموذج 1 Query1 الذى كان مفتوح فى وضع مخفى

3- Form1; Form; ; ; ; Normal OpenForm والهدف منة فتح نموذج ادخال اسم المستخدم و كلمة السر

و للامانة هذا الموضوع منقول من هذا الرابط

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

ولكم منى افضل تحية واحترام

ملحوظة : حاولت رفع الملف ...ولكن فشلت ارجو المساعدة (وماذا افعل لانجح فى رفع الملف)

رسالة خطأ(You aren't permitted to upload this kind of file)

رابط الشرح منقول من المنتدى /index.php?showtopic=237618

بالتوفيق

#8
zahrah كتب:

بارك الله بك اخي الفاضل : ابراهيم

على الشرح

اخي الافضل : مرسي

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

ولكن هناك استثناء وحيد عن باقي نسخ الأكسيس وهي النسخة 2010 حيث تم اضافة حقل محسوب في الجدول وتستطيع القيام بالعمليات الحسابية به مثل الجمع والطرح والضرب والقسمة وكأنك تستخدم الإستعلام

بالتوفيق

الأخت زهرة المحترمة أنا لم أجد بكلام الأخ مرسي أنه يريد العمل على الجدول مباشرة ولكنه قال

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

على أن يتم ذلك خارج الاستعلامات

وعلى كل طبعا أنا أتفق معك بأن ذلك غير ممكن على الجدول مباشرة ضمن اكسس 2003

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

وبناء على ما سبق كتبت أنه من الممكن أني لم أفهم سؤاله وكلامه يحتمل خطأ الفهم ليتضح الأمر للجميع

على كل أنتم أستذتنا والمشاركات هي للنقاش البناء لا أكثر

مع خالص احترامي لك

أتمنى التوفيق للجميع

1
#9

اخي بالامكان ان يحدث مثلا ان يكون هناك حقلين في الجدول

وكذلك حقل ثالث مثلا المجموع لهما

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

عملية جمع بسيطة في النموذج وسيتم ملئ الحقل الثالث بالمجموع

في الجدول وهكذا لكل سجل من السجلات

1

"قال رب اشرح لي صدري *ويسر لي امري*واحلل عقدة من لساني يفقهوا قولي" سورة طه
اللهم صل على سيدنا محمد
وعلى آل سيدنا محمد

http://rasoulallah.net/index.php/ar

#10

السلام عليكم جميعا اخواتى واخوتى

اساتذتى الكرام قد حاولت انشاء مثل هذا المثال على اكسس 2003 وقد توقفت ولم اتمم هذا المثال واحتاج الى مساعدة فسوف ارفق المثال ان تكرم على اى استاذ كريم من الاساتذة

ولكم منى افضل التحيات والدعوات

كلمة سر.rar

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