اذهب الي المحتوي
أوفيسنا

الردود الموصى بها

قام بنشر

أثناء بحثي ضمن مخزون تطبيقات الاكسس عندي للبحث عن أفكار جديدة أستخدمها كموضوع لأداة جديدة أضيفها لسلسلة الأدوات المساعدة المخصصة وقع بيدي ملف كنت قد حملته منذ سنوات من أحد المنتديات الأجنبية وقد كان عبارة عن تحدي أو لغز غريب وهو عن مربع تحرير وسرد يحتوي على قائمة عناصر ولكن عند فتحه في وضع التصميم لا نجد أي عناصر في مصدر الصف الخاص بالقائمة

والحقيقة أني وأثناء محاولاتي لحل اللغز وجدت أنه في مضمونة يتكون من أكثر من سؤال 

1- كيف تم إضافة عناصر القائمة؟

2- كيف يمكن حذف تلك العناصر؟

3- أين يتم حفظ القائمة؟

وحتى أكون صادقاً في كلامي فقد إستطعت حل السؤالين 1 و 2 أما 3 فلم أعرف إجابته إلا بالبحث في الإنترنت

وبصراحة أني عند إسترجاع ذكريات محاولاتي لحل اللغز إسترجعت المتعة التي وجدتها في المحاولة بحد ذاتها ناهيك عن متعة إيجادي للحل فأتمنى أن تجدوا تلك المتعة أثناء محاولتكم (طبعاً لمن لم يمر عليهم هذا اللغز من قبل)

في الأخير إذا أردتم مني إجابة أي سؤال فأنا مستعد ولكني سأؤجل الإجابة حتى لا تفسد المتعة لمحبي الألغاز

 

لغز.rar

  • Like 2
  • Haha 1
قام بنشر

ههههههههههههههههههههه

طيب نتناقش بعد ما تشوفوا ده

 

C:\Users\000000\Desktop\لغز.accdb                                            Thursday, March 12, 2026

Table: Table1                                                                                        Page: 1



Properties

AlternateBackShade:       95                          AlternateBackThemeC       1
AlternateBackTint:        100                         BackShade:                100
BackTint:                 100                         DatasheetForeTheme        0

DatasheetGridlinesThe     3                           DateCreated:              3/12/2026 2:41:20 AM
DefaultView:              2                           DisplayViewsOnShare       1
FilterOnLoad:             False                       GUID:                     {انا حذفته

HideNewField:             False                       LastUpdated:              3/12/2026 2:43:11 AM
NameMap:                  Long binary data            OrderByOn:                False
OrderByOnLoad:            True                        Orientation:              Left-to-Right

PublishToWeb:             1                           ReadOnlyWhenDiscon        False
RecordCount:              1                           ThemeFontIndex:           1
TotalsRow:                False                       Updatable:                True




Columns

         Name                                                  Type                        Size
         ID                                                    Long Integer                             4

                  AggregateType:             -1
                  AllowZeroLength:           False
                  AppendOnly:                False

                  Attributes:                Fixed Size, Auto-Increment
                  CollatingOrder:            General
                  ColumnHidden:              False

                  ColumnOrder:               Default
                  ColumnWidth:               Default
                  CurrencyLCID:              0

                  DataUpdatable:             False
                  GUID:                      {انا حذفته}
                  OrdinalPosition:           0
                  Precision:                 1033

                  Required:                  False
                  ResultType:                0
                  Scale:                     0

                  SourceField:               ID
                  SourceTable:               Table1
                  TextAlign:                 General


         Field1                                                Short Text                             255
                  AggregateType:             -1
                  AllowZeroLength:           True

                  AppendOnly:                False
                  Attributes:                Variable Length
                  CollatingOrder:            General

                  ColumnHidden:              False
                  ColumnOrder:               Default
                  ColumnWidth:               Default

                  CurrencyLCID:              0
                  DataUpdatable:             False
                  DisplayControl:            Text Box
                  GUID:                      {انا حذفته}


C:\Users\00000\Desktop\لغز.accdb                                            Thursday, March 12, 2026

Table: Table1                                                                                        Page: 2

                  IMEMode:                   0
                  IMESentenceMode:           3
                  OrdinalPosition:           1

                  Precision:                 1033
                  Required:                  False
                  ResultType:                0
                  RowSource:                 "آسيا";"أفريقيا";"أوروبا";"أمريكا الشمالية";"أمريكا الجنوبية";"

                  Scale:                     0
                  SourceField:               Field1
                  SourceTable:               Table1

                  TextAlign:                 General
                  UnicodeCompression:        True



Table Indexes

         Name                                     Number of Fields
         PrimaryKey                               1

                  Clustered:                 False
                  DistinctCount:             1
                  Foreign:                   False

                  IgnoreNulls:               False
                  Name:                      PrimaryKey
                  Primary:                   True

                  Required:                  True
                  Unique:                    True
                  Fields:

                  ID                         Ascending




User Permissions

         admin                      Delete, Read Permissions, Set Permissions, Change Owner,
                                    Read Definition, Write Definition, Read Data, Insert Data, Update





Group Permissions

         Admins                     Delete, Read Permissions, Set Permissions, Change Owner,
                                    Read Definition, Write Definition, Read Data, Insert Data, Update
         Users                      Delete, Read Permissions, Set Permissions, Change Owner,
                                    Read Definition, Write Definition, Read Data, Insert Data, Update

 

  • Like 1
قام بنشر (معدل)

1. كيف تم إضافة عناصر القائمة؟
بنفس الطريقة اللى انا عملت بيها قاعدة وجدول وحقل و نموذج ومربع سرد و كله جديد X جديد واضفت البيانات :biggrin:

2- كيف يمكن حذف تلك العناصر؟
زى ما اضفنا البيانات نخذفها :yes:

3- أين يتم حفظ القائمة؟
فى الجدول  :blink:

 

تم تعديل بواسطه Debug Ace
  • Like 1
قام بنشر (معدل)

الحقيقة أن جميع إجابات الأساتذة صحيحة ولكنها لا تبين لمن هم زي حالاتي على باب الله 😅 طريقة التنفيذ

عموما وببساطة وإجابة على سؤال الأخ @Debug Ace

7 ساعات مضت, Debug Ace said:

وفين اجابة ال 3 اسئلة استاذ ؟

رغم أنك كنت قد أجبتها بهذه الإجابة 

14 ساعات مضت, Debug Ace said:

1. كيف تم إضافة عناصر القائمة؟
بنفس الطريقة اللى انا عملت بيها قاعدة وجدول وحقل و نموذج ومربع سرد و كله جديد X جديد واضفت البيانات :biggrin:

2- كيف يمكن حذف تلك العناصر؟
زى ما اضفنا البيانات نخذفها :yes:

3- أين يتم حفظ القائمة؟
فى الجدول  :blink:

ولكني سأوضح الطريقة ليستوعبها بقية الأعضاء 

السؤال الأول كيفية إضافة العناصر؟

التلميح هنا هو بتغيير الخاصية (Allow Value List Edits أو السماح بتحرير قائمة القيم) الخاصة بمربع التحرير والسرد إلى (Yes أو نعم) لتظهر بهذا الشكل

Untitled.jpg.5dd62eb0123d9a4f7be491ff6237a667.jpg

لتظهر لنا القائمة الواردة في مشاركة الأخ @kanory

18 ساعات مضت, kanory said:

 

1.jpg

ومن خلال هذه القائمة يمكننا إضافة أو حذف العناصر

السؤال الثاني طريقة حذف العناصر؟

كما ذكرت في الجملة الأخيرة وذكر الأخ @Debug Ace في إجابته فيمكننا حذف العناصر من خلال النافذة الأخيرة

السؤال الثالث أين يتم الإحتفاظ بالبيانات؟

كما ذكر الأخ @Debug Ace هي بالفعل في الجدول ولكن أين بالضبط وهذا ما سأوضحه هنا إن شاء الله

يجب أن نضع في إعتبارنا أن عدم ظهور خاصية ضمن نافذة الخصائص لا يعني أنها غير موجودة فمثلاً لو قارنا بين نافذتي الخصائص لحقل Field1 عندما يكون مربع نص أو عندما يكون مربع تحرير وسرد

Untitled2.jpg.108cb3397e903855d1022fe6eb1c9ec5.jpg

هذا معناه أن خاصية (Row Source أو مصدر الصف) هي خاصية من خواص الحقل سواء ظهرت أم لم تظهر في نافذة الخصائص وحتى نتأكد قم بنسخ السطر التالي ولصقه في النافذة الفورية ثم اضغط زر Enter

?CurrentDb.TableDefs("Table1").Fields("Field1").Properties("RowSource").Value

لتظهر لنا النتيجة التالية

Untitled3.jpg.4502fe9079f5590eac660acb4a05c14a.jpg

وهذا معناه أنه يتم الإحتفاظ بعناصر القائمة في خاصية (Row Source أو مصدر الصف) الخاصة بالحقل

إن شاء الله أكون قد وفقت بالشرح

تحياتي

تم تعديل بواسطه منتصر الانسي
  • Like 1
قام بنشر (معدل)
52 دقائق مضت, منتصر الانسي said:

إن شاء الله أكون قد وفقت بالشرح

تمام وفقت ووفيت وكفيت

وبعد اذنك انا حبيت ان اضع الشرح بالتفصيل الممل بعدكم واللى كنت عارفه بس ما حبيت اسبقكم 

اولا لازم نفهم ايه السحر اللى هنا ونفك الطلاسم دى ازاى علشان نفهم اللى بيحصل 

اولا انا عملت Documenter للجدول ده وهو اللى كان فى اول مشاركة علشان بس اعرف هل فى اى حيل مخفية يعنى اختصارا للوقت والجهد

وده اللى وضح كل شئ وهو كالاتى

تم تعريف الـ RowSource في الحقل على مستوى الـ ACE/Jet Engine مباشرة 
تم تغيير DisplayControl إلى Text Box تغيير DisplayControl أخفى القيم من واجهة Lookup Tab أى ان القيم لن تظهر فى وضع التصميم ولكنها ظلت محفوظة في مخطط الجدول ( schema )

طيب عرفنا البيانات وعرفنا فين محفوظة والحمد لله 

نوضح نقطة مهمة الاول قبل ما ننتقل للاضافة والحذف
خاصية الإرث (inheritance) فى خصائص مربع التحرير والسرد يجب ان تكون مفعلة والا لن تظهر القائمة فى وقت العرض Runtime 

طيب الاضافة بطريقة الاستاذ منتصر

او الافضل من خلال كود زى ده اولا الدوال الرئيسية لاضافة او تحديث او ازالة الخصائص

Private Sub AddOrUpdateProperty(fld As DAO.Field, _
                                 propName As String, _
                                 propType As Integer, _
                                 propValue As Variant)
    On Error GoTo ErrHandler

    fld.Properties(propName) = propValue
    GoTo ExitProc

ErrHandler:
    If Err.Number = 3270 Then
        Err.Clear
        On Error GoTo ErrCreate
        Dim prp As DAO.Property
        Set prp = fld.CreateProperty(propName, propType, propValue)
        fld.Properties.Append prp
        GoTo ExitProc
    End If
    MsgBox "خطأ في AddOrUpdateProperty:" & vbCrLf & Err.Description, vbCritical

ErrCreate:
    MsgBox "فشل إنشاء الخاصية " & propName & ":" & vbCrLf & Err.Description, vbCritical

ExitProc:
    Set prp = Nothing
End Sub

Private Sub DeletePropIfExists(fld As DAO.Field, propName As String)
    On Error GoTo ErrHandler

    Dim prp As DAO.Property
    For Each prp In fld.Properties
        If prp.Name = propName Then
            fld.Properties.Delete propName
            GoTo ExitProc
        End If
    Next prp
    GoTo ExitProc

ErrHandler:
    MsgBox "فشل حذف " & propName & ":" & vbCrLf & Err.Description, vbCritical

ExitProc:
    Set prp = Nothing
End Sub


ثانيا : دوال الاضافة والحذف 
 

Public Sub AddHiddenFieldProperties()
    On Error GoTo ErrHandler

    Dim db  As DAO.Database
    Dim tdf As DAO.TableDef
    Dim fld As DAO.Field

    Set db = CurrentDb
    Set tdf = db.TableDefs("TableName")
    Set fld = tdf.Fields("FieldName")
    
    ' DisplayControl = 109 (Combo مخفي) / 110 (Combo ظاهر)
    fld.Properties("DisplayControl") = 109

    AddOrUpdateProperty fld, "RowSourceType", dbText, "Value List"
    AddOrUpdateProperty fld, "RowSource", dbText, _
        """آسيا"";""أفريقيا"";""أوروبا"";""أمريكا الشمالية"";""أمريكا الجنوبية"""

    db.TableDefs.Refresh
    MsgBox "تم إضافة قائمة القيم المخفية بنجاح!", vbInformation
    GoTo ExitProc

ErrHandler:
    MsgBox "فشلت العملية: " & Err.Description, vbCritical

ExitProc:
    Set fld = Nothing
    Set tdf = Nothing
    Set db = Nothing
End Sub

Public Sub DeleteFieldProperties()
    On Error GoTo ErrHandler

    Dim db  As DAO.Database
    Dim tdf As DAO.TableDef
    Dim fld As DAO.Field

    Set db = CurrentDb
    Set tdf = db.TableDefs("TableName")
    Set fld = tdf.Fields("FieldName")

    DeletePropIfExists fld, "RowSource"
    DeletePropIfExists fld, "RowSourceType"

    db.TableDefs.Refresh
    MsgBox "تم الحذف بنجاح!", vbInformation
    GoTo ExitProc

ErrHandler:
    MsgBox "فشل الحذف: " & Err.Description, vbCritical

ExitProc:
    Set fld = Nothing
    Set tdf = Nothing
    Set db = Nothing
End Sub


وبكده نقدر نقول التالى فى الاجابة ببساطة
1. كيف تم إضافة عناصر القائمة؟
من احد الطرق السابقة اما بطريقة الاستاذ
منتصر الانسي  أو من خلال الاكواد السابقة :biggrin:

2- كيف يمكن حذف تلك العناصر؟
اما بطريقة الاستاذ
منتصر الانسي  أو من خلال الاكواد السابقة :yes:

3- أين يتم حفظ القائمة؟
فى الجدول في خصائص الحقل على مستوى الـ ACE/Jet Engine مباشرة و تم تغيير DisplayControl إلى Text Box لتظل محفوظة في مخطط الجدول ( schema ) :clapping:

تم تعديل بواسطه Debug Ace
  • Like 1
قام بنشر
الان, منتصر الانسي said:

نقدر نقول الان إن الإجابة أصبحت بإصدارين إصدار بسيط موجه للأعضاء العاديين وإصدار إحترافي للمحترفين 😅

تحياتى استاذ :fff::clapping:
انا بس حبيت اوضح كل النقاط نظريا وبالاكواد لتعم الفائدة 
 

  • Like 1
قام بنشر
11 ساعات مضت, منتصر الانسي said:

بارك الله فيك اخي @Debug Ace نقدر نقول الان إن الإجابة أصبحت بإصدارين إصدار بسيط موجه للأعضاء العاديين وإصدار إحترافي للمحترفين 😅

انا من العاديين وجدت الحل هنا  Modify Loolups 

ويدويا وبأبسط صورة .. اضافة وحذف كالتالي :

افتح الجدول على العرض وليس التصميم

انقر بزر الفأرة الأيمن على الحقل .. ستظهر قائمة

اختر آخر بند في أسفل القائمة   .. سيظهر لك مربع حوار .. واستمتع .. اكتب ما تريد واحذف ما تريد

انشئ حساب جديد او قم بتسجيل دخولك لتتمكن من اضافه تعليق جديد

يجب ان تكون عضوا لدينا لتتمكن من التعليق

انشئ حساب جديد

سجل حسابك الجديد لدينا في الموقع بمنتهي السهوله .

سجل حساب جديد

تسجيل دخول

هل تمتلك حساب بالفعل ؟ سجل دخولك من هنا.

سجل دخولك الان
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information