(05/07/2020, 16:07)berduş yazdı: siz modüle sadece formu simge durumuna getirme kodu eklemişsiniz, Access penceresini gizleme kodlarını eklememişsiniz o nedenle sadeve form küçülüyor Access penceresi değil.modüldeki diğer kodu silip bunu mu yapıştırayım
Modul kodu
form load kodu
#If VBA7 And Win64 Then '64 bit için
Private Declare PtrSafe Function SetWindowLong Lib "user32" Alias "SetWindowLongA" ( _
ByVal hwnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Private Declare PtrSafe Function GetWindowLong Lib "user32" Alias "GetWindowLongA" ( _
ByVal hwnd As Long, _
ByVal nIndex As Long) As Long
Private Declare PtrSafe Function apiShowWindow Lib "user32" Alias "ShowWindow" ( _
ByVal hwnd As Long, _
ByVal nCmdShow As Long) As Long
#Else '32 bit için
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" ( _
ByVal hwnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" ( _
ByVal hwnd As Long, _
ByVal nIndex As Long) As Long
Private Declare Function apiShowWindow Lib "user32" Alias "ShowWindow" ( _
ByVal hwnd As Long, _
ByVal nCmdShow As Long) As Long
#End If
Private Const WS_EX_APPWINDOW = &H40000
Private Const GWL_STYLE = -20
Global Const SW_HIDE = 0
Global Const SW_SHOWNORMAL = 1
Global Const SW_SHOWMINIMIZED = 2
Global Const SW_SHOWMAXIMIZED = 3
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
If nCmdShow = SW_HIDE Then
loX = apiShowWindow(hWndAccessApp, nCmdShow)
Err.Clear
End If
Else
loX = apiShowWindow(hWndAccessApp, nCmdShow)
End If
fSetAccessWindow = (loX <> 0)
End Function
Public Function ShowInTaskbar(Lhwnd As Long, Show As Boolean)
Dim lStyle As Long
lStyle = GetWindowLong(Lhwnd, GWL_STYLE)
If Show Then
lStyle = lStyle Or WS_EX_APPWINDOW
Else
lStyle = lStyle And Not WS_EX_APPWINDOW
End If
Call SetWindowLong(Lhwnd, GWL_STYLE, lStyle)
fSetAccessWindow (SW_HIDE)
End Function
dikkatimden kaçmış olabilir ama sizin formda küçültme özelliği pasif değilmiydi?ShowInTaskbar Me.hwnd, True
Simge Durumu
evet
hatırlatayım bu kodları kullandığınızda formu kapattığınızda Access penceresi görünmez ama program kapanmaz da o nedenle programı tam kapatmak için quit komutu kullanılmalı
hatırlatayım bu kodları kullandığınızda formu kapattığınızda Access penceresi görünmez ama program kapanmaz da o nedenle programı tam kapatmak için quit komutu kullanılmalı
(05/07/2020, 16:16)berduş yazdı: evethocam aslında ben pencerenin kapatılmasını değil sadece simge durumuna küçültülüp tekrar büyütülmesini istiyorum.bu kod bu anlattığım durumu sağlıyormu acaba
hatırlatayım bu kodları kullandığınızda formu kapattığınızda Access penceresi görünmez ama program kapanmaz da o nedenle programı tam kapatmak için quit komutu kullanılmalı
aslında tam olarak ne istediğiniz önemli. bu haliyle formu tasarım halinde açamazsınız tasarım moduna gecebilmek için farklı bir kod daha eklemeniz gerek. o nedenle gizlesin derken tam olarak kastınız yada amacınız ne? bu haliyle form yüklenirken Access penceresi gizlenir ve formu küçültürseniz form aşağı simge olarak iner formu tekrar ekrana getirebilir. formlar arasında gezebilirsiniz.
yok eğer amacınız sadece formu küçültmek ve tekrar Access formları tasarım modunda açabilmek ise o zaman yapıyı değiştirmek gerek.
yok eğer amacınız sadece formu küçültmek ve tekrar Access formları tasarım modunda açabilmek ise o zaman yapıyı değiştirmek gerek.
(05/07/2020, 17:21)berduş yazdı: aslında tam olarak ne istediğiniz önemli. bu haliyle formu tasarım halinde açamazsınız tasarım moduna gecebilmek için farklı bir kod daha eklemeniz gerek. o nedenle gizlesin derken tam olarak kastınız yada amacınız ne? bu haliyle form yüklenirken Access penceresi gizlenir ve formu küçültürseniz form aşağı simge olarak iner formu tekrar ekrana getirebilir. formlar arasında gezebilirsiniz.hocam tam da yukarıda kırmızıya çevirdiğim cümleniz gibi yapmak istiyorum. Ama benim dosyada simge durumuna küçültme aktif değil ne yapmalıyım acaba. (küçült/kapla düğmeleri "küçültme var" veya "Her ikisi var" seçmeme rağmen.)
yok eğer amacınız sadece formu küçültmek ve tekrar Access formları tasarım modunda açabilmek ise o zaman yapıyı değiştirmek gerek.
dilerim işinize yarar
Modül kodları;
Modül kodları;
Private Const WS_EX_APPWINDOW = &H40000
Private Const GWL_STYLE = -20
#If VBA7 And Win64 Then '64 bit için
Private Declare PtrSafe Function SetWindowLong Lib "user32" Alias "SetWindowLongA" ( _
ByVal hwnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Private Declare PtrSafe Function GetWindowLong Lib "user32" Alias "GetWindowLongA" ( _
ByVal hwnd As Long, _
ByVal nIndex As Long) As Long
Private Declare PtrSafe Function apiShowWindow Lib "user32" Alias "ShowWindow" ( _
ByVal hwnd As Long, _
ByVal nCmdShow As Long) As Long
#Else '32 bit için
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" ( _
ByVal hwnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" ( _
ByVal hwnd As Long, _
ByVal nIndex As Long) As Long
Private Declare Function apiShowWindow Lib "user32" Alias "ShowWindow" ( _
ByVal hwnd As Long, _
ByVal nCmdShow As Long) As Long
#End If
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
If nCmdShow = SW_HIDE Then
loX = apiShowWindow(hWndAccessApp, nCmdShow)
Err.Clear
End If
Else
loX = apiShowWindow(hWndAccessApp, nCmdShow)
End If
fSetAccessWindow = (loX <> 0)
End Function
Public Function ShowInTaskbar(Lhwnd As Long, Show As Boolean)
Dim lStyle As Long
lStyle = GetWindowLong(Lhwnd, GWL_STYLE)
If Show Then
lStyle = lStyle Or WS_EX_APPWINDOW
Else
lStyle = lStyle And Not WS_EX_APPWINDOW
End If
Call SetWindowLong(Lhwnd, GWL_STYLE, lStyle)
fSetAccessWindow (0)
End Function
formun kapanma olayının kodları( bu kodlar sadece ana forma eklenecek);Private Sub Form_Close()
fSetAccessWindow (5)
End Sub
yüklenme olayının kodlarıPrivate Sub Form_Load()
ShowInTaskbar Me.hwnd, True
End Sub
ana formun kenarlık sitili:BOYUTLANDIRILABİLİR olacak
Konuyu Okuyanlar: 1 Ziyaretçi