Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Взять имя пользователя и вставить в строку таблицы - MS Access / 13 сообщений из 13, страница 1 из 1
12.01.2017, 15:23
    #39383251
quickstar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Взять имя пользователя и вставить в строку таблицы - MS Access
Доброго дня!
Знаю, что подобные темы поднимались, но прочитав их более 10 так и не понял как решить вопрос-ребята общаются как опытные программисты, не понятно для новичка. Прошу помощи.

цель - в таблице access фиксировать создателя и того, кто последний раз редактировал форму/таблицу.
задача 1. определить имя пользователя, который открыл базу данных
задача 2. при открытии формы внести в таблицу имя того, кто последний изменял её.
задача 3. фиксировать кто создал новую строчку в таблице (через ввод новых данных в форме) - вообще не понимаю как сделать.

Прочитав десятки тем и форумов вот, что сделал. Но это не работает.


Option Compare Database

Public Function ComputerName() As String
Dim WshNetwork As Object

Set WshNetwork = CreateObject("WScript.Network")
ComputerName = WshNetwork.ComputerName
End Function

Private Sub Form_Open(Cancel As Integer)
Me.Avtor = ComputerName
End Sub
...
Рейтинг: 0 / 0
12.01.2017, 15:43
    #39383277
MrShin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Взять имя пользователя и вставить в строку таблицы - MS Access
Не ваш вопрос , случаем? :)
...
Рейтинг: 0 / 0
12.01.2017, 15:47
    #39383283
quickstar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Взять имя пользователя и вставить в строку таблицы - MS Access
MrShin, не мой.

А как пользоваться этим Environ("username")?
Как его присвоить значению в столбце таблице "автор"?
...
Рейтинг: 0 / 0
12.01.2017, 15:48
    #39383286
MrShin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Взять имя пользователя и вставить в строку таблицы - MS Access
Имя компьютера можно получить проще:
Код: vbnet
1.
Environ("computername")
...
Рейтинг: 0 / 0
12.01.2017, 15:51
    #39383290
Взять имя пользователя и вставить в строку таблицы - MS Access
quickstar, чтоб внести в создаваемую/редактируемую запись имя создателя/редактора, надо на событии Form_BeforeUpdate присвоить полю значение вашей функции.
...
Рейтинг: 0 / 0
12.01.2017, 15:56
    #39383298
quickstar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Взять имя пользователя и вставить в строку таблицы - MS Access
Анатолий ( Киев ), здорово что Вы так хорошо разбираетесь, а можете прям кодом показать?

я только учусь, еще не понимаю как это сделать.
...
Рейтинг: 0 / 0
12.01.2017, 15:57
    #39383300
MrShin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Взять имя пользователя и вставить в строку таблицы - MS Access
quickstarКак его присвоить значению в столбце таблице "автор"?
Надеюсь, форма у вас не свободная? Тогда просто в событии формы AfterUpdate пишем:
Код: vbnet
1.
2.
3.
Private Sub Form_AfterUpdate()
Me![автор] = Environ("username")
End Sub


Ну или как в ответе на вопрос, можно макрос данных создать на таблицу, тогда значение бедет фиксироваться даже при прямом редактировании таблицы.

Писать можно еще через запрос и через рекордсет
...
Рейтинг: 0 / 0
12.01.2017, 15:57
    #39383301
quickstar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Взять имя пользователя и вставить в строку таблицы - MS Access
MrShin, спасибо.
а как выглядит полный код?
и как выглядит код, чтобы присвоить имя компа в нужный столбец нужной таблицы?
...
Рейтинг: 0 / 0
12.01.2017, 16:00
    #39383303
quickstar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Взять имя пользователя и вставить в строку таблицы - MS Access
MrShin
Ну или как в ответе на вопрос, можно макрос данных создать на таблицу, тогда значение бедет фиксироваться даже при прямом редактировании таблицы.
супер!
а как код выглядит при таком сценарии?
...
Рейтинг: 0 / 0
12.01.2017, 16:03
    #39383307
MrShin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Взять имя пользователя и вставить в строку таблицы - MS Access
quickstarа как выглядит полный код?
Это все, полный.

Для изменения таблиц, не входящих в базу редактируемой формы я обычно использую SQL запросы:

Код: vbnet
1.
CurrentDb.Execute "UPDATE Employees SET ReportsTo = 5 WHERE ReportsTo = 2", dbFailOnError
...
Рейтинг: 0 / 0
12.01.2017, 16:06
    #39383310
MrShin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Взять имя пользователя и вставить в строку таблицы - MS Access
quickstarа как код выглядит при таком сценарии?
Там не VBA код, а макрос, он в ответе приведен полностью. Только вместо GetFullUserInfo() пишете Environ("username")
...
Рейтинг: 0 / 0
12.01.2017, 16:32
    #39383344
quickstar
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Взять имя пользователя и вставить в строку таблицы - MS Access
MrShin, спасибо!!! Вы мастер!!!
Код по записи автора работает!!! :-)

извините, не увидел где GetFullUserInfo()

вижу только CurrentDb.Execute "UPDATE Employees SET ReportsTo = 5 WHERE ReportsTo = 2", dbFailOnError
и опять не понимаю, подскажите макрос в строке вышел - это полный код макроса?
тогда не понимаю как он записывает в столбец "автор" все любые изменения таблицы?
...
Рейтинг: 0 / 0
13.01.2017, 07:58
    #39383723
MrShin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Взять имя пользователя и вставить в строку таблицы - MS Access
quickstarизвините, не увидел где GetFullUserInfo()
Я писал про ответ на SackOverflow и макросы данных. Они появились в Акцесс 2010, если у вас версия 2010 или позже, то имеет смысл читать дальше.

Откройте таблицу в дизайнере, создайте макрос типа Before Change с текстом (если это можно так назвать, конечно):
Код: vbnet
1.
2.
3.
SetField
    Name   автор
    Value   Environ("username")



У меня нет под рукой русского офиса, не могу сказать какие там пункты меню, почитайте справку насчет макросов данных.
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Взять имя пользователя и вставить в строку таблицы - MS Access / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]