PDA

View Full Version : سوال: باز كردن يك فايل اكسس از درون فايل ديگر باشرايط خاص



stabesh
سه شنبه 17 اسفند 1389, 13:31 عصر
با سلام
هرچه ميگردم راهي براي حل اين مشكل پيدا نميكنم اميدارم شما لطف كنيد و راهنمايي نماييد
ميخام يك فايل اكسس رو از درون يكي ديگه باز كنم طوري كه كاربر متوجه نشه دليلشم اينه كه اگر بخام فرم وگزارشات و ماژولاي اين برنامه رو به بقيه برنامه ها import كنم بيخودي حجم زياد ميشه و خيلي از برنامه ها از اين برنامه استفاده ميكنند در اصل چند تا برنامه اين طوري دارم
راه حلشو پيدا كردم ولي چند تا مشكل داره
1 وقتي در رويداد open

conInfoPath = CuurentDir & "\AssistanceApplications\Info.mdb"
Set appInfo = CreateObject("Access.Application")
'Open database in Microsoft Access window.
appInfo.OpenCurrentDatabase conInfoPath

اين كدو اجرا كنم ديگه وقتي روي كامند كليك كنن فرمو نشون نميده نمونه اول
2 اگر كدهاي بالارو منتقلش كنم در رويداد كليك كامند اگر اون فرم باز شده بسته نشه و روي فرم اول كليك كنه اون وقت همش process جديد مي سازه نمونه دوم
3 براي حل مشكل بالا يك حلقه گذاشتم تا فرم بازه اجرا بشه كه تقريبا 50% cpu رو اشغال ميكنه و سيستمو كند ميكنه نمونه سوم
كلي دنبال توابع api گشتم كه يه جوري تا وقتيكه اين فرم بازه اون برنامه متوقف بشه يا غير فعال ولي ...

با تشكر

alirezabahrami
سه شنبه 17 اسفند 1389, 14:03 عصر
سلام
ابتدا نمونه کاربردی در پست شماره 300 تاپیک زیر را دانلود کن ٰ، ببین خواسته ات را برآورده میکند ؟
موفق باشید
http://barnamenevis.org/showthread.php?53141-دیتا-بیس-ها-و-برنامه-های-کاربردی/page60

stabesh
سه شنبه 17 اسفند 1389, 15:47 عصر
با تشكر
فكر ميكردم اگه مستقيم بازش كنم ديگه ماژولا و توابع كار نميكنه كه با ديدن اين مثال فهميدم اشتباه ميكردم ممنون
http://barnamenevis.org/showthread.php?53141-%D8%AF%DB%8C%D8%AA%D8%A7-%D8%A8%DB%8C%D8%B3-%D9%87%D8%A7-%D9%88-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C&p=841457&viewfull=1#post841457
ولي فرم دوم شما هم با اينكه modal و pop up هست باز هم باعث نميشه برنامه اول غير قابل دسترس بشه نميدونم اصطلاحش چيه
ولي تا وقتي كه برنامه دوم بازه بايد برنامه اول غير فعال باشه

stabesh
سه شنبه 17 اسفند 1389, 16:34 عصر
فكر كنم درست شد شما هم تستش كنيد
نميدونم اگه وسط برنامه error اتفاق بيفته چيكار ميكنه error handling باعث نميشه كاراي عجيب و غريب بكنه
البته هنوز براش نذاشتم اگه error داد لطفا بگيد تايه راه حل براش پيدا كنم
با تشكر

stabesh
چهارشنبه 18 اسفند 1389, 09:26 صبح
با سلام دوباره
مشكل قبلي با پاسكاري بين توابع اين برنامه اون برنامه حل شد ولي اگر بخوايم يه فايل مثلا صوتي يا تصويري باز كنيم و بگيم كه تا وقتي كه اون فايل بازه اين برنامه صبر كنه چي ؟
توابع زيرو امتحان كردم ولي جواب درستي نميدن


Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long


اين آخري بهش ميخورد جواب بده ولي مثالش خيلي عجيب بود متوجه نشدم چيكار ميكنه
باتشكر

stabesh
پنج شنبه 19 اسفند 1389, 07:58 صبح
فكر كنم درست شد شما هم تستش كنيد
نميدونم اگه وسط برنامه error اتفاق بيفته چيكار ميكنه error handling باعث نميشه كاراي عجيب و غريب بكنه
البته هنوز براش نذاشتم اگه error داد لطفا بگيد تايه راه حل براش پيدا كنم
با تشكر
يعني ارزش تست كردن نداشت يا مشكل داره :ناراحت:

stabesh
پنج شنبه 19 اسفند 1389, 09:38 صبح
با سلام دوباره
مشكل قبلي با پاسكاري بين توابع اين برنامه اون برنامه حل شد ولي اگر بخوايم يه فايل مثلا صوتي يا تصويري باز كنيم و بگيم كه تا وقتي كه اون فايل بازه اين برنامه صبر كنه چي ؟
توابع زيرو امتحان كردم ولي جواب درستي نميدن


Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long


اين آخري بهش ميخورد جواب بده ولي مثالش خيلي عجيب بود متوجه نشدم چيكار ميكنه
باتشكر
http://www.mvps.org/access/api/api0004.htm
خوب اينم تنها راهي كه پيدا كردم