سعيد صواب قام بنشر يناير 20, 2016 قام بنشر يناير 20, 2016 (معدل) السلام عليكم ورحمة الله وبركاته ... فيه سؤال للأخ الرهوي في الرابط التالي يسأل عن البحث داخل مربع التحرير والسرد نفسه بمجرد الكتابة http://www.officena.net/ib/topic/66565-كيف-ابحث-في-مربع-سرد-بجزء-من-الكلمة-؟/ بحثت وحاولت ولم افلح ... وبعد بحث طويل وجدت المطلوب .. في الحقيقة لا اعلم ان كان هناك طرق اخرى ... ولكن بالنسبة لي لم اجد الا هذه الطريقة القوا نظرة على المرفق ان شاء الله يفيدكم .. هذا رابط المرجع ... http://www.tek-tips.com/faqs.cfm?fid=6295 وهذا الكود الأساسي مع الشرح قبل التعديل Private Sub Combo0_Change() ' Function Description: ' Filter a combo box list as the user types, similarly to how application ' launchers like Colibri, AppRocket and LaunchBar opperate. ' e.g. if the list contains the names of U.S. Presidents, and ' the user types "gw," then the resulting SQL WHERE clause will ' look like "Name Like '*g*w*'" and the resulting list ' will include George Washington, George H. W. Bush and ' George W. Bush, among others. ' The order is preserved, so that typing "wg" creates an SQL WHERE ' clause like "Name Like '*w*g*'" and the resulting list would ' include George Washington but not the Bushes. ' This is accomplished by grabbing the text typed by the user in the ' combo box's edit field, creating an SQL SELECT statement from it, ' and finally applying that SQL statement to the combo box's ' .RowSource property. ' Form design settings: ' Set AutoExpand to No ' Column Count 3 ' Keyed on column 1 (record primary key) ' Showing column 2 (user-readable data) column 2 width > 0 ' First and Second column width=0 Dim strText, strFind ' Get the text that the user has typed into the combo box editable field. strText = Me.Combo0.Text ' If the user has typed something in, then filter the combobox ' list to limit the visible records to those that contain the ' typed letters. ' Otherwise (if the field is blank), the user has deleted whatever ' text they typed, so show the entire (unfiltered) list If Len(Trim(strText)) > 0 Then ' Show the list with only those items containing the typed ' letters. ' Create an SQL query string for the WHERE clause of the SQL ' SELECT statement. strFind = "Name Like '" For i = 1 To Len(Trim(strText)) If (Right(strFind, 1) = "*") Then ' When adding another character, remove the ' previous "*," otherwise you end up with ' "*g**w*" instead of "*g*w*." ' This has no apparent impact on the user, but ' ensures that the SQL looks as intended. strFind = Left(strFind, Len(strFind) - 1) End If strFind = strFind & "*" & Mid(strText, i, 1) & "*" Next strFind = strFind & "'" ' Create the full SQL SELECt string for the combo box's ' .RowSource property. strSQL = "SELECT tName.nameKey, tName.Name, SortOrder FROM tName Where " & _ strFind & " ORDER BY SortOrder;" '' NOTE: to remove the order requirement, such that typing "wg" '' and "gw" return the same results, the SQL WHERE clause needs '' to look like "Name Like '*w* AND *g*'." '' The code above should be changed as follows: ''For i = 1 To Len(Trim(strText)) '' strFind = strFind & "Name Like '*" & Mid(strText, i, 1) & "*' And " ''Next '' ''strSQL = "SELECT tName.nameKey, tName.Name, SortOrder from tblApps Where " & _ ''Left(strFind, Len(strFind) - 5) & " Order By SortOrder" ' Filter the combo list records using the new SQL statement. Me.Combo0.RowSource = strSQL Else ' Show the entire list. strSQL = "SELECT tName.nameKey, tName.Name, tName.SortOrder FROM tName ORDER BY tName.SortOrder; " Me.Combo0.RowSource = strSQL End If ' Make sure the combobox is open so the user ' can see the items available on list. Me.Combo0.Dropdown End Sub اتمنى من خبرائنا واعضاء المنتدى الكرام القاء نظرة على المرفق وعلى الكود كامل لو فيه اضافات او تعديلات . وبالتوفيق للجميع . Search_inside_Combo.rar تم تعديل يناير 20, 2016 بواسطه سعيد صواب 8
محمد سلامة قام بنشر يناير 20, 2016 قام بنشر يناير 20, 2016 (معدل) تحياتي اخي سعيد انا لم اطلع علي المرفق ولكن اذا كنت تقصد البحث داخل مربع التحرير والسرد نفسه فهذه الميزة موجود في مربع التحرير والسرد وبدون اكواد... جرب اعمل مربع تحرير وسرد جديد واجعل مصدره اي جدول وجرب تكتب مثلا حرف الباء (ب) اذا كان موجود اي شئ بهذا الحرف سوف يظهر لك واذا كان موجود اكثر من مرة ادخل حرف اخر بعد الباء(ب) وسوف يقوم بتصفية نتيجة البحث اما هذا السطر الاخير من الكود اعلاه Me.Combo0.Dropdown فهي لفتح مربع التحرير والسرد عند التركيز فيه وكل هذا بدون اكواد هذه والله اعلم ولا اقصد اخي الكريم التقليل من مجهودك بالتوفيق تم تعديل يناير 20, 2016 بواسطه محمد سلامة
سعيد صواب قام بنشر يناير 20, 2016 الكاتب قام بنشر يناير 20, 2016 حياك الله اخي محمد ... ابدا بالعكس لولا النقاش لما اثمرت اي فكره الذي تقصده انت هو عند كتابة أالحرف الأول من الحقل .. مثلا لو كان ضمن الكمبو بو كس حقل بإسم شركة محمد سلامة .. لو كتبت ش سوف تظهر ولكن لو كتبت م لن تظهر ... البحث هو بجزء من الكلمة وليس بدايتها . هذا مرفق بتنسيق 2003 بالتوفيق للجميع . Search_inside_Combo 2003.rar 3
محمد سلامة قام بنشر يناير 20, 2016 قام بنشر يناير 20, 2016 الان فهمتك عفوا اخي سعيد سوف اطلع علي المرفق
omarazh قام بنشر ديسمبر 19, 2017 قام بنشر ديسمبر 19, 2017 سلمت يداك يا أخ سعيد على المجهود الرائع لكني عندما أحاول النزول بالقائمة بواسطة الأسهم سرعانما يخزن أول صنف في القائمة و يلغي نتيجة الفلترة وأنا أريد النزول للأصناف التي تحته فهل من حل منك أو من باقي الخبراء ولكم جزيل شكري
بشير الكيلاني قام بنشر ديسمبر 20, 2017 قام بنشر ديسمبر 20, 2017 سلمت يداك يا أخ سعيد , العمل رائع و حبذا لو تتم التصفية في نموذج فرعي و يتم اختيار القيمة بالنقر أو الضغط على زر Enter لإدخالها في الجدول ولك جزيل الشكر
طاهر الوليدي قام بنشر يناير 2, 2018 قام بنشر يناير 2, 2018 تسلم عمل ممتاز وياريت يطور ويكون بنفس كومبو بحث جوجل بدون ارفاق جدول فرعي كماهو المعتاد
يونس محمد الخطابي قام بنشر يناير 12, 2018 قام بنشر يناير 12, 2018 السلام عليكم ورحمة الله وبركاته - هل من الممكن تعديل التصميم بحيث يكون مصدر نموذج البحث هو استعلام وليس جدول . تحياتي لكم جميعا
يوسف السيد قام بنشر مايو 1, 2018 قام بنشر مايو 1, 2018 الاستاذ الفاضل :سعيد صواب طريقة البحث ممتازة جدا جدا ولكن لماذا عندما يتم التصفية علي 3 اختيارات مثلا وتحرك السهم لاسفل لتختار منهم يختار الاختيار الاول فقط ويتجاهل القائمة
صالح حمادي قام بنشر مايو 12, 2018 قام بنشر مايو 12, 2018 في ٢٠/١/٢٠١٦ at 16:39, سعيد صواب said: في الحقيقة لا اعلم ان كان هناك طرق اخرى ... ولكن بالنسبة لي لم اجد الا هذه الطريقة السلام عليكم حياك الله يا أستاذ @سعيد صوابيا منارة المنتدى هذه طريقة أخرى أضعها بين أيديكم البحث.rar 2 2
MEKMOHAMMEK قام بنشر ديسمبر 22, 2020 قام بنشر ديسمبر 22, 2020 السلام عليكم أرجو منكم مساعدة أريد البحث من خلال كومبوبوكس في ورقتين أي عند كتابة الأسم او الرقم في كومبوبوكس1 يظهر البحث الورقة 1 في طيكسبوكس من 1 إلى 36 وبحث الورقة2 في textbox من 37 إلى 64 ومن ثم حفظ في ورقة 3 ولكم جزيل الشكر mohammek@gmx.fr
ahmedanmarz12 قام بنشر مارس 27, 2021 قام بنشر مارس 27, 2021 عمل اكثر من رائع اشكر اليد التي عملت واجتهدت بهذا العمل المميز وفقكم الله لكل خير
nssj قام بنشر يناير 16, 2022 قام بنشر يناير 16, 2022 في ١/٥/٢٠١٨ at 12:01, يوسف السيد said: طريقة البحث ممتازة جدا جدا ولكن لماذا عندما يتم التصفية علي 3 اختيارات مثلا وتحرك السهم لاسفل لتختار منهم يختار الاختيار الاول فقط ويتجاهل القائمة نعم .. طريقة البحث ممتازة، لا سيما وأنه يبحث داخل الـ (comboBox) نفسه وليس عبر مربع نص خارجي، ثم يخرج النتائج مع التغيير أثناء الكتابة وليس بعد التحديث أو عند الخروج أما بخصوص التنقل بين النتائج، فقد تمكنت بفضل الله من حل هذه المشكلة بوضع هذا الكود في حدث (عند مفتاح للأسفل) If KeyCode = 40 And Shift = 0 Or KeyCode = 38 And Shift = 0 Then G = 1 End If مع إضافة بسيطة في أول كود البحث كما في الملف المرفق فأصبح يتنقل بين النتائج باستخدام مفتاحي: للأعلى وللأسفل فأرجو أن يكون تصرفي هو الحل الصحيح ولدي ملاحظة أخرى بخصوص هذا الكود: فهو يبحث عن الحروف حتى لو كانت متتالية في أكثر من كلمة، وبالنسبة لي فالمطلوب البحث عن الحروف متتابعة أو متلاصقة في نفس الكلمة يعني عند طلب البحث عن (زج) تخرج النتائج بهذا الشكل والنتيجة الأخيرة غير مطلوبة بالنسبة لي، ولكنه يبحث عن الحروف المدخلة حتى إذا لم تكن متتابعة في نفس الكلمة، لذلك أخرج النتيجة الأخيرة لأنه وجد حرف (ز) في كلمة (زاهد) ثم وجد حرف (ج) في كلمة (للتجارة) وهذه الطريقة في البحث قد تناسب غيري بل قد تكون بغيته المنشودة، لكن بالنسبة لي فالنتيجة المطلوبة هي وتمكنت بفضل الله من الوصول إليها بعد عدة تجارب ومحاولات في حذف بعض أسطر الكود .. حذفتها من باب التجربة لأني بصراحة لا أعلم ماذا تعني ؟؟ 😅 فلست من أهل الاختصاص وإنما من أهل التجارب والمحاولات 🙂 ونتيجة هذه التجارب في نموذج (Search_combo 2) في نفس الملف المرفق، لعل أحد الإخوة من ذوي الخبرة ينظر فيه ويعطينا رأيه .. لأني عندما طبقت هذا الكود في قاعدة بياناتي واجهتني بعض المشاكل البسيطة في تظليل الكلمة المدخلة في مربع البحث .. فقد تكون هناك طريقة أفضل للوصول للمطلوب: البحث عن الحروف متتابعة في نفس الكلمة Search_inside_Combo X.accdb 3
MoshAna قام بنشر يونيو 20, 2022 قام بنشر يونيو 20, 2022 السلام عليكم ورحمة الله وبركاته الاخوة الاعزاء موضوع شيق ونتيجة مثمرة وفقكم الله جميعا بس هل فيه كود يعطي نفس النتيجة لـ Combobox فى اكسيل بدون الاستعانة بـ Listbox ارجو الافادة شكرا جميعا على المجهور الرائع
حامل المسك قام بنشر يونيو 25, 2023 قام بنشر يونيو 25, 2023 السلام عليكم ورحمة الله،، وعشر مباركات أيها الكرام،، وتقبل الله منكم صالح الأعمال،، ولعل مما يذكر أن يستمر العطاء سنوات وسنوات مع ذكر صالح لمن كان خلف التعليم والتعلم،، فهذا الموضوع منذ سنوات يعيش بين فترة وأخرى مزودًا بجميل المعرفة.. حتى كنا معه اليوم من عام 2016 مع الخبير @سعيد صواب واكتمل العقد بمشاركات الخبراء حتى كان من آخرها @nssj الذي اكتمل العقد بجمال فكرته،، فبدءا نسأل الله لمشرفينا الكرام البركة والعون والتوفيق والسداد،، وطبقت المثال على نماذج مستمرة وعمل بشكل جزئي إذ لم يعمل معي مفتاح السهم لأسفل وكذلك لم يتم وضع البيانات في المكان المخصص لها كما في حدث بعد التحديث.. فهل بالإمكان التعديل على المثال لتكتمل الفائدة،، مع صادق الدعوات للجميع،، نماذج مستمرة.accdb
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.