Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/40: Рейтинг темы: голосов - 40, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 26.02.2013
Сообщений: 4
1

Присвоение переменной значения поля таблицы

26.02.2013, 11:57. Показов 7204. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Уважаемые форумчане!

В VBA я не силен, только учусь...
Нужна помощь следующего плана:
Есть БД Access к которой прикручена простенькая "Авторизация" (таблица ID, Логин, Пароль и форма для ввода логина и пароля).
Есть форма, данные из которой вносятся по нажатию кнопки в другую таблицу "Проверка", в которую, в свою очередь, должна попадать также информация о пользователе, который ее туда заносит.

Как сделать так, чтобы ID пользователя, который "вошел в БД" где-то фиксировался и в конечном итоге по нажатию на кнопку Записать вносился с остальными данными, которые пользователь занес в форму, в таблицу "Проверка"?

На текущий момент я вижу это так:
- в ходе авторизации некой переменной присваивается значение поля ID
- по нажатию на кнопку записать при помощи Insert into данные вносятся в конечную таблицу

Если ход моих рассуждений верен, то у меня не получается присвоить переменной значение конкретной ячейки...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.02.2013, 11:57
Ответы с готовыми решениями:

Присвоение переменной значения ячейки таблицы Word
есть работающий макрос. переносит данный таблицы из ворда и заполняет книгу экселя. Dim wdTbl As...

Присвоение переменной значения ячейки
Доброе время суток!! Не переводит в массив значения в ячейках, что с этим файлом не так? при...

Присвоение переменной значения ячейки.
Доброе время! Подскажите как присвоить переменной значение ячейки (в одной рабочей книге) для...

Присвоение значения поля в форме БД access
Доброй ночи, подскажите как сделать отдельный функцию в отдельном модуле который присваивал бы...

3
2842 / 774 / 41
Регистрация: 20.05.2012
Сообщений: 2,055
26.02.2013, 15:48 2
Путеводитель по разделу
Смотри подраздел Код VBA
0
0 / 0 / 0
Регистрация: 26.02.2013
Сообщений: 4
26.02.2013, 16:27  [ТС] 3
В путеводителе уже смотрел, возможно, недостаточно внимательно... Поковыряю еще.
"Парольный доступ" реализовал, не могу решить проблему именно с фиксацией залогинившегося пользователя в таблицах, в которые он вносит данные через форму.
0
2842 / 774 / 41
Регистрация: 20.05.2012
Сообщений: 2,055
27.02.2013, 17:50 4
А пользователь в (сеансовой) переменной? Либо это имя пользователя в рабочей группе (до 2003) или пользователя в системе?

Добавлено через 2 часа 14 минут
Цитата Сообщение от Nicollum Посмотреть сообщение
На текущий момент я вижу это так:
- в ходе авторизации некой переменной присваивается значение поля ID
- по нажатию на кнопку записать при помощи Insert into данные вносятся в конечную таблицу

Если ход моих рассуждений верен, то у меня не получается присвоить переменной значение конкретной ячейки...
Да, извиняюсь, не дочитал до конца, правильно. Должна быть отдельная таблица пользователей. В переменную запоминать лучше не ID, но имя юзера, так как теоретич значение счётчика может измениться, а при создании записи вносить этот стринг в таблицу. Кроме того, в зависимости от задач, в соотв таблицах могут быть поля не только Кто создал запись, но и Кто её изменил потом, а также время создания (для этого достаточно значения по умолчанию в таблице =Now); время изменения записи (также); Виндовс юзер; пользователь рабочей группы (если соэдана). Последнее (если уж совсем серьёзно) тогда наверно лучше сделать отдельным логом - например, связанной таблицей (или связанным текстовым, можно кодированным, файлом).
- Получение конктретного значения из таблицы:
переменная = Nz(DLookup("ПолеЛогин", "tblПользователи"), vbNullString) или с формы, лучше функцией.
- Винюзер:
Visual Basic
1
2
3
4
5
6
Function CurrUser () as String
Dim oWS as Object
Set oWS = CreateObject("WScript.Network")
CurrUser = oWS.username
Set oWS = nothing
End function
- Пользователь рабочей группы (если группы нет, то по умолчанию Admin) - встроенная функция CurrentUser.

"Присвоить переменной значение конкретной ячейки". Когда в форме авторизации в поле со списком из таблицы пользователей выбирается значение, его можно записывть в переменную, например, на событии После обновления поля:
переменная = Me.Поле.
После чего её подставлять, куда надо. С рабочими таблицами у себя не нашёл примера, вот на примере процедуры записи в лог ошибок:
Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Public Sub WriteInErrorsLog(ByVal strProc As String)
'Входной параметр - имя процедуры,в которой возникла ошибка.
Dim app As New Access.Application
Dim ws As Object
Set ws = CreateObject("wscript.network")
Dim sql As String
 
sql = "INSERT INTO sysErrorsLog_Clsss (ErrorNumber,ErrorDescript,WinUser,GroupUser,ErrorProcName) " _
  & " VALUES (" & Err.Number & ", '" & Replace(Err.Description, "'", "''") & "', '" _
  & ws.UserName & "', '" & app.CurrentUser & "', '" & strProc & "');"
'Debug.Print sql
 
CurrentProject.Connection.Execute sql    'ADO
 
Set app = Nothing: Set ws = Nothing
End Sub

Авторизация
0
27.02.2013, 17:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.02.2013, 17:50
Помогаю со студенческими работами здесь

Присвоение переменной значение поля таблицы
Необходимо присвоить переменной Way значение поля Расстояние_км в таблице Путевой_лист....

Присвоение переменной значения определенного поля БД
Как привязать переменной значение определенного столбца в БД? Можно сделать что нибудь похожее на...

Присвоение переменной значения поля из базы
Label10.DataBindings.Add("text", BSCounter, "Vopros", True, DataSourceUpdateMode.OnValidation)...

Присвоение значения поля из другой таблицы по нажатии кнопки
Доброго времени суток. Такой казалось бы простой вопрос, но реализовать не получается. Есть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru