Ahmed.IQ قام بنشر نوفمبر 19, 2020 قام بنشر نوفمبر 19, 2020 السلام عليكم ورحمة الله وبركاته سؤال حول طريقة امكانية استخراج اسماء الازرار داخل النماذج . الكود التالي عنده ادخاله في الاستعلام يقوم بجلب جميع كائنات قاعدة البيانات MSysObjects لو وضع الشرط -32768 اسفل هذا المصدر في الاستعلام وقمت بختيار النوع type و name هنا سيتم استخراج النماذج فقط هل هناك طريقة لاستخراج اسماء الازرار داخل النموذج ؟ مع الشكر للجميع
أفضل إجابة صالح حمادي قام بنشر نوفمبر 19, 2020 أفضل إجابة قام بنشر نوفمبر 19, 2020 السلام عليكم و رحمة الله تعالى و بركاته استخدم الكود التالي سوف يعطيك أسماء جميع الأزرار Dim frm As Form Dim fc As Control Set frm = Me For Each fc In frm.Controls If fc.ControlType = 104 Then MsgBox (fc.Name) End If Next fc Set frm = Nothing 3
Ahmed.IQ قام بنشر نوفمبر 19, 2020 الكاتب قام بنشر نوفمبر 19, 2020 استاذ صالح شكراً لك على الرد . هنا سوف يظهرلي بالتوالي على شكل مسج لو انا محتاج اظهرهم في قائمة منسدلة ؟
husamwahab قام بنشر نوفمبر 19, 2020 قام بنشر نوفمبر 19, 2020 (معدل) السلام عليكم من رخصة استاذي العزيز صالح حمادي تفضل استاذ Ahmed.IQ التعديل علما ان التعديل جرى على نفس كود استاذ صالح Dim frm As Form Dim fc As Control Dim RowData As String Set frm = Me RowData = "" For Each fc In frm.Controls If fc.ControlType = 104 Then RowData = RowData & "," & fc.Name End If Next fc Me.Comb1.RowSource = Right(RowData, Len(RowData) - 1) Set frm = Nothing ملاحظة : Row Source Type = Value List تم تعديل نوفمبر 19, 2020 بواسطه husamwahab 2
Ahmed.IQ قام بنشر نوفمبر 19, 2020 الكاتب قام بنشر نوفمبر 19, 2020 شكرا اخي بارك الله بك وبالاستاذ حامد تمام ضبط معي متشكر
husamwahab قام بنشر نوفمبر 19, 2020 قام بنشر نوفمبر 19, 2020 بالخدمة استاذ Ahmed.IQ والفضل لاستاذ صالح على هذا الكود الجميل 1
صالح حمادي قام بنشر نوفمبر 20, 2020 قام بنشر نوفمبر 20, 2020 15 ساعات مضت, husamwahab said: والفضل لاستاذ صالح على هذا الكود الجميل الفضل لله أولا ثم لك أنت أيضا لأنك أتممت الإجابة و هذه طريقة ثانية لإضافة القيمة لقائمة منسدلة Dim frm As Form Dim fc As Control Set frm = Me For Each fc In frm.Controls If fc.ControlType = 104 Then Me.combo1.AddItem (fc.Name) End If Next fc Set frm = Nothing 2
jjafferr قام بنشر نوفمبر 20, 2020 قام بنشر نوفمبر 20, 2020 السلام عليكم 🙂 ولكي يكتمل الدرس ، وبدل ان نحفظ ونستخدم ارقام لا نعرفها ، اليك قائمة اسماء جميع الكائنات (وبالمسميات اللي نعرفها ، مضافا لها حرفي ac)، من مساعد الاكسس : اقتباس acAttachment 126 Attachment control. acBoundObjectFrame 108 Bound Object Frame control. acCheckBox 106 Check Box control. acComboBox 111 Combo Box control. acCommandButton 104 Command Button control. acCustomControl 119 ActiveX control. acEmptyCell 127 EmptyCell control. acImage 103 Image control. acLabel 100 Label control. acLine 102 Line control. acListBox 110 List Box control. acNavigationButton 130 Navigation Button control. acNavigationControl 129 Navigation control. acObjectFrame 114 Unbound Object Frame control. acOptionButton 105 Option Button control. acOptionGroup 107 Option Group control. acPage 124 Page control. acPageBreak 118 Page Break control. acRectangle 101 Rectangle control. acSubform 112 Subform control. acTabCtl 123 Tab control. acTextBox 109 Text Box control. acToggleButton 122 Toggle Button control. acWebBrowser 128 Web browser control. . وعليه يصبح الكود : Dim frm As Form Dim fc As Control Set frm = Me For Each fc In frm.Controls If fc.ControlType = acCommandButton Then Me.combo1.AddItem (fc.Name) End If Next fc Set frm = Nothing جعفر 2
jjafferr قام بنشر نوفمبر 20, 2020 قام بنشر نوفمبر 20, 2020 16 ساعات مضت, husamwahab said: RowData = RowData & "," & fc.Name اخي حسام ، انا كنت استخدم هذه الطريقة ، الى ان صادفت مشكلة تشغيل البرنامج بين اكسس تنصيب انجليزي ، وآخر تنصيب عربي ، وظهرت القائمة كلها كسطر واحد !! لذلك انصحك ان تستخدم طريقة الاستاذ صالح ، والتي تعمل على جميع الانظمة: Me.combo1.AddItem (fc.Name) جعفر 1
أبوبسمله قام بنشر نوفمبر 20, 2020 قام بنشر نوفمبر 20, 2020 جزاكم الله خيرا اخوانى واساتذتى @صالح حمادي @jjafferr @husamwahab 💐 وشرح وتوضيح اكثر من رائع معلمنا العزيز جعفر بارك الله فيك وبارك لك فى كل ما تحب بالتوفيق اخوانى 1
husamwahab قام بنشر نوفمبر 21, 2020 قام بنشر نوفمبر 21, 2020 14 hours ago, jjafferr said: لذلك انصحك ان تستخدم طريقة الاستاذ صالح ، والتي تعمل على جميع الانظمة كلام سليم جدا استاذ جعفر وشكرا للتوضيح لك ولاستاذنا الجليل استاذ صالح اساتذتي الاعزاء معلومة ارجو تاكيدها او نفيها حسب ما ذكر استاذ جعفر اعلاه وجدت السبب باختيار نوع الفارزة في النظام حيث ان فارزة النظام يجب ان تتطابق مع فارزة الكود سواء كانت منقوطة ام غير منقوطة لكن وجدت عند تبديل الفارزة في الكود الى فارزة منقوطة فالكود يعمل بصورة سليمة دون مراعاة لفارزة النظام فهل هذا الكلام سليم ام لا لان جربته على حاسبة واحدة ونجح ولا اعرف تاثيره على بقية الحاسبات خصوصا للنظام العربي وعذرا للاطالة
jjafferr قام بنشر نوفمبر 21, 2020 قام بنشر نوفمبر 21, 2020 10 ساعات مضت, husamwahab said: كن وجدت عند تبديل الفارزة في الكود الى فارزة منقوطة فالكود يعمل بصورة سليمة دون مراعاة لفارزة النظام فهل هذا الكلام سليم ام لا النظام عندي: الوندوز والاوفيس انجليزي ، و جربت كودك ، بالفاصلة والفاصلة المنقوطة ، والكيبورد باللغة الانجليزية ، والنتيجة كانت صحيحة في كل الحالتين ، ونحصل على قائمة بعدة اسطر بأسماء الكائنات 🙂 cmd_close,cmd_Requery,cmd_Add_New,cmd_Add_New_Between_Dates,cmd_Copy_Between_days cmd_close,cmd_Requery;cmd_Add_New;cmd_Add_New_Between_Dates:cmd_Copy_Between_days اما استعمال الفاصل والفاصلة المنقوطة ، والكيبورد باللغة العربية ، فالنتيجة كانت غير صحيحة في كل الحالتين ، ونحصل على قائمة الكائنات في سطر واحد مثل ماهو ادناه : cmd_close،cmd_Requery،cmd_Add_New،cmd_Add_New_Between_Dates،cmd_Copy_Between_days cmd_close؛cmd_Requery؛cmd_Add_New؛cmd_Add_New_Between_Dates؛cmd_Copy_Between_days . ولكن لا عرف النتيجة عند تجربة هذا الكود في وندوز عربي واوفيس عربي !! جعفر 1
صالح حمادي قام بنشر نوفمبر 21, 2020 قام بنشر نوفمبر 21, 2020 السلام عليكم ونداوز عربي أوفيس عربي النتيجة مع الفاصلة المنقوطة صحيحة في جميع حالات لوحة المفاتيح النتيجة مع الفاصلة غير صحيحة في جميع حالات لوحة المفاتيح تعطي سطر واحد 1
husamwahab قام بنشر نوفمبر 21, 2020 قام بنشر نوفمبر 21, 2020 جزاكم الله خير اساتذتي الاجلاء استاذ jjafferr استاذ صالح حمادي
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.