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

ممكن تكملة هذا الشرط فى قاعدة iif

بدأه khaledhelmy في 7 سبتمبر 2014 · 23 رد · 901 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بعد إذنكم

مرفق ملف وضعت به شرط فى الإستعلام وهو

DARIBA: IIf([comp]='شركة مصر للسياحة' And [KIND_TRANSE]='حقول';[PRICE_LIST]*0/100;[PRICE_LIST]*10/100)

 

 

فمعنى الشرط هو إذا كانت خانة الشركة = شركة مصر للسياحة ونوع الرحلة = حقول فتكون خانة الضريبة =0 ولو ما تحققش الشرط يتم الضرب *10/100

 

المطلوب هو إضافة شرط أخر مثله بالظبط ولكن أن تكون شركة ترافكوا وأيضاً إذا كانت نوع الرحلة = حقول فتكون خانة الضريبة =0 ولو ما تحققش الشرط يتم الضرب *10/100

فكيف أضيف هذا الشرط الخاص بشركة ترافكو مع الشرط السابق مع شركة مصر للسياحة بحيث يكون شرطين

بصراحة أنا حاولت كتير ولكن ظهرت معى أخطاء كثيرة فى علامات التنصيص

فأرجو المساعدة

وجزاكم الله كل خير

 

TRAVEL.rar

#2

تفضل :)

DARIBA: IIf([comp]='شركة مصر للسياحة' Or [comp]='شركة ترافكوا' And [KIND_TRANSE]='حقول',[PRICE_LIST]*0/100,[PRICE_LIST]*10/100)

جعفر

#3

أخى الكريم

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

أرجو حل المشكلة فى الملف المرفق

وجزاك الله كل خير

TRAVEL.rar

#4

الله يطول عمرك اخي خالد ، كله شغال تمام :)

 

هاي المعادلة في الاستعلام:

post-273849-0-16733200-1410144471_thumb.

 

 

وهاي النتيجة:

post-273849-0-20465200-1410144524_thumb.

 

 

 

جعفر

#5

أرجو مراجعة الملف بتاعى

حيث لاحظت أن الأوفيس اللى حضرتك بتستحدمه 2007 وأنا بستخدم 2003

عندى عملت تغيير لعلامة , إلى علامة ;  لانه لايقبل ال ,

ارجو الحل لو سمحت على الفايل بتاعى وإرفاقه

#6

طيب غير مثل ما هو مطلوب ، ولكن هل تظهر لك النتائج؟

 

مرفق لبرنامج

 

 

جعفر

249.TRAVEL.mdb.zip

#7

النتائج تظهر لى صحيحة مع شركة ترافكوا فقط

لكن مع شركة مصر للسياحة لا تظهر

مرفق صورة للنتائج

Doc2.doc

#8

النتائج تظهر لى صحيحة مع شركة ترافكوا فقط

لكن مع شركة مصر للسياحة لا تظهر

مرفق صورة للنتائج

Doc2.doc

#9

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

 

تفضل الكود المعدل:

DARIBA: IIf(([comp]='شركة مصر للسياحة' And [KIND_TRANSE]='حقول') Or ([comp]='شركة ترافكوا' And [KIND_TRANSE]='حقول'),0,[PRICE_LIST]*10/100)

جعفر

1
#10

للاسف ، الكلمات العربية قلبت الامر ، فما صار مفهوم :(

 

المفروض يكون بهذا التفصيل:

DARIBA: 
IIf(
([comp]='شركة مصر للسياحة' And [KIND_TRANSE]='حقول')
Or 
([comp]='شركة ترافكوا' And [KIND_TRANSE]='حقول')
,0,[PRICE_LIST]*10/100)

والمرفق

249.TRAVEL.mdb.zip

#11

شكراً جزيلا وجزاك الله كل خير وزادك الله من علمه

#12

:)

1
#13

شكراً جزيلا وجزاك الله كل خير وزادك الله من علمه

#14

السلام عليكم أخي خالد :)

 

ايش رأيك اعطيك طريقة ثانية سهله ، مب فقط تسهل عليك هذا الموضوع ، وانما تفتح لك آفاق جديدة :)

نعمل وحدة نمطية فيها الكود ، ثم نستدعي هذه الوحدة النمطية من الاستعلام.

 

1. الحقول التي لها علاقة بالمعادلة: [comp] ، [KIND_TRANSE] ، [PRICE_LIST]

لذا سنرسل هذه الحقول الى الوحدة النمطية ،

سنسمي الوحدة النمطية Calc_Dariba ،

وسنناديها من الاستعلام هكذا (لاحظ ترتيب الحقول المرسلة ، لذلك يجب ان نستقبلها في الوحدة النمطية بنفس الترتيب) :

DARIBA2: Calc_Dariba([comp],[KIND_TRANSE],[PRICE_LIST])

 

post-273849-0-57939200-1410194317_thumb.

 

 

2. هذه الوحدة النمطية والتي هي نفس امر iif الذي استعملته في الاستعلام  ، ولكنها مفككة ومبسطة ،

وتبسيطا لي ، فقد اعدت تسمية الحقول المرسلة من الاستعلام ، بحروفها الاولى:

Function Calc_Dariba(C, K, P)

    'C = [comp]
    'K = [KIND_TRANSE]
    'P = [PRICE_LIST]
    
    If C = "شركة مصر للسياحة" And K = "حقول" Then
        Calc_Dariba = 0
    
    ElseIf C = "شركة ترافكوا" And K = "حقول" Then
        Calc_Dariba = 0
        
    Else
        Calc_Dariba = P * 10 / 100
    
    End If

End Function

3. والان نرى نتيجة هذه العملية في الاستعلام ، ونقارن النتائج هذا الحقل مع المعادلة السابقة (جنبا الى جنب):

post-273849-0-90615600-1410194346_thumb.

 

 

 

طريقة العمل اسهل بكثير من الشرح ، صدقني :)

 

 

جعفر

249.TRAVEL.mdb.zip

تم تعديل هذه المشاركة بواسطة jjafferr في 8 سبتمبر 2014 في 19:44

#15

فكرة رائعة استاذ جعفر 


اعجبتني وحاولت تطبيقها ولكن لم أوفق


هل ممكن تنطبق على هذه الشروط 


إذا كان (يوم Datetrav يساوي 'الخميس' فإن Datefin +3)


إذا كان (يوم Datetrav يساوي 'الجمعة' فإن Datefin +2)


إذا كان( يوم Datetrav يساوي 'السبت' فإن Datefin +1)


وإذا كان غير هم تكون تساوي Datefin +1


الْلَّهُم صَلِّ وَبَارِك وَسَلِم عَلَى سَيِّدِنَا مُحَمَّد وَعَلَى الِه وَصَحْبِه وَسَلِّم

#16

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

 

ضع قاعدة بياناتك ، وان شاء الله خير :)

 

 

جعفر

#17
jjafferr كتب:

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

 

ضع قاعدة بياناتك ، وان شاء الله خير :)

 

جعفر

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

والحل يكون كمايلي :

إذا كانت نهاية الإجازة يوم الخميس يعني بدء العمل يوم الأحد اي نهاية الإجازة + 3

إذا كانت نهاية الإجازة يوم الجمعة يعني بدء العمل يوم الأحد اي نهاية الإجازة + 2

إذا كانت نهاية الإجازة يوم السبت يعني بدء العمل يوم الأحد اينهاية الإجازة + 1

النهاية عند سائر الأيام الأخرى أي "الأحد أو الإثنين أو الثلاثاء او الإربعاء" تكون نهاية الإجازة+1

 

اجازة.rar

الْلَّهُم صَلِّ وَبَارِك وَسَلِم عَلَى سَيِّدِنَا مُحَمَّد وَعَلَى الِه وَصَحْبِه وَسَلِّم

#18

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

 

تم تحويل:

Expr1: IIf([youm2]='الخميس',[findate]+3,IIf([youm2]='الجمعة',[findate]+2,IIf([youm2]='السبت',[findate]+1)))

الى

Function Date_Return(F)

    W = Weekday(F)
    
    If W = vbThursday Then      '"الخميس"
        Date_Return = DateAdd("d", 3, F)
        'Date_Return = F + 3
    
    ElseIf W = vbFriday Then    '"الجمعة"
        Date_Return = DateAdd("d", 2, F)
        'Date_Return = F + 2
        
    ElseIf W = vbSaturday Then  '"السبت"
        Date_Return = DateAdd("d", 1, F)
        'Date_Return = F + 1
        
    Else
        Date_Return = DateAdd("d", 1, F)
        'Date_Return = F + 1
    
    End If
    
End Function

بحيث تناديه من الاستعلام هكذا:

D: Date_Return([findate])

جعفر

321.اجازة.mdb.zip

#19

بورك فيك استاذ جعفر


وهو كذالك 


الله مايحرمنا من تواجدك اليومي معانا ومساعدتنا

الْلَّهُم صَلِّ وَبَارِك وَسَلِم عَلَى سَيِّدِنَا مُحَمَّد وَعَلَى الِه وَصَحْبِه وَسَلِّم

#20

حياك الله :)

#21

اخي كريمو

 

انا لاحظت ان معظم افراد المنتدى يستخدمون خاصية الانبثاق ، وPopUp في النماذج!!

 

بينما انا نادرا ما افعل هذا في برامجي!!

 

فهل لديكم سبب في ذلك؟

 

 

جعفر

#22
jjafferr كتب:

اخي كريمو

 

انا لاحظت ان معظم افراد المنتدى يستخدمون خاصية الانبثاق ، وPopUp في النماذج!!

 

بينما انا نادرا ما افعل هذا في برامجي!!

 

فهل لديكم سبب في ذلك؟

 

 

جعفر

من ناحيتي اعمل هذا من اجل الرؤية المميزة للنموذج ليس الا  لأنها عندها مظهر جميل للرؤية

الْلَّهُم صَلِّ وَبَارِك وَسَلِم عَلَى سَيِّدِنَا مُحَمَّد وَعَلَى الِه وَصَحْبِه وَسَلِّم

#23

شكرا جزيلا :)

#24

العفو اخي واستاذي جعفر    :) 


الْلَّهُم صَلِّ وَبَارِك وَسَلِم عَلَى سَيِّدِنَا مُحَمَّد وَعَلَى الِه وَصَحْبِه وَسَلِّم

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