السلام عليكم ورحمة الله وبركاته
(f) (f) (f)ضيف عزيز قد أحل بداركم .......... هيا فقوموا يارفاق وسلموا
سرني عثوري على هذا المنتدى مع اننى لم أكن أتصور أن يكون بهذه القوة في مجال البرمجة ..... زادكم الله من فضله ونفع بكم.
ضيف عزيز قد أحل بداركم ،،،،، هبا فقوموا يارفاق وسلموا
أيها الأخوة وبعد ان أتيت سأقدم ثلاث باقات ورد هدية لتقوية صداقتي مع أخوة جهابذة في برنامج الأكسس ذلك البرنامج الذي عانيت معه ومنه الكثير والكثير حتى أحسست أننى ملم للكثير منه والحمد لله.
وباقتي قد تكون ليست غريبة عليكم لكنى قبل كتابتها تجولت في المنتدى ولم أجد من تطرق إليها وهي:
أولا في استخدام التاريخ الهجري
في اكسس2000 تستطيع ان تغير التاريخ عن طريق أدوات - بدء التشغيل - خيارات أخرى
ولكن بعد فتح قاعدة البيانات بالأكسس 2002 تبين انه يستخدم التاريخ الميلادي فبحثت بجهد عن طريقة لتغير التاريخ إلى الهجري وبعد جهد وجدت الخيار متاح ولكن في أدوات - خيارات- اعدادات دولية
ثانيا :
يحتاج مدخل البيانات إعطاء السجل المدخل رقم عشوائي شريطة أن لا يكون هذا الرقم قد أعطي لسجل آخر ( ياتي هذا العمل عند إدخال بيانات الموظفين ويفاجأ مدخل البيانات أن هناك أسماء متعددة تشترك في رقم واحد وقبل ادخال البيانات لم يكن متوقع حدوث هذا ) المهم هناك كود يوضع في مفتاح أمر بجانب مربع نص (رقم الموضف) فما أن يكون الرقم متكرر يقوم المفتاح بإعطاء رقم جديد عشواي غير متكرر ويوفر البحث والعناء على مدخل البانات.
الكود هو : مكان الكود (عند النقر)
[l]
Dim m1, m2, m3, m4
m1 = DMin("[رقم الكمبيوتر]", "بيانات الموظفين")
m2 = DMax("[رقم الكمبيوتر]", "بيانات الموظفين")
Do
Randomize
m3 = Int(m1 * Rnd + m2)
m4 = DLookup("[رقم الكمبيوتر]", "بيانات الموظفين")
Loop While (m3 = m4)
MsgBox ("(سيتم إضافة الرقم تلقائياللموظف الجديد)")
newn = m3
[/l]
newn يكون اسم (مربع نص) رقم الموظف
ثالثا
رأت موضوع لأخ سعودي31 عن رواتب سلم الموظفين وقد قمت سابقا بكتابة كود يعطي كل ذي حق حقه للموظفين ( يخصم التقاعد ويضيف بدل النقل)
ملاحظة (سلم الوظائف يختلف كثيرا عن سلم المدرسين ) ولكن يستفاد من الكود مع تغير بسيط فيه
الكود : مكان الكود (بعد التحديث)
ملاحظات: 1 ( mar=المرتبة ، nag=بدل النقل ،المرتبة = الدرجة)
[l]
If [mar] = 21 Or [mar] = 22 Or [mar] = 23 Or [mar] = 24 Or [mar] = 25 Or [mar] = 26 Or [mar] = 26 Or [mar] = 27 Or [mar] = 28 Or [mar] = 29 Or [mar] = 30 Or [mar] > 33 And [الجنسية] = "سعودي" Then
MsgBox "يجب أن تكون قيمة الدرجة بين 1 و 20 أو بين 31 و 33"
mar = 1
End If
If [mar] = 0 And [mar] = Null Then
الراتب_الشهري = 0
العلاوة_السنوية = 0
ta = ([الراتب الشهري] * 9) / 100
ra = [الراتب الشهري] - ta
nag = 0
saf = ra + nag
End If
If [mar] > 0 And [mar] < 11 And [المرتبة] > 15 And [الجنسية] = "سعودي" Then
MsgBox "يجب أن تكون قيمة الدرجة بين 1 و 15"
المرتبة = 1
End If
If [mar] = 1 And [المرتبة] = 1 Then
الراتب_الشهري = 1500
العلاوة_السنوية = 100
ta = ([الراتب الشهري] * 9) / 100
ra = [الراتب الشهري] - ta
nag = 400
saf = ra + nag
End If
If [mar] = 1 And [المرتبة] > 1 And [المرتبة] < 16 Then
zed = (100 * [المرتبة] - 100)
الراتب_الشهري = zed + 1500
العلاوة_السنوية = 100
ta = ([الراتب الشهري] * 9) / 100
ra = [الراتب الشهري] - ta
nag = 400
saf = ra + nag
End If
If [mar] = 2 And [المرتبة] = 1 Then
الراتب_الشهري = 1825
العلاوة_السنوية = 120
ta = ([الراتب الشهري] * 9) / 100
ra = [الراتب الشهري] - ta
nag = 400
saf = ra + nag
End If
If [mar] = 2 And [المرتبة] > 1 And [المرتبة] < 16 Then
zed = (120 * [المرتبة] - 120)
الراتب_الشهري = zed + 1825
العلاوة_السنوية = 120
ta = ([الراتب الشهري] * 9) / 100
ra = [الراتب الشهري] - ta
nag = 400
saf = ra + nag
End If
If [mar] = 3 And [المرتبة] = 1 Then
الراتب_الشهري = 2210
العلاوة_السنوية = 140
ta = ([الراتب الشهري] * 9) / 100
ra = [الراتب الشهري] - ta
nag = 400
saf = ra + nag
End If
If [mar] = 3 And [المرتبة] > 1 And [المرتبة] < 16 Then
zed = (140 * [المرتبة] - 140)
الراتب_الشهري = zed + 2210
العلاوة_السنوية = 140
ta = ([الراتب الشهري] * 9) / 100
ra = [الراتب الشهري] - ta
nag = 400
saf = ra + nag
End If
If [mar] = 4 And [المرتبة] = 1 Then
الراتب_الشهري = 2655
العلاوة_السنوية = 170
ta = ([الراتب الشهري] * 9) / 100
ra = [الراتب الشهري] - ta
nag = 400
saf = ra + nag
End If
If [mar] = 4 And [المرتبة] > 1 And [المرتبة] < 16 Then
zed = (170 * [المرتبة] - 170)
الراتب_الشهري = zed + 2655
العلاوة_السنوية = 170
ta = ([الراتب الشهري] * 9) / 100
ra = [الراتب الشهري] - ta
nag = 400
saf = ra + nag
End If
If [mar] = 5 And [المرتبة] = 1 Then
الراتب_الشهري = 3190
العلاوة_السنوية = 200
ta = ([الراتب الشهري] * 9) / 100
ra = [الراتب الشهري] - ta
nag = 600
saf = ra + nag
End If
If [mar] = 5 And [المرتبة] > 1 And [المرتبة] < 16 Then
zed = (200 * [المرتبة] - 200)
الراتب_الشهري = zed + 3190
العلاوة_السنوية = 200
ta = ([الراتب الشهري] * 9) / 100
ra = [الراتب الشهري] - ta
nag = 400
saf = ra + nag
End If
If [mar] = 6 And [المرتبة] = 1 Then
الراتب_الشهري = 3815
العلاوة_السنوية = 230
ta = ([الراتب الشهري] * 9) / 100
ra = [الراتب الشهري] - ta
nag = 600
saf = ra + nag
End If
If [mar] = 6 And [المرتبة] > 1 And [المرتبة] < 16 Then
zed = (230 * [المرتبة] - 230)
الراتب_الشهري = zed + 3815
العلاوة_السنوية = 230
ta = ([الراتب الشهري] * 9) / 100
ra = [الراتب الشهري] - ta
nag = 600
saf = nag + ra
End If
If [mar] = 7 And [المرتبة] = 1 Then
الراتب_الشهري = 4530
العلاوة_السنوية = 270
ta = ([الراتب الشهري] * 9) / 100
ra = [الراتب الشهري] - ta
nag = 600
saf = ra + nag
End If
If [mar] = 7 And [المرتبة] > 1 And [المرتبة] < 16 Then
zed = (270 * [المرتبة] - 270)
الراتب_الشهري = zed + 4530
العلاوة_السنوية = 270
ta = ([الراتب الشهري] * 9) / 100
ra = [الراتب الشهري] - ta
nag = 600
saf = ra + nag
End If
If [mar] = 8 And [المرتبة] = 1 Then
الراتب_الشهري = 5285
العلاوة_السنوية = 310
ta = ([الراتب الشهري] * 9) / 100
ra = [الراتب الشهري] - ta
nag = 600
saf = ra + nag
End If
If [mar] = 8 And [المرتبة] > 1 And [المرتبة] < 16 Then
zed = (310 * [المرتبة] - 310)
الراتب_الشهري = zed + 5285
العلاوة_السنوية = 310
ta = ([الراتب الشهري] * 9) / 100
ra = [الراتب الشهري] - ta
nag = 600
saf = ra + nag
End If
If [mar] = 9 And [المرتبة] = 1 Then
الراتب_الشهري = 6240
العلاوة_السنوية = 350
ta = ([الراتب الشهري] * 9) / 100
ra = [الراتب الشهري] - ta
nag = 600
saf = ra + nag
End If
If [mar] = 9 And [المرتبة] > 1 And [المرتبة] < 16 Then
zed = (350 * [المرتبة] - 350)
الراتب_الشهري = zed + 6240
العلاوة_السنوية = 350
ta = ([الراتب الشهري] * 9) / 100
ra = [الراتب الشهري] - ta
nag = 600
saf = ra + nag
End If
If [mar] = 10 And [المرتبة] = 1 Then
الراتب_الشهري = 7000
العلاوة_السنوية = 380
ta = ([الراتب الشهري] * 9) / 100
ra = [الراتب الشهري] - ta
nag = 600
saf = ra + nag
End If
If [mar] = 10 And [المرتبة] > 1 And [المرتبة] < 16 Then
zed = (380 * [المرتبة] - 380)
الراتب_الشهري = zed + 7000
العلاوة_السنوية = 380
ta = ([الراتب الشهري] * 9) / 100
ra = [الراتب الشهري] - ta
nag = 600
saf = ra + nag
End If
If [mar] = 11 And [المرتبة] > 15 Then
MsgBox "يجب أن تكون قيمة الدرجة بين 1 و 14"
المرتبة = 1
End If
If [mar] = 11 And [المرتبة] = 1 Then
الراتب_الشهري = 8165
العلاوة_السنوية = 400
ta = ([الراتب الشهري] * 9) / 100
ra = [الراتب الشهري] - ta
nag = 600
saf = ra + nag
End If
If [mar] = 11 And [المرتبة] > 1 And [المرتبة] < 15 Then
zed = (400 * [المرتبة] - 400)
الراتب_الشهري = zed + 8165
العلاوة_السنوية = 400
ta = ([الراتب الشهري] * 9) / 100
ra = [الراتب الشهري] - ta
nag = 600
saf = ra + nag
End If
If [mar] = 12 And [المرتبة] > 14 Then
MsgBox "يجب أن تكون قيمة الدرجة بين 1 و 13"
المرتبة = 1
End If
If [mar] = 12 And [المرتبة] = 1 Then
الراتب_الشهري = 9390
العلاوة_السنوية = 430
ta = ([الراتب الشهري] * 9) / 100
ra = [الراتب الشهري] - ta
nag = 600
saf = ra + nag
End If
If [mar] = 12 And [المرتبة] > 1 And [المرتبة] < 14 Then
zed = (430 * [المرتبة] - 430)
الراتب_الشهري = zed + 9390
العلاوة_السنوية = 430
ta = ([الراتب الشهري] * 9) / 100
ra = [الراتب الشهري] - ta
nag = 600
saf = ra + nag
End If
If [mar] = 13 And [المرتبة] > 13 Then
MsgBox "يجب أن تكون قيمة الدرجة بين 1 و 12"
المرتبة = 1
End If
If [mar] = 13 And [المرتبة] = 1 Then
الراتب_الشهري = 10705
العلاوة_السنوية = 455
ta = ([الراتب الشهري] * 9) / 100
ra = [الراتب الشهري] - ta
nag = 600
saf = ra + nag
End If
If [mar] = 13 And [المرتبة] > 1 And [المرتبة] < 13 Then
zed = (455 * [المرتبة] - 455)
الراتب_الشهري = zed + 10705
العلاوة_السنوية = 455
ta = ([الراتب الشهري] * 9) / 100
ra = [الراتب الشهري] - ta
nag = 600
saf = ra + nag
End If
If [mar] = 14 And [المرتبة] > 12 Then
MsgBox "يجب أن تكون قيمة الدرجة بين 1 و 11"
المرتبة = 1
End If
If [mar] = 14 And [المرتبة] = 1 Then
الراتب_الشهري = 12095
العلاوة_السنوية = 525
ta = ([الراتب الشهري] * 9) / 100
ra = [الراتب الشهري] - ta
nag = 600
saf = ra + nag
End If
If [mar] = 14 And [المرتبة] > 1 And [المرتبة] < 12 Then
zed = (525 * [المرتبة] - 525)
الراتب_الشهري = zed + 12095
العلاوة_السنوية = 525
ta = ([الراتب الشهري] * 9) / 100
ra = [الراتب الشهري] - ta
nag = 600
saf = ra + nag
End If
If [mar] = 15 And [المرتبة] > 11 Then
MsgBox "يجب أن تكون قيمة الدرجة بين 1 و 10"
المرتبة = 1
End If
If [mar] = 15 And [المرتبة] = 1 Then
الراتب_الشهري = 15000
العلاوة_السنوية = 650
ta = ([الراتب الشهري] * 9) / 100
ra = [الراتب الشهري] - ta
nag = 0
saf = ra + nag
End If
If [mar] = 15 And [المرتبة] > 1 And [المرتبة] < 11 Then
zed = (650 * [المرتبة] - 650)
الراتب_الشهري = zed + 15000
العلاوة_السنوية = 650
ta = ([الراتب الشهري] * 9) / 100
ra = [الراتب الشهري] - ta
nag = 0
saf = ra + nag
End If
If [mar] = 33 And [المرتبة] > 20 Then
MsgBox "يجب أن تكون قيمة الدرجة بين 1 و 20"
المرتبة = 1
End If
If [mar] = 33 And [المرتبة] = 1 Then
الراتب_الشهري = 1950
العلاوة_السنوية = 140
ta = ([الراتب الشهري] * 9) / 100
ra = [الراتب الشهري] - ta
nag = 400
saf = ra + nag
End If
If [mar] = 33 And [المرتبة] > 1 And [المرتبة] < 21 Then
zed = (140 * [المرتبة] - 140)
الراتب_الشهري = zed + 1950
العلاوة_السنوية = 140
ta = ([الراتب الشهري] * 9) / 100
ra = [الراتب الشهري] - ta
nag = 400
saf = ra + nag
End If
If [mar] > 30 And [mar] < 33 And [المرتبة] > 16 Then
MsgBox "يجب أن تكون قيمة الدرجة بين 1 و 16"
المرتبة = 1
End If
If [mar] = 32 And [المرتبة] = 1 Then
الراتب_الشهري = 1350
العلاوة_السنوية = 100
ta = ([الراتب الشهري] * 9) / 100
ra = [الراتب الشهري] - ta
nag = 400
saf = ra + nag
End If
If [mar] = 32 And [المرتبة] > 1 And [المرتبة] < 16 Then
zed = (100 * [المرتبة] - 100)
الراتب_الشهري = zed + 1350
العلاوة_السنوية = 100
ta = ([الراتب الشهري] * 9) / 100
ra = [الراتب الشهري] - ta
nag = 400
saf = ra + nag
End If
If [mar] = 31 And [المرتبة] = 1 Then
الراتب_الشهري = 950
العلاوة_السنوية = 70
ta = ([الراتب الشهري] * 9) / 100
ra = [الراتب الشهري] - ta
nag = 400
saf = ra + nag
End If
If [mar] = 31 And [المرتبة] > 1 And [المرتبة] < 16 Then
zed = (70 * [المرتبة] - 70)
الراتب_الشهري = zed + 950
العلاوة_السنوية = 70
ta = ([الراتب الشهري] * 9) / 100
ra = [الراتب الشهري] - ta
nag = 400
saf = ra + nag
End If
[/l]
ماعليش الكود طويل شوي وطلعت روحي فيه بس فعله عجيب ومريح
هذا ويوجد كود خاص بالكادر الصحي لكنه يختلف عن هذا الكود لأن الكادر الصحي يختلف عن سلم الموظفين من أرداد الكود سوف اقوم بكتابته .
هذا وتقبلو منى وافر التقدير والاحترام،،،،
والسلام عليكم ورحمة الله وبركاته ،،،،

