Kailangan mo bang malaman kung sino sa iyong negosyo ang nagdagdag ng isang partikular na record? O sino ang huling nag-update nito? Ito ay isang karaniwang kinakailangan, ngunit sa kasamaang palad, hindi ito isang bagay na may built-in na functionality ang Microsoft Access. Ang pagdaragdag lamang ng field na "huling na-update ni" sa iyong talahanayan ay maaaring (sa maraming pagkakataon) sapat na upang matugunan ang karamihan sa mga pangangailangan, ngunit paano mo malalaman kung sino ang nag-update ng record kung hindi ka masabi ng Access? Isang maliit na VBA code lang ang kailangan mo, gaya ng ipapakita sa iyo ng artikulong ito.
Hindi na kailangang lumikha ng iyong sariling form na "pag-login" upang makuha ang pangalan ng gumagamit
Maliban kung ang iyong database ay may sariling form o mekanismo sa pag-login, kung gayon ang tanging paraan na malalaman mo kung sino ang kasalukuyang gumagamit / naka-log in sa database ay ang paggamit ng isa sa mga file ng Windows Operating System - partikular ang "mpr.dll" file Kung hindi mo pa nagamit ang panlabas na dll's sa iyong code dati, maaaring tila ito ay nakakatakot, ngunit tulad ng makikita mo sa code sa ibaba, talagang tuwid itong pasulong.
Kaya - tukuyin natin kung ano ang nais nating gawin ng aming code ...
"Hayaan mo akong magkaroon ng pangalan ng kasalukuyang naka-log in na gumagamit"
Una, ang code:
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
Ang code, ipinaliwanag
Ang unang bagay na makikita mo ay gumagawa kami ng isang sanggunian sa isang panlabas na pagpapaandar, na nilalaman sa loob ng mpr.dll file. Ginagawa namin ito sa pamamagitan ng pagdedeklara ng isang lokal na pangalan (GetUser) para sa pagpapaandar ng publiko na nilalaman sa dll (sa pagkakataong ito, WNetGetUserA). - Tinutukoy din namin kung anong mga parameter ang kinakailangan para sa tawag na pag-andar - sa kasong ito ang mga parameter na "Pangalan", "UserName", at "Haba". Ang nag-iisa lamang na talagang interesado kami dito ay ang "UserName" ngunit ang natitira ay kailangang ibigay din tulad nito kung paano naka-set up ang pagpapaandar sa loob ng dll.
Ngayon ay nagawa na, lumilikha kami ng aming sariling pag-andar, kung saan tatawag kami sa panlabas na pagpapaandar na ito. Ang code para sa aming pagpapaandar ay medyo minimal ngunit tumakbo tayo sa pamamagitan ng mga pangunahing elemento:
- “UserName = Space(255)” – kung susuriin mo ang code sa debugger, makikita mo na kapag tinawag ang function na “GetUser()”, ang variable na “UserName” na ipinapasa natin dito ay talagang napapatungan. Para mangyari iyon, ang variable ay nangangailangan ng sapat na memorya na inilaan para maiimbak ang data, kaya maglalaan lang tayo ng 255 space chars sa variable dahil dapat ay higit pa iyon sa sapat para sa karamihan (kung hindi lahat) ng mga user name na nakapaloob dito.
- Kinukuha namin ang halaga ng pagbabalik mula sa tawag na pag-andar sa variable na "returnStatus". Ang isang zero (0) dito ay nangangahulugang matagumpay ang tawag, anupaman ang ibig sabihin ay may naganap na error.
- Sa wakas, ang variable na "UserName" ay nangangailangan ng pag-ayos dahil ito ay mahalagang mai-pad na may mga null chars kaya't kinukuha namin ang mga chars na nasa variable bago makita ang isang Chr (0).
Kita n'yo - ngayon na hindi iyon masama diba! At ngayon, hindi bababa sa kung kailangan mong makitungo mdb database ng katiwalian, malalaman mo kung sino ang huling gumagamit ng database upang kung sino ang maaari mong sisihin! (Nagbibiro ako dito syempre!)
Panimula ng May-akda:
Ang Mitchell Pond ay isang dalubhasa sa pagbawi ng data sa DataNumen, Inc., na pinuno ng mundo sa mga teknolohiya sa pagbawi ng data, kasama ang magkumpuni SQL Server problema at excel mga produkto ng pagbawi ng software. Para sa karagdagang impormasyon pagbisita www.datanumen. Sa
