|
|
|
| Хочу регестрировать имя юзера который внес изменения в запись
вот только юзеры лезут в базу через сервер терминалов
пока удается получит имя сервера в сети а вот учетную запись юзера на сервере терминалов получить не удается
(база разделена , у юзера на рабочем столе в терминальной сессии только ярлык)
Заранее спасибо | |
|
| |
|
|
|
| Может так - здесь и комп и юзер (текст ест-но не мой,откуда не помню)
Option Compare Database
Option Explicit
Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Function ComputerName() As String
Dim strComputerName As String ' contains workstation name for the current workstation.
strComputerName = Space(255)
If GetComputerName(strComputerName, (Len(strComputerName) + 1)) Then
strComputerName = Trim$(strComputerName)
strComputerName = Left$(strComputerName, Len(strComputerName) - 1)
ComputerName = strComputerName
Else
ComputerName = "ComputerNameError"
End If
ComputerName_Exit:
Exit Function
ComputerName_Err:
MsgBox Err.Description
End Function
Function UserName() As String
Dim strUserName As String ' contains Windows logon name for the current user
On Error GoTo UserName_Err
strUserName = Space(255)
If GetUserName(strUserName, (Len(strUserName) + 1)) Then
strUserName = Trim$(strUserName)
strUserName = Left$(strUserName, Len(strUserName) - 1)
UserName = strUserName
Else
UserName = "errorName"
End If
UserName_Exit:
Exit Function
UserName_Err:
MsgBox Err.Description
End Function
|
где-то у себя в коде
dim Tekpolz as string
Tekpolz=Username
|
| |
|
| |
|
|
|
| это я уже юзал
выдает имя компьютера - в данном случае имя сервера в сети
в том то вся проблемка что все юзеры физически сидят на одном компе и имя у него одно а вот учетные записи у юзеров разные | |
|
| |
|
|
|
|
| ага
у юзера только монитор, клава и мышь
системный блок выполняет функцию связи с сервером терминалов и его конфигурация минимальная, все проги обрабатываются сервером | |
|
| |
|
|
|
| проверьте все же функцию UserName которую ДФ дал | |
|
| |
|
|
|
| хорошо - только завтра 19:30 уже | |
|
| |
|
33 Кб. |
|
| выкидывает ошибку => | |
|
| |
|
|
|
| на что? у меня все работает. даже на одном компе.
сделай в модуле тестовую проц.
Public Sub testautors()
Dim tekpolz As String
tekpolz = UserName
Debug.print tekpolz
End Sub
|
| |
|
| |
|
|
|
| Функция должны быть в модуле, а не в модуле формы | |
|
| |
|
|
|
| Возможно как-то с помощью WMI, но, если база всегда запускается с ярлыка, то я бы сделал проще. В ярлыке добавить параметр /cmd "Имя юзера" и получать это имя функцией Command.
А еще лучше и надежнее (А2007 не годится) - установить защиту на уровне пользователей (свой MDW). | |
|
| |
|
|
|
|
| Всем спасибо (Дяде Федору - особое) заработало | |
|
| |
|
|
|
| Далекий голос из инета мне сегодня вещал
Public Function strUserName() as string
strUserName=Environ$("username")
End Function
все равно менять уже не буду - (работает и пускай работает) возьму на заметку | |
|
| |