powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Форма входа
25 сообщений из 85, страница 2 из 4
Форма входа
    #37399228
ё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ё
Гость
AleX_X89только теперь получается эту команду нужно вставлять после отбора , то есть в целом выглядит так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
...
         Case "Директор"
                 DoCmd.OpenForm "Партнеры"
         Case "Координатор по продажам"
                 DoCmd.OpenForm "Накладные"
         Case "Просто ходит за зарплатой"
                 DoCmd.OpenForm "Форма_для_меня_и_босса"
End Select
DoCmd.Close acForm, "Welcome"
                 End If
      End With
rst.Close
Set rst = Nothing
End Sub

тоже - совсем не обязательно,
вы видимо думаете, что если закрыть форму, её код (который начал выполнение) уже не выполнится ? - это не так
...
Рейтинг: 0 / 0
Форма входа
    #37399321
AleX_X89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ётоже - совсем не обязательно,
вы видимо думаете, что если закрыть форму, её код (который начал выполнение) уже не выполнится ? - это не так
нет я так не думал) Просто раньше когда перебирал варианты и использовал команду
Код: plaintext
DoCmd.Close
после отбора, то она так как закрывает текущее окно, закрывала форму которую мне и нужно было открыть и на практике по клику кнопки "ОК" по сути ничего не происходило. Поэтому там действительно имело значение где написать эту строчку.
Но если бы я думал
ёчто если закрыть форму, её код (который начал выполнение) уже не выполнится
то я бы не ставил команду закрыть форму перед отбором.

Но за разьяснение спасибо. Так как если указать, что именно закрывать уже не важно в каком порядке оно будет идти по сценарию выполнения.
...
Рейтинг: 0 / 0
Форма входа
    #37399365
AleX_X89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
askerliпроверяйте поле логина на пустое значение... если что-то есть, то дальше проверяйте пароль не только на совпадение, но и на Null ... обязаны справиться, не трудно же...

я в общем-то попробовал добавить двигаясь логикой
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
Private Sub cmdLogin_Click()
Dim rst As DAO.Recordset

Set rst = CurrentDb.OpenRecordset("Сотрудники")
      With rst
                 If Me.cboCurrentEmployee.Value = Null Then
                       MsgBox "Ошибка входа! Выберите пользователя."
                       Exit Sub
                 Else:
                 .FindFirst ("ID=" & Me.cboCurrentEmployee.Value)
                 If .NoMatch Then
                       MsgBox "Ошибка входа! О данном пользователе нет информации в БД."
                       Exit Sub
                 Else:
                     If Me.Поле_для_пароля.Value <> .Fields("Пароль").Value Then
                         MsgBox "Пароль не правильный или несоответствует имени пользователя"
                          Exit Sub
                     End If
                     DoCmd.Close
                     Select Case .Fields("Должность").Value 'Естественно поле "Должность" должно быть в таб. "Пользователи"
         Case "Директор"
                 DoCmd.OpenForm "Партнеры"
         Case "Координатор по продажам"
                 DoCmd.OpenForm "Накладные"
         Case "Просто ходит за зарплатой"
                 DoCmd.OpenForm "Форма_для_меня_и_босса"
End Select

                 End If
                 End If
      End With
rst.Close
Set rst = Nothing
End Sub

Но при пустом поле вместо того, чтобы выдать текстовое сообщение с указанным текстом, выскакивает ошибка:
Run-time error '3077'
Ошибка синтаксиса (пропущен оператор) в выражении.
При просмотре в VB указывает на строчку
Код: plaintext
                 .FindFirst ("ID=" & Me.cboCurrentEmployee.Value)
...
Рейтинг: 0 / 0
Форма входа
    #37399376
ё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ё
Гость
AleX_X89,

Код: plaintext
1.
2.
'                 If Me.cboCurrentEmployee.Value = Null Then
                 If isnull(Me.cboCurrentEmployee.Value) Then
...
Рейтинг: 0 / 0
Форма входа
    #37399384
askerli
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот это
Код: plaintext
If Me.cboCurrentEmployee.Value = Null Then
замените на
Код: plaintext
If IsNull(Me.cboCurrentEmployee.Value) Then
...
Рейтинг: 0 / 0
Форма входа
    #37399390
1109
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AleX_X89Форма входа нужна для удобства юзверов и чтобы не нагружать их лишней информацией.

читать про Windows autentification
...
Рейтинг: 0 / 0
Форма входа
    #37399393
AleX_X89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ё
Код: plaintext
1.
2.
'                 If Me.cboCurrentEmployee.Value = Null Then
                 If isnull(Me.cboCurrentEmployee.Value) Then


Спасибо большое! Именно это мне и нужно было) Просто не знал правила синтаксиса.

Вот в итоге что получилось, все работает, всем спасибо!

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
Private Sub cmdLogin_Click()
Dim rst As DAO.Recordset

Set rst = CurrentDb.OpenRecordset("Сотрудники")
      With rst
                 If IsNull(Me.cboCurrentEmployee.Value) Then
                       MsgBox "Ошибка входа! Выберите пользователя."
                       Exit Sub
                 Else:
                 .FindFirst ("ID=" & Me.cboCurrentEmployee.Value)
                 If .NoMatch Then
                       MsgBox "Ошибка входа! О данном пользователе нет информации в БД."
                       Exit Sub
                 Else:
                     If Me.Поле_для_пароля.Value <> .Fields("Пароль").Value Then
                         MsgBox "Пароль не правильный или несоответствует имени пользователя"
                          Exit Sub
                     End If
                     If IsNull(Me.Поле_для_пароля.Value) Then
                         MsgBox "Вы не ввели пароль!"
                          Exit Sub
                     End If
                     DoCmd.Close
                     Select Case .Fields("Должность").Value 'Естественно поле "Должность" должно быть в таб. "Пользователи"
         Case "Директор"
                 DoCmd.OpenForm "Партнеры"
         Case "Координатор по продажам"
                 DoCmd.OpenForm "Накладные"
         Case "Просто ходит за зарплатой"
                 DoCmd.OpenForm "Форма_для_меня_и_босса"
End Select
                 End If
                 End If
      End With
rst.Close
Set rst = Nothing
End Sub
...
Рейтинг: 0 / 0
Форма входа
    #37399417
askerli
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для информации... после Else двоеточие ставить не нужно
...
Рейтинг: 0 / 0
Форма входа
    #37399453
AleX_X89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
askerliдля информации... после Else двоеточие ставить не нужно
спасибо)
...
Рейтинг: 0 / 0
Форма входа
    #37399488
Осьменоги
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AleX_X89
Код: plaintext
MsgBox "Пароль не правильный или несоответствует имени пользователя"

бзз-з-з
Код: plaintext
MsgBox "Пароль неправильный или не соответствует имени пользователя"

Код: plaintext
1.
2.
 \/
>00<
 /\
...
Рейтинг: 0 / 0
Форма входа
    #37399531
AleX_X89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОсьменогиAleX_X89
Код: plaintext
MsgBox "Пароль не правильный или несоответствует имени пользователя"

бзз-з-з
Код: plaintext
MsgBox "Пароль неправильный или не соответствует имени пользователя"

Код: plaintext
1.
2.
 \/
>00<
 /\


Этот текст я просто скопировал) а на ошибки просто не обратил внимания) но спасибо
...
Рейтинг: 0 / 0
Форма входа
    #37404616
Фотография Wipeout2097
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AleX_X89Ошибка синтаксиса, пропущен оператор в выражении.
В поле со списком "Имя_пользователя" в свойствах по умолчанию ставите значение Null. А еще лучше в свойстве "Ограничится списком" поставить "Да". В поле "Пароль" ставите тоже значение по умолчанию Null.
На нажатие кнопки перед выполнением её основного кода (открытия формы или что она там делает) прописывайте:


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Private Sub CommandButton_Click()
If IsNull(Me.Имя_пользователя.Value) = True Then
      MsgBox "Вы не выбрали пользователя!", vbExclimation, "Ошибка входа"
      Exit Sub
End If

If IsNull(Me.Пароль.Value) = True Then
      MsgBox "Вы не ввели пароль!", vbExclimation, "Ошибка входа"
      Exit Sub
End If

.....
.....
.....

End Sub
...
Рейтинг: 0 / 0
Форма входа
    #37404619
Фотография Wipeout2097
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AleX_X89,

Прикольная форма приветствия, кстати... Особенно: ... "под которым вы пытайтесь войти"...
...
Рейтинг: 0 / 0
Форма входа
    #37772197
NOOBик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
вот я выбрал такой код,
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
Private Sub Кнопка108_Click()
Dim rst As DAO.Recordset

Set rst = CurrentDb.OpenRecordset("Працівники")
      With rst
                 If IsNull(Me.cboCurrentEmployee.Value) Then
                       MsgBox "Ошибка входа! Выберите пользователя."
                       Exit Sub
                 Else:
                 .FindFirst ("Login" & Me.cboCurrentEmployee.Value)
                 If .NoMatch Then
                       MsgBox "Ошибка входа! О данном пользователе нет информации в БД."
                       Exit Sub
                 Else:
                     If Me.PolePassword.Value <> .Fields("Password").Value Then
                         MsgBox "Пароль не правильный или несоответствует имени пользователя"
                          Exit Sub
                     End If
                     If IsNull(Me.PolePassword.Value) Then
                         MsgBox "Вы не ввели пароль!"
                          Exit Sub
                     End If
                     DoCmd.Close
                     
                 End If
                 End If
      End With
rst.Close
Set rst = Nothing
End Sub



и мне выдает ошибку:
Run-time error '3251':
Операция не поддерживается для объектов этого типа.

подскажите пожалуйста, где я мог сделал ошибку? ((
Спасибо.
...
Рейтинг: 0 / 0
Форма входа
    #37772207
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NOOBик
и мне выдает ошибку:
Run-time error '3251':
Операция не поддерживается для объектов этого типа.

подскажите пожалуйста, где я мог сделал ошибку? ((
Спасибо.
а на какой строке эта ошибка ?

тут, как минимум,
Код: vbnet
1.
.FindFirst ("Login" & Me.cboCurrentEmployee.Value)


х-рь написана ...
...
Рейтинг: 0 / 0
Форма входа
    #37772209
NOOBик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qwerty112,

да именно там((
...
Рейтинг: 0 / 0
Форма входа
    #37772217
NOOBик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qwerty112
Код: vbnet
1.
.FindFirst ("Login" & Me.cboCurrentEmployee.Value)


х-рь написана ...

х-рь ?(((
...
Рейтинг: 0 / 0
Форма входа
    #37772230
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NOOBикqwerty112
Код: vbnet
1.
.FindFirst ("Login" & Me.cboCurrentEmployee.Value)


х-рь написана ...

х-рь ?(((
она самая ! :)
FindFirst - F1
...
Рейтинг: 0 / 0
Форма входа
    #37772240
Фотография mds_world
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qwerty112FindFirst - F1
Даже в этом самом топике есть правильное обращение к FindFirst. Но NOOBик, просто переписывая код, допустил ошибку. И прав qwerty112, посмотрев F1 ("источник знаний"), такой описки не допустишь.
...
Рейтинг: 0 / 0
Форма входа
    #37777182
Фотография Wipeout2097
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NOOBик
Код: vbnet
1.
.FindFirst ("Login" & Me.cboCurrentEmployee.Value)



.FindFirst ("Login=" & Me.cboCurrentEmployee.Value)
...
Рейтинг: 0 / 0
Форма входа
    #37879635
NOOBик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
все что выше написано и делал, в принципе, мне кажется)
...
Рейтинг: 0 / 0
Форма входа
    #37879678
Фотография Программист-Любитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wipeout2097NOOBик
Код: vbnet
1.
.FindFirst ("Login" & Me.cboCurrentEmployee.Value)



.FindFirst ("Login=" & Me.cboCurrentEmployee.Value)
Обычно логин-то - текстовый.
...
Рейтинг: 0 / 0
Форма входа
    #37905858
stasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите пож, почему выдает ошибку в FindFirste ("Операция не поддерживается для объектов этого типа")

Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("Сотрудники")

With rst


If IsNull(Me.login.Value) Then
MsgBox "Выберите пользователя!"
Exit Sub
Else

.FindFirst ("position =" & Me.login.Value)
If .NoMatch Then
MsgBox "Нет такого пользователя!"
Exit Sub
Else
If Me.login.Value <> .Fields("pass").Value Then
MsgBox "Неверный логин или пароль"
Exit Sub
End If
End If

Select Case .Fields("position").Value
Case "user"
DoCmd.OpenForm "user1"
Case "zam"
DoCmd.OpenForm "Form2"
Case "nach"
DoCmd.OpenForm "Form3"

End Select
End If



End With


rst.Close
Set rst = Nothing
...
Рейтинг: 0 / 0
Форма входа
    #37905887
alvk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
Set rst = CurrentDb.OpenRecordset("select * from Сотрудники")


или
Код: vbnet
1.
Set rst = CurrentDb.OpenRecordset("врачи", dbOpenDynaset)


или
OpenRecordset F1

и будет вам счастье.
...
Рейтинг: 0 / 0
Форма входа
    #37905900
stasa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Wipeout2097,
подскажите пож, такая же ошибка в FindFirst...

Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("Сотрудники")

With rst


If IsNull(Me.login.Value) Then
MsgBox "Выберите пользователя!"
Exit Sub
Else

.FindFirst ("position =" & Me.login.Value)
If .NoMatch Then
MsgBox "О данном пользователе нет информации"
Exit Sub
Else
If Me.login.Value <> .Fields("pass").Value Then
MsgBox "Неверный логин или пароль!"
Exit Sub
End If
End If

Select Case .Fields("position").Value
Case "user"
DoCmd.OpenForm "user1"
Case "zam"
DoCmd.OpenForm "Form2"
Case "nach"
DoCmd.OpenForm "Form3"

End Select
End If

End With


rst.Close
Set rst = Nothing
...
Рейтинг: 0 / 0
25 сообщений из 85, страница 2 из 4
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Форма входа
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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