Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Аномалия dlookup  [new]
artursa
Member

Откуда:
Сообщений: 30
Есть таблица клиенты. Там поля [ID клиента] и [Пароль]
1000 abc
1001 def
1002 ghi
1003 jkl

На форме inputboxы. С них считываются str - логин и str2 - пароль
Делаю следующее:
If str = DLookup("[ID клиента]", "Клиенты") And str2 = DLookup("[Пароль]", "Клиенты") Then
      DoCmd.OpenReport "Поставка", acViewPreview, , "[Поставка]![ID клиента]=" & str
      Else
      MsgBox ("Неправильный логин или пароль")
      End If

Так вот трабла в том, что: если ввести первого: 1000 и пароль abc, то всё пучком выводит, а если любого другого клиента и соответствующий пароль, то пишет что неправильно. Аномалия?
11 апр 07, 18:19    [4008483]     Ответить | Цитировать Сообщить модератору
 Re: Аномалия dlookup  [new]
Владимир Саныч
Member

Откуда: Израиль (причем это 1 человек, а не 2 => прошу на ты)
Сообщений: 40414
Это значит, что:

DLookup("[ID клиента]", "Клиенты") -> это 1000
DLookup("[Пароль]", "Клиенты") -> это abc

А раз они этому равны, то ничему другому они равны не будут.
11 апр 07, 18:22    [4008511]     Ответить | Цитировать Сообщить модератору
 Re: Аномалия dlookup  [new]
Владимир Саныч
Member

Откуда: Израиль (причем это 1 человек, а не 2 => прошу на ты)
Сообщений: 40414
P.S.
artursa
Есть таблица клиенты. Там поля [ID клиента] и [Пароль]
1000 abc
1001 def
1002 ghi
1003 jkl

Вот ведь и подтверждение. Dlookup возвращает первую строчку.
11 апр 07, 18:22    [4008517]     Ответить | Цитировать Сообщить модератору
 Re: Аномалия dlookup  [new]
artursa
Member

Откуда:
Сообщений: 30
получается...чё-то я нахимичил.
11 апр 07, 18:27    [4008564]     Ответить | Цитировать Сообщить модератору
 Re: Аномалия dlookup  [new]
4321
Member [заблокирован]

Откуда:
Сообщений: 3573
artursa
получается...чё-то я нахимичил.
ага



по смыслу нарно че-то такова хочишь:
If str = DLookup("[ID клиента]", "Клиенты",   "[Пароль] = '" &  str2 & "'" Then
11 апр 07, 18:31    [4008591]     Ответить | Цитировать Сообщить модератору
 Re: Аномалия dlookup  [new]
4321
Member [заблокирован]

Откуда:
Сообщений: 3573
4321
If str = DLookup("[ID клиента]", "Клиенты",   "[Пароль] = '" &  str2 & "'") Then
скопку забыл
11 апр 07, 18:32    [4008599]     Ответить | Цитировать Сообщить модератору
 Re: Аномалия dlookup  [new]
artursa
Member

Откуда:
Сообщений: 30
Во во. Спасибо. Я эту ф-ю просто не допонял.
11 апр 07, 18:33    [4008600]     Ответить | Цитировать Сообщить модератору
 Re: Аномалия dlookup  [new]
mds_world
Member

Откуда: Ташкент
Сообщений: 27548
Вам нужно по другому опрашивать. Не DLookup, а DCount. Возвратится количество соответствий, если оно равно 0, значит пароль неверный
Примерно так
If Dcount("[ID клиента]", "Клиенты", "[ID клиента]='" & str)>0 Then ' Есть логин
11 апр 07, 18:34    [4008609]     Ответить | Цитировать Сообщить модератору
 Re: Аномалия dlookup  [new]
4321
Member [заблокирован]

Откуда:
Сообщений: 3573
да, тока поменяй логин и пароль местами пароль он могет (in principia) повторяцо, а логин - не-а.
11 апр 07, 18:35    [4008616]     Ответить | Цитировать Сообщить модератору
 Re: Аномалия dlookup  [new]
mds_world
Member

Откуда: Ташкент
Сообщений: 27548
И я забыл
If Dcount("[ID клиента]", "Клиенты", "[ID клиента]='" & str & "'")>0 Then ' Есть логин
11 апр 07, 18:36    [4008626]     Ответить | Цитировать Сообщить модератору
 Re: Аномалия dlookup  [new]
4321
Member [заблокирован]

Откуда:
Сообщений: 3573
во мсворд прально шепчет - если про уни-кальность ничо не известно, то ващще надо проверять само наличие строк.
11 апр 07, 18:36    [4008628]     Ответить | Цитировать Сообщить модератору
 Re: Аномалия dlookup  [new]
artursa
Member

Откуда:
Сообщений: 30
эт поправил. вопрос возникла естчо:
1. Если вводишь например: "qweqwe" "ssdafdf" то он ругается "Предыдущая операция прервана пользователем" Как это может быть связано?
11 апр 07, 18:45    [4008708]     Ответить | Цитировать Сообщить модератору
 Re: Аномалия dlookup  [new]
Karfaqen
Member

Откуда:
Сообщений: 7010
Если ваш DLookUp не найдет нужной записи, он вернет NULL и его сравнение со строкой вызовет ошибку. Можно делать Nz от DLookup, либо использовать DCount который всегда чего-нибуддь да вернет ;)
11 апр 07, 19:05    [4008841]     Ответить | Цитировать Сообщить модератору
 Re: Аномалия dlookup  [new]
artursa
Member

Откуда:
Сообщений: 30
If IsNumeric(str) And str2 = DLookup("[Пароль]", "Клиенты", "[ID клиента]=" & str) Then
Ошибощка...
Неужели получив неудачу в изнумерике он идёт дальше7
11 апр 07, 19:39    [4008963]     Ответить | Цитировать Сообщить модератору
 Re: Аномалия dlookup  [new]
artursa
Member

Откуда:
Сообщений: 30
я ошибся не str а str2 там
11 апр 07, 19:39    [4008966]     Ответить | Цитировать Сообщить модератору
 Re: Аномалия dlookup  [new]
artursa
Member

Откуда:
Сообщений: 30
всё правильно было оказыца )
11 апр 07, 19:41    [4008974]     Ответить | Цитировать Сообщить модератору
 Re: Аномалия dlookup  [new]
Владимир Саныч
Member

Откуда: Израиль (причем это 1 человек, а не 2 => прошу на ты)
Сообщений: 40414
artursa
Неужели получив неудачу в изнумерике он идёт дальше7

Конечно.
11 апр 07, 19:43    [4008979]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить