با عرض سلام
چطور در vba می توان دکمه وسط mouse را کنترل کرد
از توجه شما سپاسگزارم
با عرض سلام
چطور در vba می توان دکمه وسط mouse را کنترل کرد
از توجه شما سپاسگزارم
در اکسس 2002 XP رخداد ماوس اسکرول وجود دارد
متشکرم از توجه شما
در اکسس 97 چطور ؟
اگر نه - آیا اکتیو ایکسی سراغ دارید که scroll در دکمه وسط موس را کنترل کند ؟
موفق باشید .
در VB6 امتحان کرده ام ولی جوابی نگرفته ام، فکر هم نمی کنم اکتیو ایکسی بتوانی پیدا کنی، ولی حال چرا حتماً اکسس 97 و همین طور چگونه استفاده ای برای دکمه وسط ماوس دارید!
چون در فرمهای اکسس 97 وقتی اسکرول موس (دکمه وسط) حرکت میکند رکوردهای روی فرم هم به حرکت در می آیند ومن می خواهم که اسکرول را کنترل نمایم
چون در فرمهای اکسس 97 وقتی اسکرول موس (دکمه وسط) حرکت میکند رکوردهای روی فرم هم به حرکت در می آیند ومن می خواهم که اسکرول را کنترل نمایم
سلام
من در اکسس 2003 نیز به این مورد برخورد کرده ام و نتوانستم مشکل را حل کنیم چون با دکمه وسط موس اسکرول بر روی رکوردها اتفاق می افتد در صورتی که در برنامه نمی خواهم این اتفاق بیفتد لطفا اگر کسی در این مورد اطلاعاتی دارد مرا یاری نماید
این رخداد کجا هست؟نوشته شده توسط منصور بزرگمهر
اسم دقیق پروپرتی مورد اشاره On Mouse Wheel هستش.
Private Sub Form_MouseWheel(ByVal Page As Boolean, ByVal Count As Long) 8
End Sub 8
من یه راه مسخزه پیدا کردم ببینید شاید به دردتون خورد
Private Sub Form_MouseWheel(ByVal Page As Boolean, ByVal Count As Long)8
8 If Count = -3 Then
8 DoCmd.GoToRecord , , acNext
8 ElseIf Count = 3 Then
8 DoCmd.GoToRecord , , acPrevious
8 End If
End Sub8
سلامنوشته شده توسط شاپرک
از فایلتون واقعا خوشم اومد خیلی جالب بود .میشه لطف کنید توضیح بدید بعد از اینکه فایل DLL رو در پوشه windows کپی کردم چکار کنم؟
با تشکر فراوان و آرزوی موفقیت روزافزون
شاپرک جان بهترین روش اینه که برنامه هاتو unbound بنویسی تا هم کنترل بیشتری روش داشته باشی و هم اینکه کمک کنی اطلاعات درست و بصورت کامل وارد بشه منظورم اینه وقتی bound کار میکنی وقتی کاربر یه فیلد رو وارد کنه براحتی میتونه به رکورد بعدی بره و این یعنی اضافه شدن یه عالمه رکورد ناقص و به همین علت گزارش های پر ایراد.
منی که نام شراب از کتاب می شستم
زمانه کاتب دکان می فروشم کرد.
اول بگم که این برنامه من نبود من خودمم گشتم و از سایت دیگه پیداش کردم اما برام جالب بود آخه هیچ کس جوابی براش نداشت .
جناب Zardros : میتونی تو همون مسیری که برنامه ات هست کپی کنی من امتحان کردم
ممنونم از راهنمایی شما آقای صارمی بله کاملا درسته من دقیقا به همین نتیجه رسیدم امیدواریم بتونیم در این زمینه از تجربیات شما استفاده کنیم *** مثل همیشه ***
آخرین ویرایش به وسیله شاپرک : دوشنبه 23 آبان 1384 در 07:58 صبح
می شه یه بزرگوار در مورد unbound یه توضیحی بده . آیا منظور اینه که یه فرم از روی جدولمون بسازیم اما اجزای توی فرم رو controlSource ش رو تعین نکنیم و وقتی فرم کامل شد توی یه دگمه save اول recordsource رو تعیین کنیم و ....نوشته شده توسط sarami
اگه برداشت من غلطِ لطفا واضحتر یکی عنایت بکنه ممنون می شم .
خسته نباشید .لطفا کمکم کنید
خوب پس آخرش چی شد ؟برای این پروپرتی On Mouse Wheel چیکار کنیم؟
شاپرک جان من روش شما رو متوجه نشدم.میتونی راحت تر توضیح بدی
شاید با استفاده از رخداد On Mouse Wheel بتونی مشکلت رو حل کنی.
اگر راهش رو پیدا کردی به منم بگو!
من روش شاپرک رو تست کردم اما جواب نداد
اگه دوستانم راهی بلدن ممنون میشم
تو این سایتها توضیحاتی داده :
http://www.databasedev.co.uk/disable_mousewheel.html
http://www.lebans.com/mousewheelonof...MouseWheelHook
آخرین ویرایش به وسیله hasanr : یک شنبه 08 فروردین 1389 در 14:55 عصر
سرانجام با مطالعه همون سایتهایی که تو پست قبلی گفتم موفق شدم :
فایل ضمیمه را دانلود کنید ( یا می توانید فایل جناب شاپرک را از پست 14 دانلود کنید )
فایل MouseHook.dll را به مسیر C:\WINDOWS\system (یا به همان جایی که فایل برنامه تان قرار دارد) کپی کنید
فایل برنامه خود را باز کنید و ماژول modMouseHook را از فایل اکسس ضمیمه شده ، به فایل خودتان import کنید
این هم کدهای مربوط به Load و Unload فرمی که می خواهید دکمه وسط موس در آن فرم غیر فعال شود :
Private Sub Form_Load()
Dim blRet As Boolean
blRet = MouseWheelOFF(False)
End Sub
Private Sub Form_Unload(Cancel As Integer)
Dim blRet As Boolean
blRet = MouseWheelON
End Sub
آخرین ویرایش به وسیله hasanr : یک شنبه 08 فروردین 1389 در 14:54 عصر
ساده ترين روشي كه پيدا كردم..........يك كد بر روي رخداد open فرم...و چند تا ماژول
من راهها بالا رو امتحان کردم
روشهایی که به api ها مربوط می شه توی همه ورژن ها کار نمی کنه
ولی روشی که توی پست 12 ارائه شده عالیترین و راحت ترین روشه حتی توی office 2013 اونم 64 بیتی.
من با کمی اصلاح دوباره می ذارمش
Private Sub Form_MouseWheel(ByVal Page As Boolean, ByVal Count As Long)
If Count >= 1 Then
DoCmd.GoToRecord , , acNext
ElseIf Count <= -1 Then
DoCmd.GoToRecord , , acPrevious
End If
End Sub
در روش فوق مقدار count رو از تعداد wheel mouse که توی کنترل پنل قایل دسترس هست گرفته می شه که من اون رو به 1 و 1- تغییر دادم تا حتی اگه کسی اومد مقدار رو کم و زیاد هم کرد (برای تغییر حساسیت) بازم کد کار کنه
در ضمن با عوض کردن - و بی علامت 1 در حقیقت با بالا و پایین بردن اسکرول موس فرم به رکورد بعدی و قبلی می رود
که من بنابر نیاز خودم کد رو در پست 12 برعکس کردم
ممنون از فرستنده با درایت پست 12