Access Penceresini Gizleme

1 2
15/12/2010, 20:18

hafa

herkese selam
2 gundur ugrasmama ragmen birturlu basarmadim 2010 Access kulaniyorum.
formulier deki meting kisminin acilista gorunmesini digerlerinin gizlenmesi istiyorum.
siz arkadaslarimdan yapmanizi degil anlatmanizi rica ediyorum. fotograf ekleyebilirseniz ben acemiye cok buyuk bir iyilik yapmis olursunuz.(bir sonaki calismamda kendim yapabilmem icin)

simdiden tesekurler
saygilarimla:
notcok ozur dilerim yanlis yere konu acmisim.)
16/12/2010, 01:39

ozanakkaya

"formulier deki meting kisminin acilista gorunmesini digerlerinin gizlenmesi istiyorum." cümlesinden anlatmak istediğiniz sanırım meting formunun görünüp veritabanı penceresininin gizlenmesi.

Aşağıda ayrıntılı olarak anlatılmıştır.

(07/11/2008, 00:13)sledgeab yazdı: 1. YOL

Access Penceresini gizlemek için uygulamanızda yeni bir modül oluşturun ve içerisine aşağıdaki kodları yazın.

Kod:
Private Declare Function IsWindowVisible Lib "user32" (ByVal hwnd As Long) As Long
Dim dwReturn As Long

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

Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, _
ByVal nCmdShow As Long) As Long
Public Function fAccessWindow(Optional Procedure As String, Optional SwitchStatus As Boolean, Optional StatusCheck As Boolean) As Boolean
If Procedure = "Hide" Then
dwReturn = ShowWindow(Application.hWndAccessApp, SW_HIDE)
End If
If Procedure = "Show" Then
dwReturn = ShowWindow(Application.hWndAccessApp, SW_SHOWMAXIMIZED)
End If
If Procedure = "Minimize" Then
dwReturn = ShowWindow(Application.hWndAccessApp, SW_SHOWMINIMIZED)
End If
If SwitchStatus = True Then
If IsWindowVisible(hWndAccessApp) = 1 Then
dwReturn = ShowWindow(Application.hWndAccessApp, SW_HIDE)
Else
dwReturn = ShowWindow(Application.hWndAccessApp, SW_SHOWMAXIMIZED)
End If
End If
If StatusCheck = True Then
If IsWindowVisible(hWndAccessApp) = 0 Then
fAccessWindow = False
End If
If IsWindowVisible(hWndAccessApp) = 1 Then
fAccessWindow = True
End If
End If
End Function

Başlangıçta ilk açılan formun "Yüklendiğinde" olayına

Kod:
Call fAccessWindow("Hide", False, False)
yazın

veya

yeni bir makro oluşturun. makronun "Eylem" alanına "Kod Çalıştır", "Eylem Değişkenleri" bölümündeki "İşlev Adı" alanına
Alıntı:fAccessWindow ("Hide", False, False)
yazın ve "Autoexec" adıyla kaydedin.


Uygulamanızdaki tüm formların ve raporların özelliklerinden "Açılan" ve "Kalıcı" alanlarındaki değerleri "Evet" olarak belirleyin.



Uygulamanızdaki tüm raporların Açıldığında olayına aşağıdaki kodu yazın
Kod:
Private Sub Report_Open(Cancel As Integer)
DoCmd.Maximize
End Sub


2. YOL

Access Penceresini gizlemek için uygulamanızda yeni bir modül oluşturun ve içerisine aşağıdaki kodları yazın.

Kod:
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



Başlangıçta ilk açılan formun "Yüklendiğinde" olayına

Kod:
fSetAccessWindow (SW_HIDE)
yazın

Uygulamanızdaki tüm formların ve raporların özelliklerindeki "Açılan" ve "Kalıcı" alanlarındaki değerleri "Evet" olarak belirleyin.


Uygulamanızdaki tüm raporların Açıldığında olayına aşağıdaki kodu yazın

Kod:
Private Sub Report_Open(Cancel As Integer)
DoCmd.Maximize
End Sub




3. YOL (Tavsiye Edilen)

Access Penceresini gizlemek için uygulamanızda yeni bir modül oluşturun ve içerisine aşağıdaki kodları yazın.

Kod:
Option Compare Database
Option Explicit

Public Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, _
    ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Public Declare Function CreateRoundRectRgn Lib "gdi32" (ByVal X1 As Long, _
    ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, _
    ByVal Y3 As Long) As Long
Declare Function CombineRgn Lib "gdi32" (ByVal hDestRgn As Long, _
    ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, _
    ByVal nCombineMode As Long) As Long
Public Declare Function SetWindowRgn Lib "user32" (ByVal hwnd As Long, _
    ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
Public Const RGN_AND = 1
Public Const RGN_COPY = 5
Public Const RGN_DIFF = 4
Public Const RGN_OR = 2
Public Const RGN_XOR = 3

Public Function degistir()
Dim rgn1 As Long, rgn2 As Long
  
   rgn1 = CreateRectRgn(0, 0, 1, 1)
   CombineRgn rgn1, rgn1, rgn2, RGN_OR
   SetWindowRgn Application.hWndAccessApp, rgn1, True
End Function
Public Function degistir2()
Dim rgn1 As Long, rgn2 As Long
  
   rgn1 = CreateRectRgn(0, 0, 1500, 1500)
   CombineRgn rgn1, rgn1, rgn2, RGN_OR
   SetWindowRgn Application.hWndAccessApp, rgn1, True
End Function

Başlangıçta ilk açılan formun "Yüklendiğinde" veya "açıldığında" olayına

Kod:
Modul1.degistir
yazın (Modul1, modülün adı)



Uygulamanızdaki tüm formların ve raporların özelliklerinden "Açılan" ve "Kalıcı" alanlarındaki değerleri "Evet" olarak belirleyin.



Uygulamanızdaki tüm raporların Açıldığında olayına aşağıdaki kodu yazın
Kod:
Private Sub Report_Open(Cancel As Integer)
DoCmd.Maximize
End Sub

16/12/2010, 02:51

mehmetdemiral

Bu tam bir rehber olmuş yaw)
16/12/2010, 02:59

burak_tuncer

Çok teşekkürler.. Sanırım oldu, oldukça gizlenmiş gibi görülüyor. Artık projemi çift tıkladığımda tamamen gizleniyor. İstediğim kadar açmaya çalışıyım projemi, ekrana hiç birşey gelmiyor. Sanırım bütün formlan tamamen gizlenmiş olduk Bu yöntemi deniyecek arkadaşların önce projelerinin bir yedeğini almaları sanırım iyi bir önlem olur. Neyse ki boş bir çalışmaydı zaten.
16/12/2010, 10:26

mehmetdemiral

Yedek almaya gerek yok. Shift tuşu ile basarak yeniden açabilirsiniz. Bu arada hemen söyleyeyim, shift tuşunu devre dışı bırakan bir yöntem de mevcut ama onun da panzehiri var Bu arada hatanızı söyleyeyim. Sledgeab'ın tüm uyarılarına rağmen tüm forum ve raporları açılan ve kalıcı yapmamışsınız. Aynen şöyle yazmış kocaman kocaman harflerle : "Uygulamanızdaki tüm formların ve raporların özelliklerindeki "Açılan" ve "Kalıcı" alanlarındaki değerleri "Evet" olarak belirleyin."
16/12/2010, 21:20

ozanakkaya

Ayrıca, (2010 için) Dosya / Seçenekler / Geçerli Veritabanı sekmesindeki "Form Görüntüle" alanına ilk açılacak formun belirtilmesi gerekli.
1 2