السلام عليكم ورحمة الله وبركاته
نفرض أنك تشتغل على نموذج بصورة شبه يوميه وتريد عندما تفتح النموذج أن يعود بك إلى أخر سجل قمت بإدخاله أو تعديله .
المثال التالي يحل المشكله ان شاء الله وهو يعتمد على نموذج يحتوي على حقل ترقيم تلقائي فريد باسم ( CustomerID )
الشـــرح:-
أولاً : أنشىء جدول باسم "tblSys" يتكون من الثلاث حقول التالية :
Variable (حقل نصي حجمه 20 حرف)
Value (حقل نص حجمه 80 حرف)
Description (حقل نص حجمه 255 حرف)
ثانياً: ضع الكود التالي في حدث عند إلغاء التحميل للنموذج المراد إستخدامه
Sub Form_Unload (Cancel As Integer)
Dim rs As DAO.Recordset
If Not IsNull(Me.CustomerID) Then
Set rs = CurrentDb().OpenRecordset("tblSys", dbOpenDynaset)
With rs
.FindFirst "[Variable] = 'CustomerIDLast'"
If .NoMatch Then
.AddNew
![Variable] = "CustomerIDLast"
![Value] = Me.CustomerID
![Description] = "Last customerID, for form " & Me.Name
.Update
Else
.Edit
![Value] = Me.CustomerID
.Update
End If
End With
rs.Close
End If
Set rs = Nothing
End Sub
ثالثاً: ضع الكود التالي في حدث عند التحميل للنموذج المراد إستخدامه
Sub Form_Load()
Dim varID As Variant
varID = DLookup("Value", "tblSys", "[Variable] = 'CustomerIDLast'")
If IsNumeric(varID) Then
With Me.RecordsetClone
.FindFirst "[CustomerID] = " & varID
If Not .NoMatch Then
Me.Bookmark = .Bookmark
End If
End With
End If
End Sub
ملاحظة: أضف المرجع DAO 3.6 إلى قائمة المراجع لديك في القاعدة لكي تعمل القاعدة بالشكل المطلوب.
للإستيضاح مرفق مثال على ذلك.
والله الموفق
(المرجع أحد المواقع الأجنبية)
Last_update_Recorde.zip