Сіздің бизнесіңізде кім белгілі бір жазбаны қосқанын білгіңіз келе ме? Немесе оны соңғы рет кім жаңартқанын білгіңіз келе ме? Бұл өте кең таралған талап, бірақ өкінішке орай, Microsoft Access бағдарламасының кіріктірілген функциясы жоқ. Кестеге «соңғы жаңарту күні» өрісін қосу (көп жағдайда) көптеген қажеттіліктерді қанағаттандыру үшін жеткілікті болуы мүмкін, бірақ Access сізге айта алмаса, жазбаны кім жаңартқанын қалай білуге болады? Бұл мақалада көрсетілгендей, сізге тек VBA коды қажет.
Пайдаланушы атын жазу үшін өзіңіздің «кіру» формаңызды құрудың қажеті жоқ
Егер сіздің деректер базаңызда жеке кіру формасы немесе механизмі болмаса, онда дерекқорға кім кіретінін / кіретінін білудің жалғыз әдісі - Windows амалдық жүйесінің файлдарының бірін пайдалану, атап айтқанда «mpr.dll» файл. Егер сіз бұрын сіздің кодыңызда сыртқы DLL-ді қолданбаған болсаңыз, бұл аздап қорқынышты болып көрінуі мүмкін, бірақ төмендегі кодтан көріп отырғаныңыздай, бұл өте тікелей алға.
Сонымен, біздің кодтың не істейтінін анықтайық ...
«Маған кірген пайдаланушының атын көрсетуге рұқсат етіңіз»
Біріншіден, код:
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
Код, түсіндірілді
Алдымен сіз mpr.dll файлындағы сыртқы функцияға сілтеме жасап жатқаныңызды көресіз. Мұны біз dll-де бар жалпы функция үшін жергілікті атауды (GetUser) жариялау арқылы жасаймыз (бұл жағдайда WNetGetUserA). - функцияны шақыру үшін қандай параметрлер қажет екенін де анықтаймыз - бұл жағдайда «Аты», «Пайдаланушы аты» және «Ұзындығы» параметрлері. Мұнда бізді қызықтыратын жалғыз нәрсе - «UserName», бірақ қалғаны да жеткізілуі керек, сондықтан функция dll ішінде қалай орнатылады.
Енді аяқталды, біз өз функциямызды құрамыз, сол арқылы біз осы сыртқы функцияға қоңырау шаламыз. Біздің функцияның коды өте аз, бірақ негізгі элементтерді қарастырайық:
- «Пайдаланушы аты = Бос орын(255)» – егер сіз отладчиктегі кодты қарап шықсаңыз, «GetUser()» функциясы шақырылған кезде, біз оған беретін «Пайдаланушы аты» айнымалысы қайта жазылатынын көресіз. Ол үшін айнымалыға деректерді сақтау үшін жеткілікті жад бөлінуі керек, сондықтан біз айнымалыға 255 бос орын таңбасын бөлеміз, себебі бұл көптеген (барлығы болмаса да) пайдаланушы аттарының болуы үшін жеткілікті болуы керек.
- Біз қайтару мәнін «returnStatus» айнымалысындағы функционалдық шақырудан аламыз. Мұндағы нөл (0) қоңырау сәтті болғанын білдіреді, ал басқасы қате болғанын білдіреді.
- Сонымен, «UserName» айнымалысын ретке келтіру керек, себебі ол нөлдік белгілермен толтырылады, сондықтан Chr (0) табылғанға дейін айнымалыдағы белгілерді бөліп аламыз.
Қараңыз - енді бұл жаман болған жоқ! Ал енді, ең болмағанда, сізбен күресу керек болса mdb дерекқорының бүлінуі, сіз дерекқорды соңғы рет кім қолданғанын білесіз, сондықтан кімді кінәлай аласыз! (Мен мұнда әрине әзілдесемін!)
Автордың кіріспесі:
Митчелл Понд - деректерді қалпына келтіру бойынша сарапшы DataNumen, Соның ішінде деректерді қалпына келтіру технологиялары бойынша әлемдік көшбасшы болып табылатын Inc. жөндеу SQL Server проблема және excel қалпына келтіру бағдарламалық жасақтама өнімдері. Қосымша ақпарат алу үшін кіріңіз WWW.datanumen.com
