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

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

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

السلام عليكم ورحمة الله وبركاته 

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

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

أرجو المساعدة في ذلك وإذا في أكثر من طريقة يرجى شرحها ، علماُ انني لا يوجد لدي ملف محدد لأقوم بإرساله ولكن هي تجارب متفرقة . 

وشكراً 

 

test (2).zip

تم تعديل بواسطه Abujaber
إرفاق ملف
قام بنشر
4 دقائق مضت, Abujaber said:

السلام عليكم ورحمة الله وبركاته 

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

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

أرجو المساعدة في ذلك وإذا في أكثر من طريقة يرجى شرحها ، علماُ انني لا يوجد لدي ملف محدد لأقوم بإرساله ولكن هي تجارب متفرقة . 

وشكراً 

 

وعليكم السلام ورحمة الله وبركاته

اهلا وسهلا بك بيننا

يفضل في هذه الحالة ان ترسل مرفق للتعديل عليه

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

me.txt = me.menu.column(1)

من المعروف ان قائمة السر تحوي عدة اعمدة داخلها لذلك يمكنك استخدام ترتيب الاعمدة في قائمة السرد في اختيار قيمة اي عمود ستنتقل الى txt

العمود الاول رقمه 0

الثاني 1

الثالث 2 وهكذا

 

قام بنشر

اولا اهلا بك بين اخوانك فى المنتدى
 

وبعد اذن اخى الحبيب الاستاذ @عبد الله قدور 

ليس بالضرورة ان يحتوى مربع السرد على عدة اعمدة

هذا اولا

ثانيا تعالى نشوف خصائص مربع السرد قبل الاجابة

قد يكون عمود واحد 

قد يكون اكثر من عمور 

قد يكون قيمته واحدة فقط 

قد يكون متعدد القيم 

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

  • Like 1
قام بنشر

شكراً لسرعة الرد والاهتمام وهذا ليس بالغريب على المحسنين

لقد قمت بإضافة ملف للعمل الذي أريد أن أقوم به يرجى مشاهدته والرد لطفاُ 

قام بنشر

شوف يا سيدى انا كتبت دالة فى مودبول يعنى فى وحدة نمطية علشان نقدر نستخدمها فى اى مكان وبكل سهولة 
معلش يبدو انه عند التعامل معى من الوهلة تعتبرنى معقد :wink2:

ولكن انا اتعب قلبلا فى البداية عند بلورة الفكرة واثناء كتابتها ولكن النتيجة بعد ذلك تاتى بافضل الثمار 

لقد قمت بكتابة هذه الدالة 
 

Option Compare Database
Option Explicit

' This function automatically fills a text box based on the value of a combo box.
' Parameters:
' form: Reference to the form containing the controls.
' comboBoxName: Name of the combo box control.
' Optional textBoxName: Name of the text box control to be filled automatically. Default is "TextBoxName".
' Optional multiSelect: Boolean to indicate if the combo box allows multiple selections. Default is False.
' Optional columnIndex: Index of the column to be used if the combo box has multiple columns. Default is 0.
Public Sub FillTextBoxFromComboBox(Form As Form, comboBoxName As String, Optional textBoxName As String = "TextBoxName", Optional multiSelect As Boolean = False, Optional columnIndex As Integer = 0)
'    On Error GoTo ErrorHandler

    ' Reference to the combo box control
    Dim comboBox As comboBox
    Set comboBox = Form.Controls(comboBoxName)

    ' Reference to the text box control
    Dim textBox As textBox
    Set textBox = Form.Controls(textBoxName)

    ' Check if the combo box contains items
    If comboBox.ListCount > 0 Then
        ' Single column case
        If comboBox.ColumnCount = 1 Then
            ' Check if multi-select is enabled
            If Not multiSelect Then
                ' Single value
                textBox.Value = comboBox.Value
            Else
                ' Multi-value
                Dim selectedItems As String
                Dim i As Integer
                For i = 0 To comboBox.ItemsSelected.Count - 1
                    selectedItems = selectedItems & comboBox.ItemData(comboBox.ItemsSelected(i)) & "; "
                Next i
                ' Remove the trailing semicolon
                If Len(selectedItems) > 2 Then
                    selectedItems = Left(selectedItems, Len(selectedItems) - 2)
                Else
                    selectedItems = ""
                End If
                textBox.Value = selectedItems
            End If
        ' Multiple columns case
        ElseIf comboBox.ColumnCount > 1 Then
            ' Check if multi-select is enabled
            If Not multiSelect Then
                ' Single value
                textBox.Value = comboBox.Column(columnIndex) ' Adjust the column index here as needed
            Else
                ' Multi-value
                For i = 0 To comboBox.ItemsSelected.Count - 1
                    selectedItems = selectedItems & comboBox.Column(columnIndex, comboBox.ItemsSelected(i)) & "; " ' Adjust the column index here as needed
                Next i
                ' Remove the trailing semicolon
                If Len(selectedItems) > 2 Then
                    selectedItems = Left(selectedItems, Len(selectedItems) - 2)
                Else
                    selectedItems = ""
                End If
                textBox.Value = selectedItems
            End If
        End If
    End If

'    Exit Sub
'
'ErrorHandler:
'    Select Case Err.Number
'        Case 5
'            MsgBox "Error 5: Invalid procedure call or argument. Check if the selectedItems length is valid.", vbExclamation, "Error in FillTextBoxFromComboBox"
'        Case 13
'            MsgBox "Error 13: Type mismatch. Ensure the correct data types are used.", vbExclamation, "Error in FillTextBoxFromComboBox"
'        Case 91
'            MsgBox "Error 91: Object variable or With block variable not set. Ensure all controls are properly referenced.", vbExclamation, "Error in FillTextBoxFromComboBox"
'        Case 424
'            MsgBox "Error 424: Object required. Ensure all controls exist on the form.", vbExclamation, "Error in FillTextBoxFromComboBox"
'        Case Else
'            MsgBox "Error " & Err.Number & ": " & Err.Description, vbExclamation, "Error in FillTextBoxFromComboBox"
'    End Select
End Sub


على ان يتم استدعاء الدالة بالشكل التالى
 

' Replace "ComboBoxName" and "TextBoxName" with the actual names of your controls
' Call FillTextBoxFromComboBox(Me, "ComboBoxName", "TextBoxName", False, 1) ' Adjust parameters as needed



فى اى نموذج ومع اى مربع تحرير وسرد وع اى مربع نص مهما كانت الاسماء من خلال الكود المناسب تبعا للحالات التى شرحتها لك قبل قليل حسب مربع التحرير والسرد
كل ما عليك فقط تغيير اسم ComboBoxName فى اكواد الاستدعاء باسم مربع السرد الذى تريد التعامل معه باحضار بياناته
وكذلك تغيير اسم TextBoxName  باسم مربع النص 

' Single Column, Single Value:
Call FillTextBoxFromComboBox(Me, "ComboBoxName")

' Single Column, Multi-Value:
Call FillTextBoxFromComboBox(Me, "ComboBoxName", "TextBoxName", True)

' Multiple Columns, Single Value:
Call FillTextBoxFromComboBox(Me, "ComboBoxName", "TextBoxName", False, 1) ' Column index 1

' Multiple Columns, Multi - Value:
Call FillTextBoxFromComboBox(Me, "ComboBoxName", "TextBoxName", True, 1) ' Column index 1


مرفق للتجربة 

 

Get Value Combo Box Multi Select.accdb

قام بنشر

شكراً لسرعة الرد والاهتمام وهذا ليس بالغريب على المحسنين

لقد قمت بإضافة ملف للعمل الذي أريد أن أقوم به يرجى مشاهدته والرد لطفاُ 

أخي العزيز أبو جودي

وفقك الله وأحسن إليك وجزاك الله خيراً 

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

وشكراً 

 

 

test (2).zip

قام بنشر

طيب المرفق 3 الطريقة التقليدية العادية 
المرفق 4 بطريقة الدالة التى قمت بشرحها قبل قليل 

اولا يجب تعديل مصدر بيانات مربع السرد ليحتوى على قيم الاشتراك 
 

test (3) .accdb test (4) .accdb

قام بنشر

أشكرك جزيل الشكر أخي عبد الله قدور هذا هو المطلوب ، كما أشكر كل من ساهم وأبدى رأيه وقام بتقديم المساعدة ، وجزاكم الله خير جميعا

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

 

قام بنشر
في 30‏/5‏/2024 at 14:16, عبد الله قدور said:

السلام عليكم

اليك الملف بعد التعديل

 

test (2).zip 876.1 kB · 6 downloads

أشكرك جزيل الشكر أخي عبد الله على الاهتمام وأتمنى لك مزيد من التقدم . 

 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

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

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

Important Information