|
0 / 0 / 0
Регистрация: 08.12.2012
Сообщений: 6
|
|
Поиск значения в ленточной форме средствами VBA04.09.2016, 10:02. Показов 5952. Ответов 13
Метки нет (Все метки)
Есть ленточная форма со списком товаров и их количеством. В одно поле формы считывается штрих код, далее необходимо, что бы происходил поиск товара и списывание его количества. Это я реализовал. Поиск через FindRecord, списыание количества через inputbox. Но в том случае, если товара нет, access ничего не сообщает, и находит мне первый по списку товар. Источник записей формы - запрос.
Вопрос - как сделать, что бы access сообщал, что не нашел вобще введенного товара?
0
|
|
| 04.09.2016, 10:02 | |
|
Ответы с готовыми решениями:
13
|
|
17536 / 7288 / 1663
Регистрация: 21.06.2012
Сообщений: 13,957
|
|
| 04.09.2016, 10:12 | |
|
С сайта MSDN:
"Метод FindRecord не возвращает значение , указывающее , его успех или неудачу. Для того, чтобы определить , существует ли значение в наборе записей, используйте метод FindFirst, FindNext, FindPrevious или FindLast объекта Recordset. Эти методы устанавливают значение свойства NoMatch Истина , если spcified значение не найдено."
1
|
|
|
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
||||||
| 04.09.2016, 10:15 | ||||||
Сообщение было отмечено ltv_1953 как решение
Решение
С помощью FindRecord долго. Быстрее сделать поиск по рекордсету формы. И использовать свойство NoMatch для определения найдено/не найдено. Примерно так (с точностью до имен)
Аппаздал
4
|
||||||
|
0 / 0 / 0
Регистрация: 08.12.2012
Сообщений: 6
|
||||||
| 04.09.2016, 16:32 [ТС] | ||||||
|
Спасибо за совет, но многократные попытки не увенчались успехом
Поле в которое вводится штрих код - BBF (оно существует только в форме, с таблицей не связано) Поле в котором искать Barcode
Возможно, что этого поля как бы не существует? Можно ли в FindFirst загрузить значение переменной поля BBF?
0
|
||||||
|
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|||||||
| 04.09.2016, 16:45 | |||||||
1
|
|||||||
|
0 / 0 / 0
Регистрация: 08.12.2012
Сообщений: 6
|
|
| 04.09.2016, 17:43 [ТС] | |
|
Да, все работает. Глупая ошибка. Спасибо.
0
|
|
|
430 / 38 / 1
Регистрация: 02.03.2016
Сообщений: 436
|
|||||||
| 17.11.2016, 16:39 | |||||||
|
Так не выходит:
0
|
|||||||
|
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
||||||
| 17.11.2016, 16:52 | ||||||
|
В FindFirst параметр это выражение или переменная используемая для поиска записи. Этот аргумент аналогичен предложению WHERE в инструкции SQL (без зарезервированного слова WHERE). И его левая часть (до символов =, >,< и аналогичных) это поле рекордсета. В Вашем примере в левой части используете поле формы, что конечно неверно. Я не знаю как должно быть, но примерно так
1
|
||||||
|
430 / 38 / 1
Регистрация: 02.03.2016
Сообщений: 436
|
|||||||||||
| 17.11.2016, 17:41 | |||||||||||
У меня форма, с ленточной подформой. На форме есть кнопка, по нажатии на которую, должна считаться стоимость во всех записях ленточной формы, связанных с записью главной формы, через поле КодПоступления.
0
|
|||||||||||
|
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|||||||
| 17.11.2016, 18:02 | |||||||
|
Попробуйте вместо With Me.Recordset использовать
1
|
|||||||
|
430 / 38 / 1
Регистрация: 02.03.2016
Сообщений: 436
|
||||||
| 18.11.2016, 00:56 | ||||||
|
Спасибо, так работает..) У меня еще вопрос по поводу .MoveNext, в данном случае он не нужен?, просто с ним пишет что текущая запись не найдена..., а в другом примере данная строчка не вызывает ошибки...
0
|
||||||
|
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|
| 18.11.2016, 01:10 | |
|
FindNext перемещает курсор на найденную запись. Если найденная последняя в наборе, то перемещение на следующую запись (Movenext) вызовет EOF и сообщение об ошибке. Видимо в других примерах чисто случайно найденная запись была не последней. Иначе и там были бы ошибки. При поиске FindNext команда Movenext не нужна.
1
|
|
|
430 / 38 / 1
Регистрация: 02.03.2016
Сообщений: 436
|
||
| 18.11.2016, 01:20 | ||
|
Теперь понятно, уберу в других примерах..) Вы можете объяснить или дать ссылку, где просто и понятно рассказано, что такое рекордсет? А то много где использую, а понятия особого не имею...
![]()
0
|
||
|
26826 / 14506 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|
| 18.11.2016, 01:43 | |
|
Рекордсет это набор данных в оперативной памяти из данных таблицы/запроса-источника. DAO-рекордсет существует только на данных таблиц, запросы тоже ведь на таблицах. ADODB-рекордсет может быть и не табличный, свободный.
Набор полей рекордсета может отличаться от полей таблицы если источником ему запрос, где могут быть вычисляемые выражения и константы. У рекордсетов есть свои свойства, методы и функции. Большинства которых, разумеется нет у таблицы/запроса. Наиболее просто рекордсет можно воспринимать как слепок таблицы в оперативной памяти компа. Только с набором инструментов для разработчика. Литературы отдельно по рекордсетам не встречал. Но очень подробно они описаны у Гетца - Access 2002 Разработка настольных приложений, это часть 1. Часть 2 - Разработка корпоративных приложений. Авторы Пол Литвин, Кен Гетц, Майк Гунделой. Очень рекомендую эти книги для изучения Access. Хотя написаны для версии 2002, фактически они ничуть не устарели.
3
|
|
| 18.11.2016, 01:43 | |
|
Помогаю со студенческими работами здесь
14
Вычисление значения свободного поля в ленточной форме
Поле со списком в ленточной форме, чтобы можно было вносить значения без повторений Добавление и удаление полей в форме средствами VBA Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|