VBA မှတစ်ဆင့် Database ကို လက်ရှိအသုံးပြုနေသော ပုဂ္ဂိုလ်၏ User Name ကို မည်သို့ရယူရမည်နည်း။

ယခုမျှဝေပါ-

သင့်လုပ်ငန်းတွင် မည်သူက သီးခြားမှတ်တမ်းတစ်ခုထည့်ထားသည်ကို သိလိုပါသလား။ ဒါမှမဟုတ် ဘယ်သူက နောက်ဆုံး အပ်ဒိတ်လုပ်တာလဲ။ ၎င်းသည် အလွန်အသုံးများသော လိုအပ်ချက်တစ်ခုဖြစ်သော်လည်း ကံမကောင်းစွာဖြင့် Microsoft Access သည် လုပ်ဆောင်နိုင်စွမ်းအတွက် တည်ဆောက်ပေးထားသည့် တစ်ခုမဟုတ်ပေ။ သင့်ဇယားတွင် “နောက်ဆုံးမွမ်းမံထားသော” အကွက်ကို ထည့်လိုက်ရုံဖြင့် (ကိစ္စများစွာတွင်) m ပြည့်မီရန် လုံလောက်ပါသည်။ost လိုအပ်ပါတယ်၊ ဒါပေမယ့် Access က သင့်ကို မပြောနိုင်ရင် မှတ်တမ်းကို ဘယ်သူက အပ်ဒိတ်လုပ်လဲဆိုတာ သင်ဘယ်လိုသိနိုင်မလဲ။ ဤဆောင်းပါးသည်သင့်အားပြသမည်ဖြစ်သောကြောင့် VBA ကုဒ်အနည်းငယ်သည်သင်လိုအပ်သည်။

အသုံးပြုသူအမည်ကိုဖမ်းယူရန် သင်၏ကိုယ်ပိုင် “လော့ဂ်အင်” ဖောင်ကို ဖန်တီးရန် မလိုအပ်ပါ။

Ms Access Databaseသင့်ဒေတာဘေ့စ်တွင် ၎င်း၏ကိုယ်ပိုင် လော့ဂ်အင်ပုံစံ သို့မဟုတ် ယန္တရားမရှိပါက၊ ဒေတာဘေ့စ်သို့ လက်ရှိအသုံးပြုနေသော/ဝင်ရောက်နေသူကို သင်သိနိုင်စေမည့် တစ်ခုတည်းသောနည်းလမ်းမှာ Windows Operating System ဖိုင်များထဲမှ တစ်ခုကို အသုံးပြုခြင်းဖြစ်သည် – အထူးသဖြင့် “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 (ဤဥပမာတွင်၊ WNetGetUserA) တွင်ပါရှိသော အများသူငှာ လုပ်ဆောင်မှုအတွက် ဒေသန္တရအမည် (GetUser) ကို ကြေညာခြင်းဖြင့် ၎င်းကို ကျွန်ုပ်တို့ လုပ်ဆောင်သည်။ - လုပ်ဆောင်ချက်ခေါ်ဆိုမှုအတွက် လိုအပ်သော ဘောင်များကို ကျွန်ုပ်တို့လည်း သတ်မှတ်ပေးသည် - ဤကိစ္စတွင် "အမည်"၊ "အသုံးပြုသူအမည်" နှင့် "အရှည်" ကန့်သတ်ချက်များ။ ဤနေရာတွင်ကျွန်ုပ်တို့အမှန်တကယ်စိတ်ဝင်စားသည့်တစ်ခုတည်းသောတစ်ခုတည်းမှာ "UserName" ဖြစ်သည်၊ သို့သော်အကြွင်းအကျန်ကို dll အတွင်းရှိ function ကိုထည့်သွင်းထားသောကြောင့်၎င်းသည်အကြွင်းအကျန်ကိုပေးဆောင်ရမည်ဖြစ်သည်။

ယခု ပြီးသွားပါပြီ၊ ကျွန်ုပ်တို့သည် ဤပြင်ပလုပ်ဆောင်ချက်သို့ ဖုန်းခေါ်ဆိုမည့် ကျွန်ုပ်တို့၏ကိုယ်ပိုင်လုပ်ဆောင်ချက်ကို ဖန်တီးပါသည်။ ကျွန်ုပ်တို့၏လုပ်ဆောင်ချက်အတွက် ကုဒ်သည် အနည်းငယ်မျှသာဖြစ်သော်လည်း အဓိကကျသော အစိတ်အပိုင်းများကို ဖြတ်သန်းကြည့်ကြပါစို့။

  1.  “UserName = Space(255)” – အမှားရှာပြင်ကိရိယာရှိ ကုဒ်ကို ဖြတ်သွားပါက၊ “GetUser()” လုပ်ဆောင်ချက်ကို ခေါ်သောအခါ၊ ကျွန်ုပ်တို့ပေးပို့သော “UserName” variable သည် အမှန်တကယ်တွင် အစားထိုးရေးသားသွားခြင်း ဖြစ်သည်။ ထိုသို့ဖြစ်လာစေရန်အတွက်၊ variable သည် data များကိုသိမ်းဆည်းရန်အတွက် လုံလောက်သော memory ခွဲဝေပေးရန်လိုအပ်သည်၊ ထို့ကြောင့် m အတွက် လုံလောက်သင့်သည်ထက် ပိုသင့်သောကြောင့် 255 space chars များကို variable သို့ ခွဲဝေပေးလိုက်ပါသည်။ost (အားလုံးမဟုတ်လျှင်) အသုံးပြုသူအမည်များပါရှိသည်။
  2. "returnStatus" variable တွင် function call မှ return value ကို ဖမ်းယူပါသည်။ ဤနေရာတွင် သုည (0) ဆိုသည်မှာ ခေါ်ဆိုမှု အောင်မြင်ပြီး အခြားအရာများ အမှားဖြစ်သွားသည်ဟု ဆိုလိုသည်။
  3.  နောက်ဆုံးတွင်၊ "UserName" variable သည် null chars များဖြင့် အခြေခံအားဖြင့် padded ဖြစ်သည့်အတွက် Chr(0) ကိုမတွေ့မီ variable အတွင်းရှိ chars များကို ထုတ်ယူရန် လိုအပ်ပါသည်။

ကြည့်ပါ- အခုအဲဒါက မဆိုးဘူးဗျ။ ယခုလည်း အနည်းဆုံး ဆက်ဆံရမည်ဆိုလျှင် mdb ဒေတာဘေ့စ်ပုပ်ဒေတာဘေ့စ်ကို ဘယ်သူက နောက်ဆုံးသုံးခဲ့တာလဲဆိုတာ မင်းဘယ်သူလဲဆိုတာ မင်းသိလိမ့်မယ်။ (ဒီမှာ ငါနောက်နေတာတော့ ဟုတ်ပါတယ်!)

စာရေးသူနိဒါန်း:

Mitchell Pond သည် ဒေတာပြန်လည်ရယူရေးဆိုင်ရာ ကျွမ်းကျင်သူဖြစ်သည်။ DataNumen, Inc. အပါအဝင် ဒေတာပြန်လည်ရယူရေးနည်းပညာများတွင် ကမ္ဘာ့ခေါင်းဆောင်ဖြစ်သည်။ ပြုပြင် SQL Server ပြဿနာ နှင့် excel recovery software ထုတ်ကုန်များ။ ပိုမိုသိရှိလိုပါကသွားရောက်ကြည့်ရှု www ။datanumen.com

ယခုမျှဝေပါ-

မှတ်ချက်များကိုပိတ်ထားကြသည်။