ابوخليل قام بنشر يناير 19, 2018 قام بنشر يناير 19, 2018 اخواني الكرام ، السلام عليكم عندما يكون جهاز الحاسب خاص ببرنامج محدد فاننا نعمل على جعل البرنامج يفتح مع الاقلاع مثلا برنامج حضور بواسطة قارىء البطاقة سنجعل نموذج البداية يفتح على كامل الشاشة وسيكون المؤشر مرتكز على حقل التسجيل المشكلة : ان التركيز احيانا وفي بعض الاجهزة يكون خارج الفورم (على شريط المهام) مما يضطر معه الى النقر على الحقل بواسطة الفأرة السؤال : انا استخدم في نهاية حدث عند تحميل الفورم العبارة التالية : SendKeys "{BS}", False Me.id.SetFocus من اجل نقل التركيز الى الفورم ثم الى حقل id ولكن اكسس لا يقبل السطر الأول فهل من حل أو بديل ؟ db1.rar 1
Amr Ashraf قام بنشر يناير 19, 2018 قام بنشر يناير 19, 2018 السلام عليكم استاذى الفاضل هل المثال التالى قد يساعدك .؟ Dim ReturnValue, I ReturnValue = Shell("CALC.EXE", 1) ' Run Calculator. AppActivate ReturnValue ' Activate the Calculator. 1
ابوخليل قام بنشر يناير 19, 2018 الكاتب قام بنشر يناير 19, 2018 المطلوب نقل التركيز من شريط المهام السفلي الى الفورم shell لتشغيل تطبيق معين .. فهل ينفع AppActivate هنا ؟
ابوخليل قام بنشر يناير 19, 2018 الكاتب قام بنشر يناير 19, 2018 لتوضيح المشكلة والمطلوب عمليا : بعد فتح النموذج سيكون على مستوى كامل الشاشة ، حاول ان تظهر شريط المهام بالاسفل وتنقر بزر الفأرة عليه من اجل يكون التركيز على شريط المهام الآن ما الطريقة للانتقال الى النموذج بدون استخدام الفأرة بالضبط هذا ما يحدث عندي عند فتح البرنامج واريد كود يعيد التركيز الى الفورم علما ان هذه المشكلة لا تحدث الا عند فتح البرنامج حال الاقلاع ، ويتضح من هذا ان لدى وندز حدث عقب فتح برنامجنا 1
Amr Ashraf قام بنشر يناير 19, 2018 قام بنشر يناير 19, 2018 فهمتك وعندى فكرة بحاول تطبيقها الأن اذا نفعت برجعلك بيها
jjafferr قام بنشر يناير 19, 2018 قام بنشر يناير 19, 2018 وعليكم السلام اخوي ابو خليل عادة اذا اردنا ان نضع التركيز على حقل في نموذج آخر ، فإننا يجب ان نضع التركيز على النموذج اولا ، ثم التركيز على الحقل ، واذا اردنا ان نضع التركيز على حقل في نموذج فرعي ، فإننا يجب ان نضع التركيز على النموذج اولا ، ثم النموذج الفرعي ، ثم التركيز على الحقل. وبشوف مرفقك الآن جعفر 1
Amr Ashraf قام بنشر يناير 19, 2018 قام بنشر يناير 19, 2018 (معدل) 2 ساعات مضت, ابوخليل said: لتوضيح المشكلة والمطلوب عمليا : بعد فتح النموذج سيكون على مستوى كامل الشاشة ، حاول ان تظهر شريط المهام بالاسفل وتنقر بزر الفأرة عليه من اجل يكون التركيز على شريط المهام الآن ما الطريقة للانتقال الى النموذج بدون استخدام الفأرة بالضبط هذا ما يحدث عندي عند فتح البرنامج واريد كود يعيد التركيز الى الفورم علما ان هذه المشكلة لا تحدث الا عند فتح البرنامج حال الاقلاع ، ويتضح من هذا ان لدى وندز حدث عقب فتح برنامجنا طيب انا جربت انى اضغط على شريط المهام وطبقت طريقتك وحاولت الالتفاف حول المشكلة عن طريق اغلاق الفورم وفتحه برمجيا فى حدث عند التوقيت ونجحت الفكرة بيعيد التركيز للحقل المطلوب حتى لو التركيز خارج الأكسس DoCmd.Close: DoCmd.OpenForm "نموذج1" بس على حسب طبيعة عمل الفورم انا غير متأكد هل هتنفعك الطريقة ام لا طريقة اخرى فى حدث عند التوقيت ايضا كما اشار استاذ جعفر ولكنى فكرت فيها قبله Forms![äãæÐÌ1].SetFocus Me.id.SetFocus db2.rar تم تعديل يناير 19, 2018 بواسطه Amr Ashraf 1
jjafferr قام بنشر يناير 19, 2018 قام بنشر يناير 19, 2018 السلام عليكم وبعد البحث ، والتجربة: استعمل هذا الكود في وحدة نمطية: Option Compare Database Option Explicit #If VBA7 Then Private Declare PtrSafe Function SetForegroundWindow Lib "user32" (ByVal hWnd As LongPtr) As LongPtr Private hWnd As LongPtr #Else Public Declare Function SetForegroundWindow Lib "user32" (ByVal hWnd As Long) As Long Public hWnd As Long #End If Public Function Activate_This_AccessApp() As Boolean 'Brings the DB to the front of all open windows Call SetForegroundWindow(Application.hWndAccessApp) End Function Public Function Activate_Another_AccessApp() As Boolean 'Brings the DB to the front of all open windows Dim appTarget As Access.Application Set appTarget = GetObject(CurrentDb.Name) ActivateAccessApp = Not SetForegroundWindow(appTarget.hWndAccessApp) = 0 Set appTarget = Nothing End Function ثم ننادي هذه الوحدة النمطية هكذا: Private Sub Form_Load() Call Activate_This_AccessApp DoCmd.Maximize SendKeys "{BS}", False Me.SetFocus Me.id.SetFocus End Sub جعفر 883.Bring_Access_to_Front.mdb.zip 3
Shivan Rekany قام بنشر يناير 19, 2018 قام بنشر يناير 19, 2018 16 ساعات مضت, ابوخليل said: من اجل نقل التركيز الى الفورم ثم الى حقل id 12 ساعات مضت, jjafferr said: عادة اذا اردنا ان نضع التركيز على حقل في نموذج آخر ، فإننا يجب ان نضع التركيز على النموذج اولا ، ثم التركيز على الحقل ، واذا اردنا ان نضع التركيز على حقل في نموذج فرعي ، فإننا يجب ان نضع التركيز على النموذج اولا ، ثم النموذج الفرعي ، ثم التركيز على الحقل. انا انزلت المرفق لكن بعد لا اعرف وين المشكلة لان عندي كل شيء تمام فتحت النموذج والاشارة في الحقل id ... لكن انا استخدم هذه الطريقة لكي نجعل التركيز على الحقل مثلا نريد ان يكون التركيز على نموذج1 في حقل اي دي استخدم هذا من اي نموذج او من اي مكان تستخدمه سيكون فعال حسب تجربتي Form_نموذج1.id.SetFocus لكن يجب ان يكون صفحة الاكواد النموذج اللي تجعل تركيز عليه مثلا (نموذج 1 ) جاهز اي يجب ان يكون اسمهم موجود هناك 1
ابوخليل قام بنشر يناير 20, 2018 الكاتب قام بنشر يناير 20, 2018 جزاكم الله خيرا احبتي وشكرا على المساعدة 17 ساعات مضت, Amr Ashraf said: طريقة اخرى فى حدث عند التوقيت ايضا كما اشار استاذ جعفر ولكنى فكرت فيها قبله فكرة منطقية وجربت ولم يستجب للحدث ولم ينتقل التركيز 15 ساعات مضت, Shivan Rekany said: انا انزلت المرفق لكن بعد لا اعرف وين المشكلة لان عندي كل شيء تمام انا ذكرت في مشاركتي الثانية : اقتباس علما ان هذه المشكلة لا تحدث الا عند فتح البرنامج حال الاقلاع ، ويتضح من هذا ان لدى وندز حدث عقب فتح برنامجنا اي ان اكسس يفتح مع بداية التشغيل ولكن الحاصل ان وندز لديه مهمة اخرى لم تنتهي بعد علما اني ازلت جميع البرامج التي تعمل مع بدء التشغيل ما عدا برنامجي 16 ساعات مضت, jjafferr said: السلام عليكم وبعد البحث ، والتجربة: استعمل هذا الكود في وحدة نمطية: للاسف SendKeys "{BS}", False لم يقبلها اكسس ولا اعلم هل للاصدار دخل في ذلك لذا الغيتها واكتفيت بالوحدة النمطية 32 بت مع كود التركيز : Public Declare Function SetForegroundWindow Lib "user32" (ByVal hWnd As Long) As Long Public hWnd As Long Public Function Activate_This_AccessApp() As Boolean 'Brings the DB to the front of all open windows Call SetForegroundWindow(Application.hWndAccessApp) End Function Private Sub Form_Load() Call Activate_This_AccessApp Me.SetFocus Me.id.SetFocus End Sub مع الانتباه لنقطة مهمة وهي وضع علامة على : تأمين شريط المهام والحمد لله تحقق المطلوب الشكر لاساتذتنا الفضلاء ؛ جعفر .. و شفان .. و عمرو 1
jjafferr قام بنشر يناير 20, 2018 قام بنشر يناير 20, 2018 الحمدلله انك توصلت للمطلوب الامر SendKeys فيه الكثير من المشاكل ، منها انه يطفئ زر Num Lock في الكيبورد ، وحتى اذا ذاكرتي ما تخونني ، في الوندوز Vista تم ايقافه عن العمل ، وهناك برنامج يقوم بعمل هذا الامر وزيادة ، اسمه AutoIt وميزته انه سهل البرمجة ويمكن التحكم به عن طريق command line ، ويمكنه تصنّع ضغط الزر (مثل SendKeys) وحركة الماوس. https://www.autoitscript.com/site/autoit/ في الكود ، واذا اردت استخدام الامر SendKeys جرب تغيير مكان الاسطر ، هكذا: Private Sub Form_Load() DoCmd.Maximize SendKeys "{BS}", False Call Activate_This_AccessApp Me.SetFocus Me.id.SetFocus End Sub جعفر 1
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.