Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2013, 09:42   #1
denis.ta-com
Пользователь
 
Регистрация: 16.05.2011
Сообщений: 39
Вопрос Проверка поля на пустоту

Доброго времени суток.
В макросе происходит копирование из таблицы "T1" в таблицу "T2", хочу добавить условие (если ячейка "P4" не пуста то произвести копирование иначе нет) поля обеих таблиц текстовые, таблица "T1" имеет всего 1-у строку (хранит временные данные).
Как написать условие для ячейки таблицы? С формами проблем нет но плодить их не хочется.

...
DoCmd.OpenTable "T2", acViewNormal, acEdit
DoCmd.GoToRecord acTable, "T2", acNewRec
DoCmd.OpenTable "T1", acViewNormal, acEdit
DoCmd.GoToControl "P4"
If ячейка P4 таблицы T1 не пуста Then
DoCmd.RunCommand acCmdCopy
DoCmd.SelectObject acTable, "T2", False
DoCmd.GoToControl "P1"
DoCmd.RunCommand acCmdPaste
DoCmd.SelectObject acTable, "T1", False
DoCmd.GoToControl "P3"
DoCmd.RunCommand acCmdCopy
DoCmd.SelectObject acTable, "T2", False
DoCmd.GoToControl "P2"
DoCmd.RunCommand acCmdPaste
End If
...

Пытался сделать так : If Not IsEmpty(P4.Text) Then
но получаю от Access Object required
при : If [P4] <> "" Then - объект не найден или закрыт
Как сослаться на ячейку таблицы?
denis.ta-com вне форума Ответить с цитированием
Старый 13.03.2013, 10:42   #2
alvk
Форумчанин
 
Регистрация: 22.05.2012
Сообщений: 136
По умолчанию

Не совсем понятен термин "ячейка". У вас точно Акцесс? Копирование вообще что такое? Вы добавляете данные? Делаете update?
DoCmd.RunCommand - аппендикс, имхо.
alvk вне форума Ответить с цитированием
Старый 13.03.2013, 11:25   #3
gluk_fm
Форумчанин
 
Аватар для gluk_fm
 
Регистрация: 09.06.2011
Сообщений: 515
По умолчанию

Доброе утро.
Больше похоже на попытки обработки связанной ексель таблицы
Для проверки пустот можно предложить простой запрос на удаление строк, в котором в условии отбора прописать null or "".
Хорошего дня.
gluk_fm вне форума Ответить с цитированием
Старый 13.03.2013, 13:34   #4
denis.ta-com
Пользователь
 
Регистрация: 16.05.2011
Сообщений: 39
По умолчанию

Это точно Access, а макрос был преобразован в VBA, удалять строки мне не нужно, в таблице "T1" всего одна стока, а полей несколько (которые могут быть заполнены или нет)
Ячейка - это область, определяемая пересечением столбца и строки таблицы. В моем случае 1-ая срока столбец(поле) "P4"/
Как значение этой ячейки можно использовать в условии на дальнейшее выполнение макроса?
denis.ta-com вне форума Ответить с цитированием
Старый 13.03.2013, 15:01   #5
Ameli1
 
Регистрация: 24.04.2010
Сообщений: 3
По умолчанию

Чтобы обратиться к полю закрытой таблицы, используем функцию DLookUp("[название поля]","[название таблицы]","условия отбора, если требуются").
Чтобы проверить, не пуста ли текстовая "ячейка", то:
If DLookUp("[название поля]","[название таблицы]") <> "" Then
Ameli1 вне форума Ответить с цитированием
Старый 13.03.2013, 15:52   #6
denis.ta-com
Пользователь
 
Регистрация: 16.05.2011
Сообщений: 39
По умолчанию

Ameli1 огромное спасибо, работает.
Посоветуйте, плиз, справочник команд для VBA Access, очень бы пригодился.
denis.ta-com вне форума Ответить с цитированием
Старый 14.03.2013, 07:15   #7
alvk
Форумчанин
 
Регистрация: 22.05.2012
Сообщений: 136
По умолчанию

Цитата:
Сообщение от denis.ta-com Посмотреть сообщение
Ameli1 огромное спасибо, работает.
Посоветуйте, плиз, справочник команд для VBA Access, очень бы пригодился.
Бросьте вы это дело, нормальные программисты в Акцесс этим не пользуются.
Посмотрите вот эту ссылку:
http://www.cyberforum.ru/ms-access/thread389099.html


p.s. Ameli, не знал, что ты тоже тут бываешь, рад видеть.
alvk вне форума Ответить с цитированием
Старый 14.03.2013, 09:06   #8
denis.ta-com
Пользователь
 
Регистрация: 16.05.2011
Сообщений: 39
По умолчанию

Спасибо буду просвещаться.
denis.ta-com вне форума Ответить с цитированием
Старый 03.01.2016, 20:44   #9
Dvoishnik
Форумчанин
 
Регистрация: 12.02.2011
Сообщений: 808
По умолчанию

мне кажется вопрос по теме будет не подскажете, как проверить поле на пустоту в запросе
я пробовал так
Код:
SELECT sum( cena*kolvo) 
FROM postavshiki INNER JOIN (nakladnaya INNER JOIN ((articul INNER JOIN postyplenie ON articul.art = postyplenie.art) INNER JOIN s_razmer ON postyplenie.k_razm = s_razmer.k_razm) ON nakladnaya.n_postvk = postyplenie.n_postvk) ON postavshiki.k_postavshik = nakladnaya.k_postavshik 
WHERE (((nakladnaya.Plan_date_pos)>=42368 And (nakladnaya.Plan_date_pos)<=42368) and (data_postvk = null) );
в БД есть поле data_postvk типа дата пустое. и есть несколько заполненных
Код:
WHERE (((nakladnaya.Plan_date_pos)>=42368 And (nakladnaya.Plan_date_pos)<=42368) and (data_postvk <> 0) );
допустим работает верно
знаю как решить вложенным запросом но не хочется лишний раз мудрить.

так за работало.
Код:
WHERE (((nakladnaya.Plan_date_pos)>=42368 And (nakladnaya.Plan_date_pos)<=42368) and not(data_postvk <>null) );
Терпение!Дежурный экстрасенс скоро свяжется с вами!

Последний раз редактировалось Dvoishnik; 03.01.2016 в 20:48. Причина: зря спрашивал.
Dvoishnik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка строки на пустоту Стремящийся JavaScript, Ajax 2 12.05.2012 12:10
Проверка множества Memo на пустоту flouwjke Помощь студентам 3 29.04.2012 20:56
Проверка поля на надежность Alex Jordan БД в Delphi 3 14.06.2011 23:13
Проверка RichViewEdit на пустоту Shouldercannon Общие вопросы Delphi 2 22.05.2010 02:58
проверка файла на пустоту vitaliy1911 Общие вопросы Delphi 7 19.05.2010 22:16