Привет, я создал форму входа как для тренеров, так и для участников, они оба могут войти в одну форму. Однако я хотел бы убедиться, что когда либо тренер, либо участник входит в систему, всплывает окно сообщения и должно быть сказано. "Добро пожаловать = [Имя] &" "& [Фамилия]". Так что в основном после приветствия отображается полное имя участников или тренера.
Может ли кто-нибудь помочь мне, был бы очень признателен, спасибо. Мой код показан ниже.
Option Compare Database
Private Sub Command9_Click()
Dim isTrainer As Boolean, isMember As Boolean
isTrainer = DCount("TrainerFirstName", "tbl4_Trainers", _
"TrainerEmail = [txtEmail] And TrainerPassword = [txtPassword] ") > 0
isMember = DCount("MemberFirstName", "tbl1_Members", _
"MemberEmail = [txtEmail] And MemberPassword = [txtPassword] ") > 0
If isTrainer Or isMember Then
MsgBox ("Welcome & = [TrainerFirstName] & " " & [TrainerLastName] or = [MemberFirstName] & " " & [MemberLastName] ")
DoCmd.Close acForm, "frm1_Member & Trainer Login"
If isTrainer Then
DoCmd.OpenForm "frm3_Main Menu"
Else
DoCmd.OpenForm "frm2_Member Class Registration"
End If
Else
MsgBox ("Login Failed")
End If
End Sub
Объединить переменные. Если поля текстового типа, параметры нуждаются в разделителях апострофа.
isTrainer = DCount("TrainerFirstName", "tbl4_Trainers", _
"TrainerEmail = '" & Me.txtEmail & "' And TrainerPassword = '" & Me.txtPassword & "'") > 0
isMember = DCount("MemberFirstName", "tbl1_Members", _
"MemberEmail = '" & Me.txtEmail & "' And MemberPassword = '" & Me.txtPassword & "'") > 0
Требуется условие для создания приветственного текста MsgBox. Не используйте функцию MsgBox, только MsgBox OkOnly.
MsgBox "Welcome " & IIf(isTrainer, [TrainerFirstName] & " " & [TrainerLastName], [MemberFirstName] & " " & [MemberLastName])
MsgBox "Login Failed"
Не рекомендуется использовать пробелы, знаки препинания и специальные символы (исключение - только подчеркивание) в соглашении об именах. Лучшее название формы:
frm1_MemberTrainerLogin
frm2_MemberClassRegistration
frm3_MainMenu
Похоже, вы пропустили полное имя. Для этого используйте DLookup:
Private Sub Command9_Click()
Dim Trainer As Variant
Dim Member As Variant
Trainer = DLookup("[TrainerFirstName] & ' ' & [TrainerLastName]", "tbl4_Trainers", _
"TrainerEmail = '" & [txtEmail] & "' And TrainerPassword = '" &[txtPassword] & "'")
Member = DLookup("[MemberFirstName] & ' ' & [MemberLastName]", "tbl1_Members", _
"MemberEmail = '" & [txtEmail] & "' And MemberPassword = '" &[txtPassword] & "'")
' To debug:
MsgBox "Trainer: '" & Trainer & "'" & vbCrLf & "Member: '" & Member & "'"
' Note the revised logic: + -> &
If Not IsNull(Trainer & Member) Then
MsgBox "Welcome " & Nz(Trainer, Member)
DoCmd.Close acForm, "frm1_Member & Trainer Login"
If Not IsNull(Trainer) Then
DoCmd.OpenForm "frm3_Main Menu"
Else
DoCmd.OpenForm "frm2_Member Class Registration"
End If
Else
MsgBox "Login Failed"
End If
End Sub
Да. Моя логика была неправильной - вход в систему не удался, если тренер или участник не были найдены. См. Комментарии в отредактированном ответе, пожалуйста.
Я не могу отблагодарить вас достаточно, вы действительно мне очень помогли, и еще раз спасибо за вашу помощь, надеюсь, вам удастся сделать все в будущем.
спасибо за помощь, но я продолжаю получать сообщение "Ошибка входа". Не могли бы вы помочь мне решить эту проблему, спасибо.