PDA

View Full Version : حرفه ای: ملزومات یک فایل اکسس



Abbas Amiri
جمعه 11 فروردین 1391, 17:45 عصر
باسلام و تبریک سال نو خدمت دوستان واعضای محترم تالار

موردی که به وفور در سوالات واشکالات دوستان مبتدی مشاهده وجواب داده شده ، مربوط به مواقعی است که فایل اکسس از محلی که در آن استفاده میشده جابجاشده وبه کامپیوتر دیگر وحتی مسیر دیگری منتقل شده است. دراینصورت دو حالت بروز خطا دراجرای اکسس احتمالا بوجود می آید.
1- رفرنسهای نامعلوم Broken Refrences
2 - ایکونها وتصاویری که مسیر آنها واقعی نیست
من شخصا همانطور که درتصویر زیر مشاهده می شود تمام ملزومات در پوشه حاوی فایل اصلی میگذارم به این ترتیب برای آدرس دهی براحتی با دستور CurrentProject.Path مسیر فعلی فایل را بدست آورده و به فولدرهای داخل آن هم درهر مکان فیزیکی دسترسی خواهم داشت . تصاویر را در پوشه Icons ، رفرنسها را درپوشه Files و فولدر Backup هم که مشخص است.

84926

Abbas Amiri
جمعه 11 فروردین 1391, 17:58 عصر
حالا چطور از این ها استفاده میشود ؟ ابتدا به لینک زیر مراجعه و کدها در یک ماژول کپی و ریمارک خط هفتم را بردارید. و ماکرو AutoExec راهم همانطور که ذکر شده بسازید
http://barnamenevis.org/showthread.php?333235-%D8%AA%D8%BA%DB%8C%DB%8C%D8%B1-%D8%A2%DB%8C%DA%A9%D9%86-%D9%81%D8%B1%D9%85%D9%87%D8%A7-%D9%88-%DA%AF%D8%B2%D8%A7%D8%B1%D8%B4%D8%A7%D8%AA-%D8%A7%D8%B2-%D8%B7%D8%B1%DB%8C%D9%82-%D9%85%D9%86%D9%88%DB%8C-Startup-%D8%A8%D8%A7-%DA%A9%D8%AFvba

فانکشن زیر اراهم درآنجا کپی کنید. به این ترتیب ایکون برنامه و رفرنسها درآغاز برنامه در صورت پیدا نشدن مشکلی بوجود نخواهند آورد. رفرنسها را می توانید با کلیک ساده روی آنها ، آدرسشان را پیدا کرده به آن محل رفته فایل راکپی و در پوشه Files کپی کنید



Public Enum FilePathPart
PathOnly = 1
NameOnly
ExtentionOnly
NameAndExtention
ChangeName
End Enum


Function FixBrokenRefrences()
Dim Ref As Access.Reference
Dim intCount As Integer
Dim intX As Integer
Dim blnBroke As Boolean
Dim strPath As String

On Error Resume Next

intCount = Access.References.count

For intX = intCount To 1 Step -1
Set Ref = Access.References(intX)
With Ref
blnBroke = .IsBroken
If blnBroke = True Or Err <> 0 Then
strPath = .FullPath
strPath = CurrentProject.Path & "\Files\" & _
GetFilePathPart(strPath, NameAndExtention)
With Access.References
.Remove Ref
.AddFromFile strPath
End With
End If
End With
Next

Set Ref = Nothing

Call SysCmd(504, 16483)
End Function

Function GetFilePathPart(strPath, SetionOfPath As FilePathPart, Optional NewName As String)
Dim k As Integer, j As Integer
Dim sPath As String, sName As String, SExtention As String
k = InStrRev(strPath, "\") + 1
j = InStrRev(strPath, ".")
sPath = Left(strPath, k - 1)
SExtention = Right(strPath, Len(strPath) - j)
Select Case SetionOfPath
Case PathOnly
GetFilePathPart = sPath
Case NameOnly
GetFilePathPart = Mid(strPath, k, (j - k))
Case ExtentionOnly
GetFilePathPart = SExtention
Case NameAndExtention
GetFilePathPart = Right(strPath, Len(strPath) - k + 1)
Case ChangeName
GetFilePathPart = sPath & NewName & "." & SExtention

End Select
End Function

G.hemati
یک شنبه 17 دی 1391, 22:41 عصر
با سلام خدمت اساتید گرامی و مخصوصاً جناب امیری عزیز
سپاس فراوان از زحماتتون
اگه امکان داره اشکال فایل ضمیمه رو برطرف کنین
من طبق فرموده جناب امیری، تمامی مراحل کار رو انجام دادم ولی هنگام اجرای فرم Error میده
ممنون

Abbas Amiri
یک شنبه 17 دی 1391, 23:37 عصر
سلام
آن قسمت از کدفوق که در ذیل آمده باید در اولین ردیف مازول قراربگیرد . درست مثل بالا


Public Enum FilePathPart
PathOnly = 1
NameOnly
ExtentionOnly
NameAndExtention
ChangeName
End Enum

G.hemati
دوشنبه 18 دی 1391, 14:14 عصر
ممنونم جناب امیری
دو تا مشکل دارم با این رویه ممنون میشم راهنمایی بفرمایین من از اکسس 2003 استفاده میکتم و خط 2 کد زیر رو غیر فعال کردم چون ایراد میگرفت (بدلیل عدم وجود ریبون در اکسس 2003)

1- در قسمت StartUp من تیک Use as Form and Report Icon رو زدم تا آیکون فرمها و گزارشات نیز تغییر کند ولی این عمل انجام نمیشود . آیا تنظیمات خاصی باید اعمال نمود

2-در خط 4 کد زیر منظور مخفی کردن اکسس میباشد ؟ اگر اینچنین است در 2003 این عمل انجام نمیشود

Function StartUpActions()
' DoCmd.ShowToolbar "Ribbon", acToolbarNo
DoCmd.SelectObject acTable, , True
DoCmd.RunCommand acCmdWindowHide
SetOption "Show Status Bar", False
StartUpProps "AppIcon", "Arm3.ico"
FixBrokenRefrences
End Function

Abbas Amiri
سه شنبه 19 دی 1391, 20:01 عصر
سلام
در فایل ضمیمه تیک برداشته شده بود و پس از فعال کردن آن و لود مجدد برنامه آیکن فرم ظاهرشد
مورد دوم هم مربوط به مخفی کردن پنجره اشیا(جداول و فرمها و ..) است

hamid-nice
چهارشنبه 02 اسفند 1391, 13:53 عصر
سلام

آیا راهی برای حذف یا تغییر عنوانی که در بالای پنجره اول برنامه یعنی خود تیتر مایکروسافت اکسس Microsoft Access... می آید هست ؟

Abbas Amiri
چهارشنبه 02 اسفند 1391, 18:10 عصر
سلام

آیا راهی برای حذف یا تغییر عنوانی که در بالای پنجره اول برنامه یعنی خود تیتر مایکروسافت اکسس Microsoft Access... می آید هست ؟

سلام
بله . کافیه درAccess Options خصوصیت Application Title را مقدار گذاری کنید که معمولا اسم برنامه است.

hamid-nice
پنج شنبه 03 اسفند 1391, 21:52 عصر
سلام
دوستان برای تیک خوردن Active X
فایل Add reference را از لینک زیر در پست 14 بردارند که به طور خودکار Active X را اضافه می کند و تیک مربوطه را می زند

http://barnamenevis.org/showthread.p...85#post1706685 (http://barnamenevis.org/showthread.php?108470-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-ocx-%D8%AF%D8%B1-%D8%A7%DA%A9%D8%B3%D8%B3&p=1706685#post1706685)

Abbas Amiri
جمعه 04 اسفند 1391, 10:53 صبح
سلام
با تشکر از فایل ارسالی
موضوع مهم اینست که زمانی که کاربر برای اولین بار برنامه رو اجرا میکند دغدغه و یا الزامی به انجام اینکار نداشته باشد . وخود برنامه کمبودهاش رو رفع کنه .
کار خیلی سختی نیست ولی دقت کافی میخواد .

hamid-nice
پنج شنبه 10 اسفند 1391, 19:32 عصر
سلام

شما راه حلتون چیه ؟

hamid-nice
دوشنبه 05 فروردین 1392, 01:04 صبح
سلام
با تشکر از فایل ارسالی
موضوع مهم اینست که زمانی که کاربر برای اولین بار برنامه رو اجرا میکند دغدغه و یا الزامی به انجام اینکار نداشته باشد . وخود برنامه کمبودهاش رو رفع کنه .
کار خیلی سختی نیست ولی دقت کافی میخواد .
سلام

یک راه حل خوبی پیدا شد

در لینک زیر پست 7# جناب علیرضا بهرامی راه حل خوبی ارائه داده اند :

http://barnamenevis.org/showthread.php?218071-%D8%B9%D9%84%D8%AA-%D8%B5%D8%AF%D9%88%D8%B1-%D9%BE%DB%8C%D8%BA%D8%A7%D9%85-%D8%AE%D8%B7%D8%A7%D9%8A-Missing-Or-Broken-Reference-To-File-%DA%86%D9%8A%D8%B3%D8%AA-%D8%9F

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

On Error Resume Next

با تشکر

hamid-nice
سه شنبه 18 تیر 1392, 02:09 صبح
با سلام
در پست 2# در انتهای تابع FixBrokenRefrences یعنی در خط 39 کد زیر
Call SysCmd(504, 16483)
نوشته شده است
اگه ممکنه لطف کنید کار آنرا توضیح دهید و اینکه اگه این را حذف کنیم مشکلی پیش می آید یا نه
با تشکر

Abbas Amiri
سه شنبه 18 تیر 1392, 20:34 عصر
با سلام
در پست 2# در انتهای تابع FixBrokenRefrences یعنی در خط 39 کد زیر
Call SysCmd(504, 16483)
نوشته شده است
اگه ممکنه لطف کنید کار آنرا توضیح دهید و اینکه اگه این را حذف کنیم مشکلی پیش می آید یا نه
با تشکر

به کامپایل و ذخیره ماژول مربوط میشود .

hamid-nice
جمعه 28 تیر 1392, 20:24 عصر
به کامپایل و ذخیره ماژول مربوط میشود .
پس در اینصورت به وجودش نیازی نیست و مخصوصا در فایل های mde اصلا نباید نوشت چرا که این فایلها اجازه تغییر در ماژول ها را نمی دهند و اگر هم این را در فرم start up آنها قرار دهیم می تواند باعث stop working در هنگام اجرای اکسس شود ( یا ارور های عملکردی خواهند شد ) که من با این مساله برخورد داشته ام
با تشکر

tanha50
یک شنبه 28 دی 1393, 23:44 عصر
با سلام
ضمن سپاس قراوان از دوستان گرامی
در فایل زیر می خوام به جای پنهان کردن پنجره اکسس navigationpane پنهان بشه لطفا در صورت امکان راهنمایی فرمایید و اشکال فایل زیر را برطرف نمائید