سؤال

لدي جدول في MS Access 2007 يحتوي على 4 حقول.

  • أجرة العاملين
  • ساعات العمل
  • ضريبة القيمة المضافة
  • المجموع

كيف أضرب "ساعات العمل" في "تكلفة العمالة" وأضف "ضريبة القيمة المضافة" وأعرض الإجابة في "الإجمالي"

أين أضع أي صيغ؟، في نموذج أو استعلام أو جدول؟

شكرا جزيلا لأية مساعدة

سكوت

هل كانت مفيدة؟

المحلول

هناك أيضًا طريقة الدمى (أي ليست SQL) للقيام بذلك:قم أولاً بحذف عمود الإجمالي من الجدول الخاص بك وفي هذا التمرين تظاهر بأن اسم الجدول الخاص بك هو "العمل".

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

اكتب اسم الحقل المحسوب، على سبيل المثال.labourTotal، اتبعه بنقطتين: "ثم حدد أسماء الحقول التي تريد إضافتها من الجداول الموجودة في الجزء السفلي الأيسر من نافذة Expression Builder وانقر نقرًا مزدوجًا فوق كل منها.سيظهر كل حقل في أداة إنشاء التعبيرات بعد "الإجمالي:".الآن استبدل كل "«Expr»" بـ "+".يجب أن ترى هذا في منشئ التعبير:"إجمالي العمالة:[العمالة]![تكلفة العمالة] + [العمالة]![ساعات العمل] + [العمالة]![ضريبة القيمة المضافة] ".انقر فوق "موافق" وقم بتشغيل الاستعلام - إذا كان كل شيء على ما يرام، فسيعرض عمود الإجمالي النتائج.

نصائح أخرى

لا تحتاج إلى عمود "الإجمالي" على الأرجح.

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

SELECT [Total] = [Labour Cost] * [Labour Hours] + [VAT]

يمكنك استخدام نفس النوع من الصيغة في عناصر التحكم في النماذج أو التقارير.

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

UPDATE YourTableName SET [Total] = [Labour Hours] * [Labour Cost] + [VAT]


أ كثيراً ومع ذلك، فإن الطريقة الأفضل هي إزالة عمود الإجمالي بالكامل من الجدول الخاص بك وإنشاء استعلام:

SELECT [Labour Cost], 
       [Labour Hours], 
       [VAT], 
       [Labour Hours] * [Labour Cost] + [VAT] AS [Total]
FROM YourTableName

السبب وراء تفضيل هذا الأسلوب هو أنه يمنعك من وضع معلومات سيئة عن طريق الخطأ في عمود الإجمالي.بشكل عام، يمكن أن تتلف البيانات بسهولة إذا لم تكن حذرًا ويمكن أن يكون إصلاحها بمثابة ألم حقيقي (إن لم يكن مستحيلًا).أود أن أقترح عليك البحث في Google عن "تطبيع قاعدة البيانات" وقراءة القليل عنه - فهذا سيساعدك بشكل كبير.

  1. فيما يتعلق بنسبة ضريبة القيمة المضافة الخاصة بك، آمل ألا أذكر ما هو واضح، ولكن يجب عليك إدخال رقم عشري على سبيل المثال..175 هو 17.5%

  2. لا يمكنك إضافة نسبة مئوية فحسب، بل يجب ضربها بشيء ما.ويجب عليك تضمين 100% من المبلغ الأصلي.لذا، إذا كنت تريد إضافة 17.5%، فأنت بحاجة إلى الضرب بـ 1.175.لذلك، على افتراض أن:ط) تريد تضمين 100% تلقائيًا (على سبيل المثال.ستحتاج فقط إلى كتابة .175) وأنه يجب إضافة 2) ضريبة القيمة المضافة إلى المبلغ بالكامل، وأن 3) من خلال "تحديد" تعني أنك تريد أن تتم مطالبتك بضريبة القيمة المضافة في كل مرة يتم فيها تشغيل الاستعلام؛ثم يجب أن تكون الصيغة الخاصة بك:

المجموع:([النفقات العامة]![تكلفة العمالة]*[النفقات العامة]![ساعات العمل]+[تكلفة المواد]) * (1+ [أدخل ضريبة القيمة المضافة كمبلغ عشري؟])

إنشاء استعلام جديد.

أضف الجدول الخاص بك

قم بإضافة الحقول الثلاثة غير الإجمالية إلى الاستعلام

في نوع الحقل الجديد:

total: [VAT] + [Labour Hours] * [Labour Cost]

تشغيل الاستعلام

قال سكوت:

في الأساس ، أريد فقط إجراء الحسابات حتى أتمكن من عرض المجموع على الشاشة وفي تقرير.

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

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

أود أن أقترح نفس الشيء بالنسبة للنموذج يستثني إذا كنت تريد الفرز أو التصفية في الحقل الإجمالي.لا يمكن استخدام الحقول المحسوبة في النماذج للفرز/التصفية، ويمكن أن تكون مزعجة بسبب بطء عرضها في بعض المواقف.في هذه الحالة، ستتجاهل نصيحتي لتجنب وضعها في الاستعلام/مصدر السجل، لأن لديك سببًا وجيهًا لحسابها لجميع الصفوف قبل العرض الفعلي للبيانات.

ولكن بشكل عام، لا تضع حسابات في مصدر سجلات لن تعمل عليه كمجموعة (تصفية أو فرز أو تجميع).

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

في هذه الحالة، يمكنك توقع أن الإجمالي سيكون قيمة مستخدمة كثيرًا ويتم تطبيقها منطقيًا على الصف، لذا فإن جعله حقلاً محسوبًا هو المناسب.تتمتع الحقول المحسوبة بميزة أنه (في معظم الأنظمة، لست متأكدًا من MSAccess) يمكن ضبطها على إعادة الحساب فقط عندما تتغير البيانات.

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

عادةً ما أختار إجراء عملية حسابية في الاستعلام، ما لم تكن تعتمد على نتيجة عملية حسابية أخرى، فإن القيام بذلك في الاستعلام قد يصبح فوضويًا نوعًا ما، لذلك قم بذلك في النموذج/الرمز.

باختصار، حيثما كان ذلك مناسبًا لذلك الحساب.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top