PDA

View Full Version : سوال: اجرای یک برنامه بدون انتخاب آن برنامه در قسمت رفرنس ها



abas1388
چهارشنبه 21 بهمن 1394, 22:07 عصر
سلام
دوستان حرفه ای استحضار دارند که برای اجرای بعضی از برنامه ها باید آن را در قسمت رفرنس ها انتخاب نمود . بطور مثال برای ارتباط با برنامه اکسل باید آن را از قسمت رفرنس ها انتخاب نمائیم . مثلاً اگر آفیس نصب شده بر روی سیستم 2007 باشد باید اکسل 12 را در این قسمت انتخاب نمائید یا اگر آفیس 2010 باشد باید اکسل 14 را انتخاب نمائید . حال تصورکنید که در برنامه ای که تهیه کرده اید یک جائی برای استفاده از برنامه اکسل در نظر گرفته اید و آفیس نصب شده بر روی سیستم هم آفیس 2010 باشد که ناچارید در قسمت رفرنس ها اکسل 14 را انتخاب نمائید . حال اگر بخواهید برنامه را بر روی سیستمی که آفیس آن 2007 است استفاده کنید خطای Missing ( الآن دقیقاً شرح خطا یادم نیست) یانبود آبجکت صادر میشود چون آفیس 2007 است و شماره اکسل هم 12 در حالیکه قبلاً در قسمت رفرنسها اکسل 14 انتخاب شده .
حالا من دنبال راهی هستم که بدون انتخاب کردن آبجکت مربوطه در قسمت رفرنس ها از طریق کد نویسی یا با استفاده از API با عوض شدن آفیس در اجرای برنامه برنامه اکسل مشکلی پیش نیاید .
راستش من درگیر این موضوع درتالار اکسس در این لینک (http://barnamenevis.org/showthread.php?516936-%D8%B9%D8%AF%D9%85-%D8%AD%D8%B0%D9%81-%D8%A7%DA%A9%D8%B3%D9%84-14-%D8%A7%D8%B2%D9%84%DB%8C%D8%B3%D8%AA-%D8%B1%D9%81%D8%B1%D9%86%D8%B3%D9%87%D8%A7) هستم
لذا از اساتید مجرب همانند استاد فرجام فر که آشنائی خوبی به محیط اکسس دارند خواهش میکنم بنده را راهنمائی فرمایند
متشکرم

vbhamed
پنج شنبه 22 بهمن 1394, 17:33 عصر
سلام
مشکل شما خیلی راحت قابل حله
برای اینکار معمولا شما در برنامه به این شکل رفرنس رو تعریف می‌کنید
Dim Obj As New Access.Application

از این به بعد از این روش استفاده کنید
Dim Obj
Set Obj = CreateObject("Access.Application")

abas1388
پنج شنبه 22 بهمن 1394, 20:41 عصر
با سلام و تشکر از استاد فرجام فر عزیز
من برای استفاده از برنامه اکسل از کد زیر استفاده می کنم :


Dim xl As New Application
Dim wb As Object
Set x1 = CreateObject("Excel.Application")
Set wb = x1.Workbooks.Open("C:\Sample.xls")


اما همانطور که در پست 1 عرض کردم وقتی ورژن اکسس تغییر می کند آیتم برنامه اکسل در لیست رفرنس ها بصورت Missing به نمایش در می آید ( تصویر ضمیمه را ملاحظه بفرمائید !)
و تا زمانیکه این آیتم در لیست رفرنس ها وجود دارد با کدجنابعالی یا کدی که بنده از آن استفاده می کنم خطای Can،t find project or library صادر میشود (تصویر ضمیمه )
با تشکر

vbhamed
جمعه 23 بهمن 1394, 09:56 صبح
سلام

اول اینکه اون رفرنسی که اضافه کردین کلا مشکل داره (احتمالا آدرس یا ورژنش) وگرنه برنامتون درسته، رفرنس رو حذف کنید و دوباره جستجو و اضافه کنید

دوم اینکه با این روشی که گفتم اصلا نیاز به اضافه کردن رفرنس ندارید، البته در محیط وی بی می‌تونید شیء xl رو به روش معمول بسازید و رفرنس هم اضافه کنید تا موقع کد نویسی لیست توابع و خاصیت ها رو براتون بیاره ولی وقتی که قرار شد فایل exe بسازید فقط از همون دو تا دستوری که نوشتم استفاده کنید و رفرنس رو هم حذف کنید

سوم اینکه شما xl رو دوباره از نوع Application تعریف کردید در صورتی که باید فقط به صورت Object یا Variant تعریف بشه یعنی فقط بنویسید Dim xl

abas1388
جمعه 23 بهمن 1394, 11:31 صبح
سلام

اول اینکه اون رفرنسی که اضافه کردین کلا مشکل داره (احتمالا آدرس یا ورژنش) وگرنه برنامتون درسته، رفرنس رو حذف کنید و دوباره جستجو و اضافه کنید

دوم اینکه با این روشی که گفتم اصلا نیاز به اضافه کردن رفرنس ندارید، البته در محیط وی بی می‌تونید شیء xl رو به روش معمول بسازید و رفرنس هم اضافه کنید تا موقع کد نویسی لیست توابع و خاصیت ها رو براتون بیاره ولی وقتی که قرار شد فایل exe بسازید فقط از همون دو تا دستوری که نوشتم استفاده کنید و رفرنس رو هم حذف کنید

سوم اینکه شما xl رو دوباره از نوع Application تعریف کردید در صورتی که باید فقط به صورت Object یا Variant تعریف بشه یعنی فقط بنویسید Dim xl

سلام
لطفاً کد زیر را ملاحظه بفرمائید !


Dim xl As New Application
Dim X1Book
Dim X1Sheet
Set X1 = CreateObject("Excel.Application")
'Set X1Book = GetObject(MySheetPath)
Set X1Book = X1.Workbooks.Open("C:\book1.xlsx")
XlBook.Windows(1).Visible = True
Set XlSheet = XlBook.Worksheets(1)
XlSheet.DisplayRightToLeft = True
XlSheet.Range("A1") = "ÑÏíÝ"
XlSheet.Range("1:1").Font.Bold = True
Set xl = Nothing
Set XlBook = Nothing
Set XlSheet = Nothing



من از این کد در محیط اکسس استفاده میکنم و طبق فرمایش شما رفرنس را اضافه ننمودم ، ولی با این وجود از خط XlBook.Windows(1).Visible = True به بعد خطای 424 با عنوان object requred صادر میشود

لطفاً راهنمائی بفرمائید ایراد ناشی از چیست .
با تشکر