PDA

View Full Version : جلوگيري از missing اكتيو ايكس ؟



mohammadsaleh
یک شنبه 29 اردیبهشت 1387, 15:36 عصر
اگه در برنامه اي بعضي از اكتيو ايكس هايي كه در خود اكسس نيست رو استفاده كرده باشيم در صورتيكه برنامه به كامپيوتر ديگه منتقل بشه و يا ويندوز رو عوض كنيم در وقتي اولين بار برنامه رو بازكنيم پيغام هاي مي آيد كه در نهايت منجر به اين ميشه كه بعد از نصب و رجيستر اكتيوايكسها در قسمت رفرنس ماژول در حالت طراحي بايد مجددا اكتيو ايكس ها رو آدرس دهي كنيم .

سئوال اينجاست راه جلوگيري از بروز اين مشكل چيست ؟ و به جاي پيغام هاي اكسس پيغامي بديم كه اول بايد اكتيو ايكس ها رو نصب كني و بعد برنامه رو باز كني و به طور كل اگر اكتيوايكس هاي مرتبط با برنامه وجود نداشت برنامه بسته شود.

البته شايد دوستان بفرمايند كه بايد يك فايل نصبي ايجاد كني كه هم فايل اكسس و ديگر فايلها رو نصب كنه . ولي مي خواهم بدونم با اكسس ميشه اين پيغام ها رو داد.


من علمني حرفا فقد صيرني عبدا. امام علي عليه السلام

shaghaghi
دوشنبه 30 اردیبهشت 1387, 07:20 صبح
سلام
در اولین فرمی که در برنامه تان اجرا می شود از هیچ کامپوننتی استفاده نکنید و این کد را برای آن بنویسید


Private Sub Form_Load()
Dim Ref As Reference, blnIsBroken As Boolean
For Each Ref In Application.References
If Ref.IsBroken = True Then
blnIsBroken = True
Exit For
End If
Next

If blnIsBroken Then
MsgBox "بارگذاري کامپوننتهاي برنامه با مشکل مواجه گرديد", vbMsgBoxRight + vbCritical, "توجه"
DoCmd.Quit
End If
End Sub


البته ممکن است با این کار باز هم پیغام اکسس قبل از پیغام شما بیاید، که برای رفع این مشکل مجبورید برنامه را از طریق فرم vb اجرا کنید و این بررسی را آنجا انجام دهید
به این طریق


Private Sub Form_Load()
Dim appAccess As Object, Ref, blnIsBroken As Boolean
Set appAccess = CreateObject("Access.Application")
appAccess.AutomationSecurity = 1 ' msoAutomationSecurityLow
appAccess.OpenCurrentDatabase "C:\dbi.mdb"

For Each Ref In appAccess.References
If Ref.IsBroken = True Then
blnIsBroken = True
Exit For
End If
Next

If blnIsBroken Then
appAccess.closeCurrentDatabase
appAccess.DoCmd.Quit
MsgBox "بارگذاري کامپوننتهاي برنامه با مشکل مواجه گرديد", vbMsgBoxRight + vbCritical, "توجه"
End
End If
End Sub

HAMRAHSOFT.IR
دوشنبه 30 اردیبهشت 1387, 07:34 صبح
دوست خوب ببين اين مورد بدرشما مخوره يا خير
http://barnamenevis.org/forum/showthread.php?t=81212