Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Возможно ли определить имя учетки на сервере терминалов
 
 автор: snipe   (17.08.2010 в 12:12)   личное сообщение
 
 

Хочу регестрировать имя юзера который внес изменения в запись
вот только юзеры лезут в базу через сервер терминалов
пока удается получит имя сервера в сети а вот учетную запись юзера на сервере терминалов получить не удается
(база разделена , у юзера на рабочем столе в терминальной сессии только ярлык)
Заранее спасибо

  Ответить  
 
 автор: Дядя Федор   (17.08.2010 в 13:02)   личное сообщение
 
 

Может так - здесь и комп и юзер (текст ест-но не мой,откуда не помню)

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

  Ответить  
 
 автор: snipe   (17.08.2010 в 13:12)   личное сообщение
 
 

это я уже юзал
выдает имя компьютера - в данном случае имя сервера в сети
в том то вся проблемка что все юзеры физически сидят на одном компе и имя у него одно а вот учетные записи у юзеров разные

  Ответить  
 
 автор: Дядя Федор   (17.08.2010 в 13:15)   личное сообщение
 
 

на одном...

  Ответить  
 
 автор: snipe   (17.08.2010 в 14:57)   личное сообщение
 
 

ага
у юзера только монитор, клава и мышь
системный блок выполняет функцию связи с сервером терминалов и его конфигурация минимальная, все проги обрабатываются сервером

  Ответить  
 
 автор: osmor   (17.08.2010 в 15:25)   личное сообщение
 
 

проверьте все же функцию UserName которую ДФ дал

  Ответить  
 
 автор: snipe   (17.08.2010 в 15:28)   личное сообщение
 
 

хорошо - только завтра 19:30 уже

  Ответить  
 
 автор: snipe   (18.08.2010 в 05:56)   личное сообщение
33 Кб.
 
 

выкидывает ошибку =>

  Ответить  
 
 автор: Дядя Федор   (18.08.2010 в 08:00)   личное сообщение
 
 

на что? у меня все работает. даже на одном компе.
сделай в модуле тестовую проц.

Public Sub testautors()
Dim tekpolz As String
tekpolz = UserName
Debug.print tekpolz
End Sub

  Ответить  
 
 автор: osmor   (18.08.2010 в 11:31)   личное сообщение
 
 

Функция должны быть в модуле, а не в модуле формы

  Ответить  
 
 автор: Анатолий (Киев)   (18.08.2010 в 11:05)   личное сообщение
 
 

Возможно как-то с помощью WMI, но, если база всегда запускается с ярлыка, то я бы сделал проще. В ярлыке добавить параметр /cmd "Имя юзера" и получать это имя функцией Command.
А еще лучше и надежнее (А2007 не годится) - установить защиту на уровне пользователей (свой MDW).

  Ответить  
 
 автор: snipe   (18.08.2010 в 11:14)   личное сообщение
 
 

Спасибо - попробую

  Ответить  
 
 автор: snipe   (18.08.2010 в 11:48)   личное сообщение
 
 

Всем спасибо (Дяде Федору - особое) заработало

  Ответить  
 
 автор: snipe   (19.08.2010 в 04:49)   личное сообщение
 
 

Далекий голос из инета мне сегодня вещал

Public Function strUserName() as string
strUserName=Environ$("username")
End Function

все равно менять уже не буду - (работает и пускай работает) возьму на заметку

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList