PDA

View Full Version : فایل exe در اکسس



NasserMX
سه شنبه 26 فروردین 1382, 20:20 عصر
با سلام
کسی از دوستان می دونه چه طور می شود یک فایل اگز در اکسس درست کرد که با دابل کلیک روی فایل اصلی وارد اکسس نشود

ممنون

rsalimian
سه شنبه 20 خرداد 1382, 17:22 عصر
سلام

Access محیط طراحی و مدیریت بانک اطلاعاتی است و DBMS ها نمی توانند کد اجراییexe تولید کنند. و فقط در محیطهای develop مانند vb یا delphi یا..... می توان کد اجرایی ساخت.
موفق باشید

منصور بزرگمهر
پنج شنبه 05 تیر 1382, 03:34 صبح
دوست عزیز با سلام
همان طور که جناب اقای سلیمیان گفتند، اصولاً اکسس را نمی اجرائی کامل در اورد، ولی برای اجرای اکسس در حالت واقعی نیز پیش بینی هائی شده است.

در واقع کدهای VB اکسس را می توان کامپایل کرد(تا از دسترس کاربر دور بماند) (منو Tool\Database Utilities\Make MDE File در اکسس کلیه ماژولهای شما را کامپایل و پنجره StartUp در اکسس 2000 را مخفی و فرم اشیا اکسس را موارد طراحی و جدید را در انها خاموش می کند. ضمناً ورود به قسمتهای VB دیگر نیز غیر ممکن می گردد.
ولی معمولاً راه بالا ناکافی برای ارائه به کاربر می باشد، بهمین دلیل نسخه RunTime اکسس در سی دی Developer آفیس موحود می باشد، و برای ارائه به کاربر باید آن اکسس را ارائه نمائی. تذکر اینکه در اکسس فقط اجرائی دیگر کلیه منوها - شورت کاتها - تول بارها و کلیدهای میانبر اکسس وجود نداشته و برای کل برنامه خود باید منو ... و دستورالعمل داشته باشی. همچنین هر گونه باگ در برنامه سبب خروج از اکسس اجرائی می شود. ولی باز مشکل بصورت واقعی حل نشده است. باز ممکن است عده ای فایل اکسس شما را در کامپیوتری که اکسس عادی در ان نصب می باشد کپی و از طریق ان اجرا کنند، که باز دسترسی به اشیا اکسس ممکن می گردد. به همین منظور برای عدم نمایش پنجره اشیای اکسس و یا جلوگیری از گرفتن کلید Shift توسط کاربر (برای عدم اجرا روال برنامه) و ... دستوراتی درون اکسس (یا فرم Option اکسس)وجود دارد که این موارد را نیز خنثی می کند. (برای توضیح بیشتر به فورم قبلی قسمت اکسس سر بزن). نکته دیگر که وجود دارد این می باشد، که خود اکسس واقعی را نیز می توان بصورت اجرائی نمایش داد و آن استفاده از سوئیچ RunTime می باشد.
نمونه این کار را در زیر اورده ام (آن را در Run ویند.وز اجرا کن) :
"C:\Program Files\Microsoft Office\Office\Msaccess.exe" /runtime"C:\My Documents\Account.mdb"
(البته فایل اکسس خود را مناسب فایل خود تغییر بده)
نکته دیگر اینکه در Developer آفیس برنامه نصب و پکیج نیز وجود دارد، که مشابه نمونه VB اصلی می باشد. ضمناً فایل امنیتی اکسس و طریقه نصب آن را نیز در راهنمای اکسس مطالعه کن.
اما اگر واقعاً بخواهی فایل اجرای بسازی طبق گفته دوستمان فقط باید با VB اصلی اینکار بکنی، از اشیا بانکهای اطلاعاتی (Data Repeat و ... در رفرنس) و برای گزارش چاپی از برنامه Crystal Report باید استفاده کنی، که کار شما را 100 برابر می کند. در اصل اکسس برای این درست شده است، تا از اشیا اصلاح شده آن برا یبانکهای اطلاعاتی بهره ببری، حتی بعضی از سایر بانکهای اطلاعاتی را در اکسس اجرا تا از امکانات فرمها و ... اکسس بهره ببرند، بهمین دلیل از ایجاد برنامه اجرای کامل صرف نظر کن(من که اینگونه عمل می نمایم). ضمناً از برنامه پکیج فوق استفاده نکن، بعضاً اشکال و (حتی یک بار هم برای من چه در اکسس و چه در وی بی درست عمل نکرده است) سعی کن از سایر برنامه پکیج وی بی که در این سایت معرفی شده است، استفاده کنی یا خود راساً برنامه نصب را نیز بساز. (پس از نصب اجرائی اکسس نیاز به فایلهای اولیه وی بی نمی باشد - یا نسخه اجرای وی بی را از فورم قبلی بدست اور) همچنین Api های لازم برای نصب ActivX ها و فونت ها را نیز در زیر برای شما اورده ام.

نصب ActivX


Public Declare Function RegComCtl32 Lib "hhctrl.ocx" _
Alias "DllRegisterServer" () As Long

Public Declare Function UnRegComCtl32 Lib "hhctrl.ocx" _
Alias "DllUnregisterServer" () As Long

Public Const S_OK = &H0

Sub RegisterComCtl32()
On Error GoTo Err_Registration_Failed
If RegComCtl32 = S_OK Then
MsgBox "Registered Successfully"
Else
MsgBox "Not Registered"
End If
Exit Sub
Err_Registration_Failed:
MsgBox "Error: " & Err.Number & " " & Err.Description
End Sub

Sub UnRegisterComCtl32()
On Error GoTo Err_Unregistration_Failed
If UnRegComCtl32 = S_OK Then
MsgBox "Unregistered Successfully"
Else
MsgBox "Not Unregistered"
End If
Exit Sub
Err_Unregistration_Failed:
MsgBox "Error: " & Err.Number & " " & Err.Description
End Sub

نصب فونت

Private Declare Function AddFontResource Lib "gdi32" Alias "AddFontResourceA" (ByVal lpFileName As String) As Long
Private Declare Function RemoveFontResource Lib "gdi32" Alias "RemoveFontResourceA" (ByVal lpFileName As String) As Long
'example submitted by Johnny J. Ortiz
Private Const HWND_BROADCAST = &HFFFF&
Private Const WM_FONTCHANGE = &H1D
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Sub Command1_Click()
'برای ذخیره دائم باید ویندوز ریست شود
'دزس 28 other -- I:\Visual Basic Source Code 2002
Dim lFont As Long
lFont = AddFontResource("D:\PARSA99\Arshia.ttf")
End Sub

Private Sub Command2_Click()
Dim lFont As Long
lFont = RemoveFontResource("D:\PARSA99\Arshia.ttf")
End Sub
Private Sub Form_Load()
Dim res As Long
' add the font
res = AddFontResource("C:\Simsun.ttf")
If res > 0 Then
' alert all windows that a font was added
SendMessage HWND_BROADCAST, WM_FONTCHANGE, 0, 0
MsgBox res & " fonts were added!"
End If
End Sub

متشکره