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

احتاج كود برمجى لتحديث حقل

مغلقمُجاب
بدأه abdhamid_nasr في 17 نوفمبر 2013 · 3 رد · 690 مشاهدة · في قواعد بيانات Microsoft Access
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

وشكرا 

مرفوع لسيادتكم قاعدة البيانات الافتراضيه بالرابط التالى

 

 

http://d01.megashares.com/dl/mfNsjvE/db1.mdb

#2 أفضل إجابة

جرب هذا الكود

If Me.month = 1 Then
   Me.newsal = Nz(DLookup("fixessal", "emp", "[empid]=" & Me.empid & " AND [month]=12 AND [year]=" & Me.year - 1), "")
 Else
  Me.newsal = Nz(DLookup("fixessal", "emp", "[empid]=" & Me.empid & " AND [month]=" & Me.month - 1 & " AND [year]=" & Me.year), "")
End If

مدونتى:-

احترف الأكسس مع أبو يوسف

متغيب حاليا لانشغالى الشديد

#3
Abo_Yossof كتب:

 

جرب هذا الكود

If Me.month = 1 Then
   Me.newsal = Nz(DLookup("fixessal", "emp", "[empid]=" & Me.empid & " AND [month]=12 AND [year]=" & Me.year - 1), "")
 Else
  Me.newsal = Nz(DLookup("fixessal", "emp", "[empid]=" & Me.empid & " AND [month]=" & Me.month - 1 & " AND [year]=" & Me.year), "")
End If

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

For i = 0 To Me.RecordsetClone.RecordCount - 1

If Me.month = 1 Then

   Me.newsal = Nz(DLookup("fixessal", "emp", "[empid]=" & Me.empid & " AND [month]=12 AND [year]=" & Me.year - 1), "")

 Else

  Me.newsal = Nz(DLookup("fixessal", "emp", "[empid]=" & Me.empid & " AND [month]=" & Me.month - 1 & " AND [year]=" & Me.year), "")

End If

DoCmd.GoToRecord , , acNext

Next i

DoCmd.GoToRecord , , acFirst

End Sub

استاذنك استاذى فى سؤال اخير :

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

#4

اخي عبدالحميد

 

جرب هذا الكود الخاص بـ DAO (انا لم اجربه :( ):

Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("Select * From emp")


For i = 0 To Me.RecordsetClone.RecordCount - 1

If Me.Month = 1 Then
rst.FindFirst "[empid]=" & Me.empid & " AND [month]=12 AND [year]=" & Me.Year - 1
Else
rst.FindFirst "[empid]=" & Me.empid & " AND [month]=" & Me.Month - 1 & " AND [year]=" & Me.Year
End If

Me.newsal = rst!fixessal

DoCmd.GoToRecord , , acNext
Next i

rst.Close: Set rst = Nothing

DoCmd.GoToRecord , , acFirst

 

جعفر

تم تعديل هذه المشاركة بواسطة jjafferr في 19 نوفمبر 2013 في 12:19

هذا الموضوع مغلق.

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