Хобрук: Ваш путь к мастерству в программировании

в MS ACCESS можно сделать: DoCmd.OpenForm Dlookup?

MS Access 2013 У меня есть таблица tblUser со следующими данными (имя пользователя/пароль/StartForm). У меня есть система входа в систему, где пользователь вводит в поле формы txtLogin свое имя пользователя.

После совпадения имени пользователя и пароля мне нужно открыть определенную форму для каждого пользователя (в зависимости от его функции в компании). У меня есть этот код, но я не могу понять проблему.

DoCmd.OpenForm DLookup("StartForm", "tblUser","[UserName]='" & txtLogin & "';")

Я только начинаю программировать и хочу учиться, а не копировать/вставлять код, поэтому я очень признателен, если вы дадите мне простое объяснение.

Спасибо

20.03.2015

  • привет @HansUp. Да .. Я придумал ответ. Спасибо 20.03.2015

Ответы:


1

Первым параметром DoCmd.OpenForm является имя формы. Чтобы открыть форму для определенного параметра, вам нужно использовать 4-й параметр, который является WhereCondition.

Функция Dlookup здесь не нужна. Он используется для возврата одного столбца из одной записи, где исходный столбец является первым параметром, а исходная таблица — вторым параметром. Он знает, какую запись брать по критерию поиска, третьему параметру.

При такой настройке вы просите DoCmd.OpenForm открыть форму с именем [the result of your DLookup call] без применения фильтра.

То, что вы хотите, больше похоже на это

DoCmd.OpenForm NameOfYourUserForm, acNormal, , "[UserName]='" & txtLogin & "'"
20.03.2015
  • Привет. ваш ответ был поучительным, и я ценю. Я закончил тем, что использовал другой метод, хотя. Спасибо 20.03.2015

  • 2

    Я смог решить проблему следующим образом. Я создал переменную для формы, которую хочу вызвать (nomeForm), и использовал Dlookup, чтобы найти подходящую форму для каждого пользователя.

    Спасибо

    Private Sub cmdLogin_Click()
    
         Dim rst As Recordset
         Dim nomeUsuario As String
    
        If IsNull(txtLogin) Or IsNull(txtSenha) Then
        MsgBox "Preencha o login e senha"
        Exit Sub
        End If
    
        nomeUsuario = txtLogin
    
        Set rst = CurrentDb.OpenRecordset("SELECT * FROM tblUser WHERE UserName = '" & txtLogin & "' AND Password = '" & txtSenha & "';")
    
        If rst.RecordCount = 1 Then
    
        bcansafelyclose = True
        DoCmd.Close
    
        Dim nomeForm As String
        nomeForm = DLookup("Start", "tblUser", "UserName = '" & nomeUsuario & "'")
    
        DoCmd.OpenForm nomeForm
    
        Else
    
        MsgBox "Login ou senha incorretos"
        bcansafelyclose = False
    
        End If
    
        rst.Close
    
        End Sub
    
    20.03.2015
    Новые материалы

    Создание кнопочного меню с использованием HTML, CSS и JavaScript
    Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

    Внедрите OAuth в свои веб-приложения для повышения безопасности
    OAuth — это широко распространенный стандарт авторизации, который позволяет приложениям получать доступ к ресурсам от имени пользователя, не раскрывая его пароль. Это позволяет пользователям..

    Классы в JavaScript
    class является образцом java Script Object. Конструкция «class» позволяет определять классы на основе прототипов с чистым, красивым синтаксисом. // define class Human class Human {..

    Как свинг-трейдеры могут использовать ИИ для больших выигрышей
    По мере того как все больше и больше профессиональных трейдеров и активных розничных трейдеров узнают о возможностях, которые предоставляет искусственный интеллект и машинное обучение для улучшения..

    Как построить любой стол
    Я разработчик программного обеспечения. Я люблю делать вещи и всегда любил. Для меня программирование всегда было способом создавать вещи, используя только компьютер и мое воображение...

    Обзор: Машинное обучение: классификация
    Только что закончил третий курс курса 4 часть специализации по машинному обучению . Как и второй курс, он был посвящен низкоуровневой работе алгоритмов машинного обучения. Что касается..

    Разработка расширений Qlik Sense с qExt
    Использование современных инструментов веб-разработки для разработки крутых расширений Вы когда-нибудь хотели кнопку для установки переменной в приложении Qlik Sense? Когда-нибудь просили..