Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.02.2013, 23:16   #1
Santosh
Пользователь
 
Регистрация: 30.08.2009
Сообщений: 35
По умолчанию Форма авторизации

Здравствуйте! Прошу помощи со своим проектом.
Access 2010.
1.Нужно сделать форму авторизации в базе типа Логин - пароль.
Логин - фамилия менеджера из таблицы со списком пользователей.


2. Нужно чтобы при создании новой записи в таблице фамилия залогинившегося менеджера по умолчанию подставлялась в одном из столбцов:
Пример
Код Дата Организация Что_сделано Менеджер


Спасибо.
Santosh вне форума Ответить с цитированием
Старый 07.02.2013, 16:36   #2
gluk_fm
Форумчанин
 
Аватар для gluk_fm
 
Регистрация: 09.06.2011
Сообщений: 515
По умолчанию

Добрый день.
Ели я правильно понял суть вопроса то сделайте 2 глобальных переменные и вставляйте их куда Вам удобно.
gluk_fm вне форума Ответить с цитированием
Старый 07.02.2013, 17:02   #3
Emmelman
Пользователь
 
Регистрация: 27.11.2012
Сообщений: 84
По умолчанию

да,сделайте две переменные - MyLog и MyPass, например, присвойте им значения MyLog=Dima, MyPass=12345 и проверяйте с помощью " if " правильность ввода данных в поля,если введено правильно - далее
открывается форма

упс,то, что описал выше - это самое простое и для одного пользователя. Ежели у вас таблица с логином и паролем,то нужно открывать RecordSet и, используя метод Find сравнивать значения того,что будет введено в текстовое поле с значением из таблицы,если совпадение есть - то пускает дальше

Последний раз редактировалось Emmelman; 07.02.2013 в 17:05.
Emmelman вне форума Ответить с цитированием
Старый 07.02.2013, 17:20   #4
Emmelman
Пользователь
 
Регистрация: 27.11.2012
Сообщений: 84
По умолчанию

Цитата:
Сообщение от Santosh Посмотреть сообщение

2. Нужно чтобы при создании новой записи в таблице фамилия залогинившегося менеджера по умолчанию подставлялась в одном из столбцов:
Пример
Код Дата Организация Что_сделано Менеджер
для этого также нужно использовать код, который будет знать какой именно менеджер сейчас активен,для этого в таблице с логинами и паролями нужно добавить поле с именем,допустим, Use с типом данных Yes/no
и вставить такую функцию
Код:
Public Function Active_Close() As Boolean
    Active_Close = False
    Dim My_Open As AccessObject
    For Each My_Open In Application.CurrentProject.AllForms
        If My_Open.IsLoaded = True Then
            If Not (My_Open.Name = "ваша форма,на которой будет устанавливаться активный юзер, я так понимаю - это самая первая ваша будет,где вводится логин и пароль") Then
                DoCmd.Close acForm, My_Open.Name, acSaveNo
            End If
        End If
    Next My_Open
    For Each My_Open In Application.CurrentProject.AllReports
        If My_Open.IsLoaded = True Then
            DoCmd.Close acReport, My_Open.Name, acSaveNo
        End If
    Next My_Open
    Active_Close = True
End Function
чтобы использовать функцию - вставьте следующий код на кнопку,при нажатии которой будет проверяться логин и пароль, не забудьте, все делается внутри RecordSet'a
Код:
Private Sub Command0_Click()
Dim MyL As ADODB.Recordset
    Set MyL = New ADODB.Recordset
    Dim MySQL As String
    MyL.Open "empl_undercontrol", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
With MyL
        .MoveLast
        .MoveFirst
        Dim I As Integer
        I = 0
        For I = 1 To .RecordCount
            .Find ("[Use]=True")
            If Not .EOF() Then
                MyL("Use").Value = False
                .MoveNext
            End If
        Next I
        .MoveLast
        .MoveFirst
       .Find ("[ПОЛЕ С ЛОГИНОМ] = '" & MyJ  & "'")' MyJ - переменная куда заносится логин
        If .EOF Then
            .AddNew
        End If
        ![ПОЛЕ С ЛОГИНОМ] = MyJ
        MyL("Use") = True
        .Update
       MyS = Trim$(DLookup("[ПОЛЕ С ЛОГИНОМ]", "ТАБЛИЦА С ЛОГИНОМ И ПАРОЛЕМ", "[Use]=True")) ' тут введенному логину присвоится значение True в базе, он станет активным,остальные нет, MyS - переменная,где хранится АКТИВНЫЙ логин
End With
MyL.Close
Set MyL = Nothing
end sub
для вызова активного логина используйте такую строчку кода
Код:
.Find ("[Use]=True")
MyS = Trim$(MyL![ПОЛЕ С ЛОГИНОМ]) ' MyL имя рекордсета
Emmelman вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
простая форма авторизации extJS sedoyksa PHP 1 03.10.2011 19:36
ПЕрвая форма, кликая по кнопке, другая форма Nadej C++ Builder 0 02.10.2011 17:58
Ошибка авторизации Lauri Общие вопросы Delphi 2 01.06.2011 10:59
форма авторизации NZero Общие вопросы .NET 3 25.12.2010 00:15
Форма авторизации new player БД в Delphi 4 20.10.2010 12:53