powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / CurrentUser()
25 сообщений из 29, страница 1 из 2
CurrentUser()
    #32138592
SergeyParfenov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кто скажет, в чем проблема?

ИмяПоля.DefaultValue = CurrentUser()

При запуске в поле пишет #Имя?

Поле текстовое.
...
Рейтинг: 0 / 0
CurrentUser()
    #32138621
Suslik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может быть, надо так:

ИмяПоля.DefaultValue = "=CurrentUser()"
...
Рейтинг: 0 / 0
CurrentUser()
    #32138631
SergeyParfenov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Именно так!
...
Рейтинг: 0 / 0
CurrentUser()
    #32138641
SergeyParfenov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А что делать, если это надо вставить в запрос :

openrecordset("Select... WHERE (...=currentuser())")

так не работает
и так не работает

openrecordset("Select... WHERE (...="=currentuser()")")
...
Рейтинг: 0 / 0
CurrentUser()
    #32138684
SergeyParfenov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
CurrentUser()
    #32138716
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемый SergeyParfenov я вот тут за Вашими вопросами наблюдаю и заметил одну вещь которую Вы судя по всему не уловили, попробую объяснить
на примере openrecordset("Select... WHERE (...="=currentuser()")")
openrecordset() - в скобочках должен получить SQL-вариант запроса
"Select... WHERE (...="=currentuser()")" - как вот это интерпритирует Access я не в состоянии представить.
Дело в том что currentuser() - это функция и поместив её в кавычки Вы говорите AccEss'у что это не функция, а какой то текст.
чтобы правильно сформировать эту строку надо весь статичный текст запроса поместить в кавычки, т.е. в строку у нас получаеться 2 строки 1ая
Код: plaintext
 "Select... WHERE (...="  и  ")" 

Между ними нам надо всобачить Значение функции, а не её наименование, т.е. функцию в кавычки ложить не надо, надо её результат в сунуть между предыдущими строками получаем
Код: plaintext
 "Select... WHERE (...=" , currentuser() и  ")" 

Теперь надо это всё соеденить в одну строку это делаеться с помощью символа & получим следуещее выражение:
Код: plaintext
 "Select... WHERE (...="  & currentuser() &  ")" 

Но это ещё не всё, насколько я понимаю Поле в таблице, где лежит имя юзверя имеет тип данных Text, и если Вы обратили внимание значения таких полей в запросе беруться в кавычки.
Если мы сейчас выполним следующую строку:
Код: plaintext
MsgBox  "Select... WHERE (...="  & currentuser() &  ")" 

то увидим на экране
Код: plaintext
Select... WHERE (...=ИмяЮзера)

а такой запрос ессно не выполниться значиться надо добавит кавычки в итоге получаем Вашу строку:
Код: plaintext
 "Select... WHERE (...="  "" & currentuser() & "  "")" 


Так что переодически посматривайте, что за строку вы скармливаете на выполнение Access'у

Suslik писал:Может быть, надо так:

ИмяПоля.DefaultValue = "=CurrentUser()"

Здесь частный случай, дело в том что некоторые properties могут воспринимать в качестве значения функции, и выше написанное аналогично тому если бы Вы в ручную прописали в свойстве DefaultValue этого поля
=CurrentUser()

В итоге могу прибавить что не знаю почему у Вас так не красиво всё получалось
...
Рейтинг: 0 / 0
CurrentUser()
    #32138718
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Where Users=CurrentUser() работает прекрасно, просто расчудесно.
Если бы захотел узнать почему не работает у тебя, ты бы нам сообщение об ошибке прислал.
...
Рейтинг: 0 / 0
CurrentUser()
    #32138787
SergeyParfenov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Отличное объяснение. Но

Пишу:
MsgBox "SELECT aaa.bbb FROM aaa WHERE (aaa.UserName=" & CurrentUser() & ")"

Выводит:

SELECT aaa.bbb FROM aaa WHERE (aaa.UserName=user)

Запихиваю это в Open("SELECT aaa.bbb FROM aaa WHERE (aaa.UserName=" & CurrentUser() & ")")

Выдает ошибку но не о типе, а о не нахождении.
...
Рейтинг: 0 / 0
CurrentUser()
    #32138806
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если запустить этот запрос из обычного акесного запроса, он отработает?
У меня все отработало. Может у тебя проблемы с ссылками. Если есть не правильные, то не работают и др. функции. Посмотри.
...
Рейтинг: 0 / 0
CurrentUser()
    #32138828
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я ж говорил что должно быть
Код: plaintext
openrecordset( "Select... WHERE (...="  "" & currentuser() & "  "")" )
...
Рейтинг: 0 / 0
CurrentUser()
    #32138837
SergeyParfenov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Когда добавляю """...""" в поле все равно #Имя?
...
Рейтинг: 0 / 0
CurrentUser()
    #32138855
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а вот такой код что выдаёт:
MsgBox CurrentUser()
...
Рейтинг: 0 / 0
CurrentUser()
    #32138875
SergeyParfenov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Выдает Usera нормально.

Вот мой код:

Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset

rst.Open ("SELECT aaa.bbb FROM aaa WHERE (((aaa.UserName)=CurrentUser()))"), CurrentProject.Connection


If Not (rst.EOF And rst.BOF) Then
[pole].DefaultValue = rst.Fields("bbb").Value
Else
[pole].DefaultValue = vbNullString
End If

rst.Close
Set rst = Nothing
...
Рейтинг: 0 / 0
CurrentUser()
    #32138911
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
rst.Open ( "SELECT aaa.bbb FROM aaa WHERE (((aaa.UserName)=CurrentUser()))" ), CurrentProject.Connection 
так и написано?
замените выражение в скобках на:
Код: plaintext
 "SELECT aaa.bbb FROM aaa WHERE (((aaa.UserName)="  "" & CurrentUser() & "  ""))" 
и почитайте мой эпос ещё раз

я буду плакать......
...
Рейтинг: 0 / 0
CurrentUser()
    #32138926
SergeyParfenov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я все заменил и ничего не выходит

Формат таблици:

Key - счетчик
Id - текст
Name - текст
_________________
Key Id Name I
--------------------
1 log Petrov I
_________________
соответственно CurrentUser()=log
___________________________________________________________________
Private Sub Form_Load()
Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset

rst.Open ("SELECT g.name FROM g WHERE (((g.id)=""" & CurrentUser() & """))"), CurrentProject.Connection


If Not (rst.EOF And rst.BOF) Then
[Поле0].DefaultValue = rst.Fields("name").Value
Else
[Поле0].DefaultValue = vbNullString
End If

rst.Close
Set rst = Nothing
End Sub
...
Рейтинг: 0 / 0
CurrentUser()
    #32138953
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй так:
rst.Open ("SELECT g.name FROM g WHERE (((g.id)='" & CurrentUser() & "'))"), CurrentProject.Connection

Т.е. должно получиться g.id='Вася'
...
Рейтинг: 0 / 0
CurrentUser()
    #32138961
SergeyParfenov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мужики обнаружил интересную вещь.

[Поле0].DefaultValue = rst.Fields("name").Value
Name в таблице текстового типа, но если вместо букв в таблице писать цифры, все работает.

Это что?
...
Рейтинг: 0 / 0
CurrentUser()
    #32138969
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
там можно как номер поля юзать так и имя покрайне мере в DAO так...
Я юзал имя и никаких проблем
...
Рейтинг: 0 / 0
CurrentUser()
    #32138977
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Name в таблице текстового типа, но если вместо букв в таблице писать цифры, все работает.

>Это что?

Это служебное слово Access. А если цифру подставить равную 999, что будет. Если ошибка - не обнаружено что-то там в семействе, то акес делает неявное преобразование (типа rs.Fields(999) )


Попробуй
rst.Open ("SELECT [g].[name] FROM g WHERE (((g.id)='" & CurrentUser() & "'))"), CurrentProject.Connection
...
Рейтинг: 0 / 0
CurrentUser()
    #32138988
Фотография Senin Viktor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Че-то я не понял топика. Поэтому и выдал чушь.

Конечно к объекту в семействе (любом) можно обращаться как по имени так и по его номеру в коллекции.

rs.fields(0).Value тождественно rs.fields("ИмяСамогоПервогоСтолбца") или rs.fields![ИмяСамогоПервогоСтолбца].rs.fields(0).Name - покажет имя столбца

Но лучше не пользоваться номерами, вдруг добавишь или удалишь столбец и запрос будет возвращать вместо цены покупной цену продужную (это я к примеру)
...
Рейтинг: 0 / 0
CurrentUser()
    #32138990
V. Motchulsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я бы запросы сохранил на сервере, и там и вставил отбор по
WHERE ID=user_id()
...
Рейтинг: 0 / 0
CurrentUser()
    #32139114
SergeyParfenov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По разному пробовал, не получается.
Любое число считывает, а как к нему букву добавишь не читает.

Какой выход?
...
Рейтинг: 0 / 0
CurrentUser()
    #32139131
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделай в конструкторе рабочий запрос и покажи
Да кстате у меня была проблемка с фоксовскими таблицами они иначе чем "LIKE UserName*" не как находить не хотели
...
Рейтинг: 0 / 0
CurrentUser()
    #32139140
SergeyParfenov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SELECT g.Name
FROM g
WHERE (((g.Id)="sp"))
WITH OWNERACCESS OPTION;

Результат Sergey.
...
Рейтинг: 0 / 0
CurrentUser()
    #32139149
Sfagnum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rst.Open ("SELECT g.Name FROM g WHERE (((g.Id)=""" & CurrentUser() & """)) WITH OWNERACCESS OPTION;"), CurrentProject.Connection

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


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