powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Overflow при использовании dlookup
5 сообщений из 5, страница 1 из 1
Overflow при использовании dlookup
    #39195890
Фотография Tarasios
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток всем.
Уважаемые знатоки, подскажите пожалуйста, решение.

Есть образец базы, mdb, ещё формата Access 2000 (в прицепе).
У клиента есть реестр дисконтных карточек, причём их номера состоят из 12-ти символов.
Необходимо, что бы при вводе номера новой карточки программа проверяла его уникальность, и если такой номер уже введён, то, допустим, выдавала сообщение "Номер занят". А если такого номера в реестре ещё нету - появлялось сообщение "Номер свободен".
Таблица с номерами карточек "ТСкидкаРег", поле с номерами - "КодКарты" (тип поля - Числовой, размер - Действительное, точность - 18, с запасом).
В форме с реестром карточек FDiscontSpisok по нажатию кнопки "Новая карточка" открывается форма FRegDiscontKDir с полем для ввода нового номера Штрихкод (поле свободное). Вводим новый номер, жмём кнопочку "Регистрировать".
И по нажатию выполняется:

Private Sub Рег_Click()
Код& = Nz(DLookup("[КодКарты]", "ТСкидкаРег", "[КодКарты] =" & [Forms]![FRegDiscontKDir]![Штрихкод]), 0)
If Код = 0 Then
MsgBox "Номер свободен", vbOKOnly, "Предупреждение"
Else
MsgBox "Номер занят", vbOKOnly, "Предупреждение"
End If
End Sub

Этот способ отлично работает при числах до десяти цифр включительно. Но если вводим номер из 12-ти символов (по условию) - новый
номер обрабатывает правильно (Номер свободен). А если такой номер из 12-ти символов уже существует - выдаёт ошибку Overflow.

Пробовал изменить тип поля для номера карточки на текстовый и, соответственно, менял строку на
Код& = Nz(DLookup("[КодКарты]", "ТСкидкаРег", "[КодКарты] ='" & [Forms]![FRegDiscontKDir]![Штрихкод]& "'"), 0)
Результат - точно такой же, Overflow.
Перерыл кучу справок, форум, подозреваю, что как то надо явно указать тип данных - но ничего пока не получилось.
Спасите, просветите...

С уважением.
...
Рейтинг: 0 / 0
Overflow при использовании dlookup
    #39195892
guest_rusimport
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Tarasios,
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
Private Sub Рег_Click()
Dim Код As Variant
Код = Nz(DLookup("[КодКарты]", "ТСкидкаРег", "[КодКарты] =" & [Forms]![FRegDiscontKDir]![Штрихкод]), 0)
If Код = 0 Then
 MsgBox "Номер свободен", vbOKOnly, "Предупреждение"
Else
 MsgBox "Номер занят", vbOKOnly, "Предупреждение"
End If
End Sub
...
Рейтинг: 0 / 0
Overflow при использовании dlookup
    #39195893
Фотография Tarasios
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо огромное! Работает!
...
Рейтинг: 0 / 0
Overflow при использовании dlookup
    #39196024
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tarasios,
лучше текст если имееются в первой позиции нули
...
Рейтинг: 0 / 0
Overflow при использовании dlookup
    #39196025
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sdku,
извиняюсь-неправ (лоб не наморщил)
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Overflow при использовании dlookup
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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