|
0 / 0 / 0
Регистрация: 19.02.2018
Сообщений: 67
|
|||||||||||
Проверка в VBA на NULL29.03.2018, 09:21. Показов 10056. Ответов 43
Метки нет (Все метки)
Добрый день. Проблема такая в макросе VBA есть такая строка:
Хорошо делал проверку такого плана:
И у меня еще возник вопрос каким образом в vba можно прочитать значение из поля со списком в котором источником строк является запрос.
0
|
|||||||||||
| 29.03.2018, 09:21 | |
|
Ответы с готовыми решениями:
43
Проверка на 0 или NULL Проверка запроса SELECT на null
|
|
Модератор
|
||||||
| 29.03.2018, 09:48 | ||||||
|
попробуйте
ос_внеш = "" & DLookup("[всего ос]", "[Итоги для отчета по ПАБ(внеш)]", "[всего ос]")
0
|
||||||
|
0 / 0 / 0
Регистрация: 19.02.2018
Сообщений: 67
|
||
| 29.03.2018, 10:24 [ТС] | ||
|
shanemac51, добрый день. попробовал как сказали но выходит ошибка такого плана:
Sub or Function not defined - это я так понимаю проблема с объявлением переменных. ошибка горит на строке : Private Sub Report_Open(Cancel As Integer) Что значит:
0
|
||
|
Модератор
|
||
| 29.03.2018, 10:29 | ||
|
вы ошиблись, а я не заметила
ос_внеш = "" & DLookup("[всего ос]", "[Итоги для отчета по ПАБ(внеш)]", "[всего ос]") к конце должно быть условие поиска, а у вас непонятно что Добавлено через 1 минуту
0
|
||
|
0 / 0 / 0
Регистрация: 19.02.2018
Сообщений: 67
|
||
| 29.03.2018, 10:55 [ТС] | ||
|
ос_внеш = "" & DLookup("[всего ос]", "[Итоги для отчета по ПАБ(внеш)]", "[код_подр]=" & текПодразделение) где, текПодразделение = [Forms]![Отчеты по ПАБ]![Подразделение_А].Value Но все равно выходит пусто хотя данные в результатах запроса есть
0
|
||
|
13183 / 5881 / 1506
Регистрация: 05.10.2016
Сообщений: 16,507
|
|
| 29.03.2018, 11:02 | |
|
0
|
|
|
Модератор
|
|
| 29.03.2018, 11:03 | |
|
надо смотреть в базе(и какая форма)
0
|
|
|
0 / 0 / 0
Регистрация: 19.02.2018
Сообщений: 67
|
|||
| 29.03.2018, 11:16 [ТС] | |||
|
откройте форму Отчеты по ПАБ далее выбираем подразделение ЭП 2018 Март и нажать отчет по подразделению на форме выведутся данные. Данные подтягиваются через VBA из двух запросов по строке "Внутренние" идет из запроса "Итоги для отчета по ПАБ(внутр)" ; по строке "Внешние" идут из запроса "Итоги для отчета по ПАБ(внеш)" В марте есть все данные а вот по другим месяцам нет данных по внешним, так как это только внедряем в базу.
0
|
|||
|
Модератор
|
||||||
| 29.03.2018, 11:42 | ||||||
|
каждый раз, как смотрю базу --приходится комментить вызов функций
1
|
||||||
|
13183 / 5881 / 1506
Регистрация: 05.10.2016
Сообщений: 16,507
|
||||||||||||
| 29.03.2018, 11:42 | ||||||||||||
|
В модуль отчёта добавьте "Option Explicit" и исправьте ошибки Должно быть так (сверху модуля) и лучше всех модулей:
DLookup("[кол-во]", "[Итоги для отчета по ПАБ]", "[кол-во]") DLookup("[план]", "[Итоги для отчета по ПАБ]", "[план]") DLookup("[выполн]", "[Итоги для отчета по ПАБ]", "[выполн]") Они не верны - третьим аргументом идёт выражение условия отбора Читайте пожалуйста Функция DLookup ... потом можно будет продолжить ... Вот насобирал для вас:
0
|
||||||||||||
|
Модератор
|
||||||
| 29.03.2018, 11:47 | ||||||
|
а здесь где условия поиска
0
|
||||||
|
0 / 0 / 0
Регистрация: 19.02.2018
Сообщений: 67
|
|||
| 29.03.2018, 12:13 [ТС] | |||
|
Добавлено через 8 минут Нужно понять на одном поле и потом я все по другим поправлю.
0
|
|||
|
13183 / 5881 / 1506
Регистрация: 05.10.2016
Сообщений: 16,507
|
||
| 29.03.2018, 12:15 | ||
|
Но остальной картины это не меняет.
0
|
||
|
0 / 0 / 0
Регистрация: 19.02.2018
Сообщений: 67
|
|
| 29.03.2018, 12:25 [ТС] | |
|
0
|
|
|
13183 / 5881 / 1506
Регистрация: 05.10.2016
Сообщений: 16,507
|
|||||||
| 29.03.2018, 12:27 | |||||||
Правильно - нет не знаю, но так DLookup работает. Примечание: "52" - Значение из Подразделение_А по "ЭП"
0
|
|||||||
|
0 / 0 / 0
Регистрация: 19.02.2018
Сообщений: 67
|
|||||||
| 29.03.2018, 12:37 [ТС] | |||||||
0
|
|||||||
|
13183 / 5881 / 1506
Регистрация: 05.10.2016
Сообщений: 16,507
|
||||||||||||||||||||||
| 29.03.2018, 12:58 | ||||||||||||||||||||||
![]() Так работает:
Kucha88, если не понятно про "Лошадь" и "Телегу", то вот краткое пояснение: 01. Сначала устанавливаем значение переменной:
1
|
||||||||||||||||||||||
|
Модератор
|
||
| 29.03.2018, 13:03 | ||
|
....ведь надписи ос_внеш в отчете нет, значение сосчитали, но не вставили в отчет достаточно и так s1 = "" & DLookup("[кол-во]", "[Итоги для отчета по ПАБ(внеш)]", "[Код_подр]=" & текПодразделение) Me.внешние_а.Caption = s1 если найдет -вставит значение, иначе вставит пробел но это не всегда допустимо --у вас есть деление одного значения на другое в этом случае надо --найти оба значения в s1 и s2 --если первое пустое len(s1)=0, то значение1=0, иначе значение1=val(s1) --если второе пустое len(s2)=0 --значение2=1 , иначе значение2=val(s2) не знаю только что делать, если первое не пустое, а второе пустоу
1
|
||
|
13183 / 5881 / 1506
Регистрация: 05.10.2016
Сообщений: 16,507
|
|
| 29.03.2018, 13:20 | |
|
Kucha88, если хотите, вот пара советов как минимально подготовить MSA к работе разработчика.
01. В настройках VBE установите опцию "Require Variable Declaration" 02. На панель кнопок VBE выведите кнопку Compile - и нажимайте её после редакции кода.
1
|
|
|
0 / 0 / 0
Регистрация: 19.02.2018
Сообщений: 67
|
||||||
| 29.03.2018, 13:54 [ТС] | ||||||
|
Eugene-LS, и shanemac51, - большое спасибо.... буду править сейчас по всем полям и разбираться дальше... если вдруг возникнут вопросы знаю к кому обратиться
![]() Добавлено через 21 минуту Ну вот и возникли опять вопросы, делаю все так как вы писали. по Подразделению ЭП например за март 2018 года поле ОС_Аудитор выводится подтянув данные из запроса, но когда ставлю например подразделение ПБСи2ЭГ то тогда по внутренним строка заполняется вся кроме второго столбца а при ЭП все заполняется, почему так ? код такой:
0
|
||||||
| 29.03.2018, 13:54 | |
|
Помогаю со студенческими работами здесь
20
Проверка корректности ввода на VBA VBA. Проверка на наличие таблиц Проверка введенных данных VBA Проверка нового поля Access VBA БД проверка корректности вводимых значений VBA Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Контроль корректности заполнения дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
kYBz3eJf3jQ
|