Accessi Gizlemek İçin 3.ncü Yol.. Mutlaka Deneyin..

1 2 3 4 5 6 7 8
02/09/2018, 12:54

mehmetdemiral

Değişen Access sürümleri nedeniyle bu dosyanın artık ole sunucu hatası verdiğini gördüm. Yeni Access versiyonlarına uygun hale getirdim. Örnek ilk örneğe eklendi.
08/09/2018, 18:10

kursun

Bende çalışmıyor hocam ya 64 bit yada ofice 2016
08/09/2018, 18:37

mehmetdemiral

Ofisin 64 biti için çözüm üretmiyorum. 32 bit kurmak kolay. Kurun 32 bit office, olsun bitsin. 64 bitte çoğu kodumuz çalışmıyor. Çalışsın derseniz bununla ilgili bazı kodlar sitemizde yayınladık. Siz kendiniz elinizle düzelteceksiniz artık. Ben yine de bu örnek için bir deneme yaptım ama kendi makinemde Access 32 bit olduğu için deneyemedim. Siz deneyip bakın çalışıyor mu diye. Çünkü bu örnekte modül yok, kodlar Option Compare Database kısmına yazılmış. Bu şeklini hiç denemedim. Deneyip bilgi verir misiniz?
08/09/2018, 18:51

kursun

çalıştı saolasın
08/09/2018, 18:53

kursun

peki ben nasıl yapacağım
09/09/2018, 22:53

mehmetdemiral

Kod yazma moduna geçince general decleration bölümünde yer alan kodlar şu şekilde idi: 
Option Compare Database
Option Explicit

Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
Private Declare Function GetWindow Lib "user32" (ByVal hWnd As Long, ByVal wCmd As Long) As Long
Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
Private Declare Function CreateRectRgn Lib "gdi32" (ByVal x1 As Long, ByVal y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long

Private Const GW_CHILD = 5
Private Const GW_HWNDNEXT = 2
Ben bu kodları 64 bit ve 32 bit için seçenekli hale getirerek şu biçime dönüştürdüm:

Option Compare Database
Option Explicit
#If VBA7 Then
Private Declare PtrSafe Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Private Declare PtrSafe Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
Private Declare PtrSafe Function GetWindow Lib "user32" (ByVal hWnd As Long, ByVal wCmd As Long) As Long
Private Declare PtrSafe Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
Private Declare PtrSafe Function CreateRectRgn Lib "gdi32" (ByVal x1 As Long, ByVal y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
#Else
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Private Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As Long
Private Declare Function GetWindow Lib "user32" (ByVal hWnd As Long, ByVal wCmd As Long) As Long
Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
Private Declare Function CreateRectRgn Lib "gdi32" (ByVal x1 As Long, ByVal y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
#End If
Private Const GW_CHILD = 5
Private Const GW_HWNDNEXT = 2
Böylece eğer VBA7 sürüm kullanılacaksa (yani Access 64 bit ise)  #else satırına kadar olan kodlar işletilecek. Eğer Access 32 bit ise o zaman #Else satırından sonra #End If satırına kadar olan kodlar kullanılacak. 64 bit için olan kodlarda da Private Declare Function yazan satırların hepsinde "declare" sözcüğünden sonra "ptrsafe" sözcüğü eklenecek. Bu kadar.
1 2 3 4 5 6 7 8