السلام عليكم ورحمة الله وبركاته
تحية طيبة وبعد ،،،
تم طرح سؤال بنفس الخصوص من أحد الأعضاء الأعزاء على هذا الرابط
ونظرا لأهمية الموضوع أحببت أن أضع المثال بمشاركة جديدة لتعم الفائدة على الجميع ..
تم عمل طريقتين :
الأولى :
يتم من خلالها تحديد الجدول والحقل المطلوب التعديل عليه مباشرة وتم استخدام الكود التالي :
If IsNull(Me.NewCaption) Then
MsgBox "يجب أن تدخل التسمية الجديدة قبل تنفيذ هذا الأمر", vbCritical, "خطأ بتحديد الاسم الجديد"
NewCaption.SetFocus
Exit Sub
Else
CurrentDb.TableDefs("T1").Fields("FIRST").Properties("Caption") = [NewCaption]
DoCmd.SetWarnings False
DoCmd.RunSQL "UPDATE TableCapTion SET TableCapTion.FildeNameCapTion = Forms!F1!NewCaption WHERE (((TableCapTion.FildeName)=[Forms]![F1]![FildN]));"
FIRST_تسمية = DLookup("[FildeNameCapTion]", "TableCapTion", "[FildeName]='" & FIRST.name & "'")
DoCmd.SetWarnings True
Dim Response As Variant
Response = MsgBox("تم تعديل المطلوب بنجاح .... ", vbYesNo, "متابعة التعديلات")
End Ifالكود السابق لتغيير التسمية التوضيحية ولتغيير الكود لوظيفة القيمة الافتراضية بدل الكود السابق بالتالي
If IsNull(Me.NewCaption) Then
MsgBox "يجب أن تدخل التسمية الجديدة قبل تنفيذ هذا الأمر", vbCritical, "خطأ بتحديد الاسم الجديد"
NewCaption.SetFocus
Exit Sub
Else
CurrentDb.TableDefs("T1").Fields("FIRST").Properties("DefaultValue") = [NewCaption]
Dim Response As Variant
Response = MsgBox("تم تعديل المطلوب بنجاح .... ", vbYesNo, "متابعة التعديلات")
End Ifالثانية :
يتم من خلالها التحكم بالتعديل على أي جدول أو حقل تختاره ليتم التعديل عليه سواء كانت للتسمية التوضيحية أو القيمة الأفتراضية ، وقد تم استخدامت عدة أكواد لتنفيذ المهمة :
1- عرض الجداول في Combo Box
SELECT MSysObjects.Name, MSysObjects.Type FROM MSysObjects WHERE (((MSysObjects.Name) Not Like "m*" And (MSysObjects.Name) Not Like "TableCapTion") AND ((MSysObjects.Type)=1));
2- كود عرض الحقول التابعة للجدول في List Box
Private Sub TabName_AfterUpdate()
Dim rs1 As Recordset, x As Integer
Me.FildName.RowSource = ""
Set rs1 = CurrentDb.OpenRecordset([TabName])
For x = 0 To rs1.Fields.Count - 1
Me.FildName.RowSource = Me.FildName.RowSource & rs1.Fields(x).Name & ";"
Next x
rs1.Close
Set rs1 = Nothing
End Sub3- تنفيذ كود التعديل على الجداول حسب الاختيار الذي تم بالكود التالي
Private Sub Command0_Click()
If IsNull(Me.TabName) Then
MsgBox "يجب تحديد الجدول المطلوب قبل تنفيذ الأمر", vbCritical, "خطأ بتحديد اسم الجدول"
TabName.SetFocus
TabName.Dropdown
Exit Sub
End If
If IsNull(Me.FildName) Then
MsgBox "يجب اختيار اسم الحقل قبل تنفيذ هذا الأمر", vbCritical, "خطأ بتحديد اسم الحقل"
FildName.SetFocus
Exit Sub
End If
If IsNull(Me.NewCaption) Then
MsgBox "يجب أن تدخل التسمية الجديدة قبل تنفيذ هذا الأمر", vbCritical, "خطأ بتحديد الاسم الجديد"
NewCaption.SetFocus
Exit Sub
Else
' :ملاحظة
'من خلال السطر التالي تستطيع تنفيذ امر تغيير التسميه بتحديد اسم الجدول والحقل المراد تعديله والاسم الجديد بأمر واحد تضعه اينما تريد
'CurrentDb.TableDefs("ادخل هنا اسم الجدول").Fields("ادخل هنا اسم الحقل المراد تعديله").Properties("Caption") = "ادخل هنا الاسم الجديد "
CurrentDb.TableDefs([TabName]).Fields([FildName]).Properties([PropName]) = [NewCaption]
Dim Response As Variant
Response = MsgBox("تم تعديل المطلوب بنجاح .... هل ترغب بفتح الجدول بالوضع تصميم؟", vbYesNo, "متابعة التعديلات")
If Response = vbYes Then DoCmd.OpenTable Me.TabName, acViewDesign
End If
End Subملاحظة : تم توضيح خطوات التنفيذ من (1) الى (5) بالنموذج .
نسأل الله القبول ومنكم الدعاء ...
تحياتي ..



