PDA

View Full Version : کار بافرمها



Fazaeli
پنج شنبه 06 مهر 1385, 08:42 صبح
باسلام
در بخش دیتا بیس ها و برنامه های کاربردی در قسمت فرم ویژه فایلی رو گذاشتم ، فکر کردم یه پست براش بسازم چون بدرد تحویل پروژه دوستان قطعاً میخوره چون user فقط فرم ها رو میبینه و برنامه اکسس به همراه Objectها مخفی میشن (مثل پیوستی که در زیر گذاشتم)حالا به نحوه انجام آن با اجازه تمام استادان ودوستان میپردازیم.
اول: تمام فرمهای خود را بصورت زیر ست کنید
pop up = Yes, Modal = Yes
بعدکد زیر را در ماژول کپی کنید

Option Compare Database
Option Explicit

Global Const SW_HIDE = 0
Global Const SW_SHOWNORMAL = 1
Global Const SW_SHOWMINIMIZED = 2
Global Const SW_SHOWMAXIMIZED = 3

Private Declare Function apiShowWindow Lib "user32" _
Alias "ShowWindow" (ByVal hwnd As Long, _
ByVal nCmdShow As Long) As Long

Function fSetAccessWindow(nCmdShow As Long)

Dim loX As Long
Dim loForm As Form
On Error Resume Next
Set loForm = Screen.ActiveForm

If Err <> 0 Then
loX = apiShowWindow(hWndAccessApp, nCmdShow)
Err.Clear
End If

If nCmdShow = SW_SHOWMINIMIZED And loForm.Modal = True Then
MsgBox "Cannot minimize Access with " _
& (loForm.Caption + " ") _
& "form on screen"
ElseIf nCmdShow = SW_HIDE And loForm.PopUp <> True Then
MsgBox "Cannot hide Access with " _
& (loForm.Caption + " ") _
& "form on screen"
Else
loX = apiShowWindow(hWndAccessApp, nCmdShow)
End If
fSetAccessWindow = (loX <> 0)
End Function

سپس درonLoad eventفرم کد زیر را وارد نمائید

Call fSetAccessWindow(2)

در تابع ftSetAccessWindow(باتوجه به کد بالا)اگرداخل پرانتز 0باشدبرنامه اکسس مخفی میشود اگر 1باشد نرمال اگر 3باشد مگزیمایز واگر 2باشد مینی مایز میشود

امتحان کنید
باتشکر
م.فضائلی

mohsenna30ri
چهارشنبه 19 مهر 1385, 08:23 صبح
اگر پارامتر تابع fSetAccessWindow برابر صفر باشد و ما فرم را به صورت عادی ببندیم خود برنامه اکسس بسته نمی شود و در صورت باز کردن مجدد برنامه باز شدن برنامه را نخواهیم دید چون برنامه بصورت مخفی باز است
فکر کنم جهت حل این مشکل کافی است رویداد on close اون فرم را یک کد بنویسیم که از اکسس خارج شود با کد زیر
docmd.quit

mohsenna30ri
پنج شنبه 20 مهر 1385, 09:57 صبح
من روش شما را در فایل دیگری انجام دادم و وقتی ویندوز را عوض کردم با خطای زیر روبرو شدم
رفرنس xtel.dll را ندارد
در بخش رفرنس ها چنین چیزی ندارم باید از کجا بیارم

mohsenna30ri
پنج شنبه 20 مهر 1385, 10:46 صبح
تو یک سایت اینترنتی این آدرس رو پیدا کردم
E:\ENGLISH\WIN2000\ADVSPX\i386\XTel.Dl_ was copied to C:\WINNT\Speech\XTel.Dll.
اجرا کردم دیگه خطا نداد اما رفرنس اون هم تو لیست رفرنس های اکسسم نبود و با زدن گزینه BROWS هم اشکال می گرفت که چنین فایلی نمی تواند رفرنس باشد
نمی دونم یعنی چه؟

wolfstander
پنج شنبه 15 بهمن 1388, 10:07 صبح
سلام
این کد بسیار خوب و عالی عمل می کند
فقط در زمینه نمایش گزارش ، دچار ایراد است
یعنی وقتی دکمه ای را جهت نمایش گزارش تعریف کرده باشیم ، با زدن دکمه چیزی نمایش داده نمیشود حتی اگر Modal و Popup را تنظیم کرده باشیم

hamid-nice
شنبه 23 مرداد 1389, 08:31 صبح
با سلام از دستور Docmd.restore برای report ها استفاده کن
به این تاپیک نگاه کن
http://barnamenevis.org/forum/showthread.php?t=239166