Biznesinizdə kimin müəyyən bir qeyd əlavə etdiyini və ya onu sonuncu dəfə kimin yenilədiyini bilmək istəyirsiniz? Bu, olduqca yaygın bir tələbdir, lakin təəssüf ki, Microsoft Access-in daxili funksionallığı tələb etmir. Cədvəlinizə sadəcə "sonuncu dəfə yenilənən" sahəsinin əlavə edilməsi (bir çox hallarda) əksər ehtiyacları ödəmək üçün kifayət edə bilər, amma Access sizə deyə bilmirsə, qeydi kimin yenilədiyini necə bilirsiniz? Bu məqalədə sizə göstərəcəyimiz kimi, sizə lazım olan tək şey kiçik bir VBA kodudur.
İstifadəçi adını çəkmək üçün öz “giriş” formanızı yaratmağa ehtiyac yoxdur

Beləliklə, kodumuzdan nə etmək istədiyimizi müəyyən edək…
“Hazırda daxil olmuş istifadəçinin adını verim”
Birincisi, kod:
Declare Function GetUser Lib "mpr.dll" Alias "WNetGetUserA" (ByVal Name As String, ByVal UserName As String, Length As Long) As Long Public Function GetUserName() As String Dim returnStatus As Integer Dim Name, UserName As String 'Allocate space for user name to be stored in UserName = Space(255) ' Call the aliased function in the mpr.dll file. returnStatus = GetUser(Name, UserName, 255) If returnStatus = 0 Then 'Strip the username from the returned string UserName = Left(UserName, InStr(UserName, Chr(0)) - 1) Else ' An error occurred. GetUserName = "Error retrieving the user name." End End If GetUserName = UserName End Function
Kod izah edildi
Görəcəyiniz ilk şey mpr.dll faylında olan xarici funksiyaya istinad etdiyimizdir. Biz bunu dll-də olan ictimai funksiya üçün yerli adı (GetUser) elan etməklə edirik (bu halda WNetGetUserA). – funksiya çağırışı üçün hansı parametrlərin lazım olduğunu da müəyyən edirik – bu halda “Ad”, “İstifadəçi Adı” və “Uzunluq” parametrləri. Burada bizi həqiqətən maraqlandıran yeganə şey "İstifadəçi Adı"dır, lakin qalanları da təmin edilməlidir, çünki funksiya dll daxilində necə qurulur.
İndi bu iş tamamlandı, biz öz funksiyamızı yaradırıq, ondan bu xarici funksiyaya zəng edəcəyik. Funksiyamızın kodu olduqca minimaldır, lakin gəlin əsas elementləri nəzərdən keçirək:
- “İstifadəçi Adı = Boşluq(255)” – əgər ayıklayıcıdakı kodu addım-addım nəzərdən keçirsəniz, “GetUser()” funksiyası çağırıldıqda, ona ötürdüyümüz “İstifadəçi Adı” dəyişəninin əslində yenidən yazıldığını görəcəksiniz. Bunun baş verməsi üçün dəyişənin məlumatların saxlanması üçün kifayət qədər yaddaş ayrılmalıdır, ona görə də dəyişənə sadəcə 255 boşluq simvolu ayırırıq, çünki bu, əksər (əgər hamısı olmasa) istifadəçi adlarının daxil olması üçün kifayət qədər olmalıdır.
- Biz “returnStatus” dəyişənindəki funksiya çağırışından qaytarılan dəyəri əldə edirik. Burada sıfır (0) zəngin uğurlu olduğunu, başqa hər şey xətanın baş verdiyini bildirir.
- Nəhayət, “İstifadəçiAdı” dəyişəninin səliqə-sahmana ehtiyacı var, çünki o, mahiyyətcə boş simvollarla doldurulacaq, ona görə də Chr(0) tapılmamışdan əvvəl dəyişəndə olan simvolları çıxarırıq.
Bax, indi o qədər də pis deyildi! İndi, heç olmasa, bununla məşğul olmaq lazımdırsa mdb verilənlər bazası korrupsiyası, verilənlər bazasından ən son kimin istifadə etdiyini biləcəksiniz ki, kimi günahlandıra bilərsiniz! (Mən burada əlbəttə zarafat edirəm!)
Müəllif Giriş:
Mitchell Pond məlumatların bərpası üzrə mütəxəssisdir DataNumendaxil olmaqla məlumatların bərpası texnologiyaları üzrə dünya lideri olan , Inc təmir SQL Server problem və excel bərpa proqram məhsulları. Ətraflı məlumat üçün ziyarət edin www.datanumen.com
