بسم الله الرحمن الرحيم
السلام عليكم
لدى طلب للأخوة
المطلوب تثبيت محتويات الخلايا التى يظلل أمامها مربع الإختيار بأخر قيمة مكتوبة فيها عند الضغط على جديد
كما بالصورة فى الفورم
الموضوع عاجل
ولكم جزيل الشكر
وعليكم السلام ورحمة الله...
أخي لعل هذا ينفع... عند إضافة سجل جديد ابدأ بالكتابة والمفروض أن تظهر قيم السجل السابق للحقول المختارة...
الكود المضاف محدد بالتسطير...
والله أعلم.
تم تعديل هذه المشاركة بواسطة أحمد مبارك الحيقي في 27 مارس 2009 في 14:17
السلام عليكم
الأخ الكريم شكرا لمرورك ومجهودك
ولكن هناك مشاكل فى الفورم
عند التعليم على مربع الإختيار على سجل فارغ يعطى " invalid use of null "
وعند الضغط على زرار جديد يعطى الخطأ
"العثور على الحقل المشار الية فى microsoft office access تعذر على التعبير الذى استخدمتة "
ومن فضلك شرح الأكواد المذكورة و معناها وطريقة عملها أو المنطق منها
Dim arrKeep(19, 1) As String Private Sub keep(strChk As String) Dim i As Integer For i = 0 To UBound(arrKeep, 1) - 1 If arrKeep(i, 0) = Me.Controls(strChk).Tag Then If Me.Controls(strChk).Value Then arrKeep(i, 1) = Me.Controls(Me.Controls(strChk).Tag) Else arrKeep(i, 1) = vbNullString End If End If Next i End Sub
Private Sub Form_BeforeInsert(Cancel As Integer)
Dim i As Integer
For i = 0 To UBound(arrKeep, 1)
Me.Controls(arrKeep(i, 0)) = arrKeep(i, 1)
Next i
End Sub
Private Sub chk1_AfterUpdate()
keep ("chk1")
End Sub
Private Sub Form_Load()
Dim i As Integer, j As Integer
For i = 0 To Me.Controls.Count - 1
If Me.Controls(i).Tag = "keep" Then
arrKeep(j, 0) = Me.Controls(i).Name
j = j + 1
End If
Next i
End Subوشكرا جزيلا
وعليكــم السـلام ورحمة الله وبركاتـه..
أخي تجد شرحاً مختصراً للكود مع تصحيح الخطأ في الملف المرفق...
الفكرة هي حفظ قيم مربعات النص المختارة في مصفوفة ثنائية... فكر بالمصفوفة الثنائية كجدول يحوي في حالتنا 20 سطراً (على عدد مربعات النص) وعمودين؛ العمود الأول لحفظ اسم مربع النص، والعمود الثاني لحفظ قيمة مربع النص... عند الانتقال إلى سجل جديد من الممكن -إذا كان مربع الاختيار محدداً- أن نكتب قيمة مربع نص محفوظة في المصفوفة داخل مربع النص في السجل الجديد... نعرف أي قيمة نضع في أي مربع نص لأننا نحتفظ في المصفوفة بأسماء وقيم مربعات النص في نفس السطر. مثلاً
arrKeep(1, 0)
تحوي اسم مربع النص الثاني (الترقيم يبدأ من صفر)، و
arrKeep(1, 1)
تحوي قيمته...
نستخدم هنا خاصية tag لمربعات النص ومربعات الاختيار للمناسبة بين مربع النص ومربع الاختيار... وباقي التفاصيل تجدها في البرنامج...
بالتوفيق...
السلام عليكم
الأخ الكريم ..... شكرا جزيلا لمجهودك ولسعة صدرك
ولكن هناك ملاحظات ...
1- لابد أن أكتب القيمة فى البداية ثم أعلم على مربع الإختيار لتأتى بأخر قيمة ولو علمت على مربع الإختيار ثم كتبة القيمة لا يكتبها
وهذا غير مطلوب .... اريد أن يكتب أولا أو يختار مربع الإختيار أولا سيان
2- عند تعديل القيمة فى مربع النص وضغطت على جديد تأتى بالقيمة الأولى وليست الأخيرة المعدلة وهذا غير صحيح المفروض يأتى بأخر قيمة أمامى فى مربع النص
لكى يحدث القيمة لابد أن أشيل الإختيار من مربع الإختيار ثم أضعة تانى
فبرجاء التكرم بمتابعة هذة الملاحظات
ولك جزيل الشكر على مجهودك وسعة صدرك
وعليكم السلام ورحمة الله...
أخي للتغلب على النقطتين المذكورتين جعلت وضع القيم في المصفوفة يتم عند تعديل النموذج (AfterUpdate)... لعل هذا يكون أفضل والله أعلم...
أرجو الاطلاع على الملف المرفق...