powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Проверка на наличия записей в таблице
10 сообщений из 10, страница 1 из 1
Проверка на наличия записей в таблице
    #39624416
nauf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте! Надо проверить пустая ли таблица "Таб", пишу:
Код: vbnet
1.
if exists("select * from [Tab]") then ...


Ругается на exists - "Сompile error"
Как правильно проверить таблицу на пустоту?
...
Рейтинг: 0 / 0
Проверка на наличия записей в таблице
    #39624421
DarkMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
naufРугается на exists - "Сompile error"
Как правильно проверить таблицу на пустоту?
А использовать count() не пробовали?
...
Рейтинг: 0 / 0
Проверка на наличия записей в таблице
    #39624426
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nauf, для VBA это просто строка. Тем более он не понимает что такое "exists" и чего от него хотят. И правильно что пишет про ошибку, нужно посылать на известные математические символы.
Воспользуйся функцией DCount
Код: vbnet
1.
if DCount("*","[Tab]")>0 then ...
...
Рейтинг: 0 / 0
Проверка на наличия записей в таблице
    #39624427
nauf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DarkMan, Не пробовал. Искал ответ по форумам.В основном советуют Exists. Про count() пишут: "не рационально и при больших таблицах даже опасно. Более правильное решение использовать либо EXISTS(SELECT * FROM your_table)
или SELECT top 1 * FROM your_table"
...
Рейтинг: 0 / 0
Проверка на наличия записей в таблице
    #39624433
nauf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,
Спасибо. Проверил таблицу RecordCount'ом. Работает. А как лучше проверить таблицу на наличие записей Dcount или RecordCount?
...
Рейтинг: 0 / 0
Проверка на наличия записей в таблице
    #39624444
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
naufкак лучше проверить таблицу на наличие записей Dcount или RecordCount?DCount() вызывает однократное выполнение запроса типа SELECT COUNT(*) FROM table и возвращает набор записей из одной записи с одним полем, значение коего сразу и используется. RecordCount вызывает также однократное выполнение заданного Вами запроса, однако возвращает набор из неопределённого количества записей с неопределённым (точнее, определяемым текстом запроса) количеством полей, причём требуемое значение ещё нужно получить, причём иногда для этого требуется выполнить псевдо-фетч всех записей (MoveLast). Т.е. в данном конкретном случае DCount(), несомненно, лучше.
...
Рейтинг: 0 / 0
Проверка на наличия записей в таблице
    #39624445
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
naufкак лучше проверить таблицу на наличие записей Dcount или RecordCount? RecordCount
для начала что-бы узнать через это свойство количество записей нужно открыть этот набор, что не всегда удобно. В некоторых наборах RecordCount будет равняться всегда -1. Правильней в таких случаях проверять положение курсора в наборе - BOF и EOF (эти свойства не должны быть одновременно трай).
С функцией Dcount проще, она компактна и вернёт только результат, без возни с объектами.
...
Рейтинг: 0 / 0
Проверка на наличия записей в таблице
    #39624447
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
naufБолее правильное решение использовать либо EXISTSЗачем смешивать языки? EXISTS это из другой оперы.
...
Рейтинг: 0 / 0
Проверка на наличия записей в таблице
    #39624448
nauf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,
Понял.Спасибо за подробный ответ.
...
Рейтинг: 0 / 0
Проверка на наличия записей в таблице
    #39624457
DarkMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
naufDarkMan, Не пробовал. Искал ответ по форумам.В основном советуют Exists. Про count() пишут: "не рационально и при больших таблицах даже опасно. Более правильное решение использовать либо EXISTS(SELECT * FROM your_table)
или SELECT top 1 * FROM your_table"

Так Вас и не заставляют гонять всю таблицу , Вам необходимо проверить есть ли записи в таблице , а наличие хоть одной записи уже говорит о том , что она не пуста .
Вам уже посоветовали использовать DCount() , правда лично я не пользуюсь этой функцией , а создаю свою , но это большой роли не играет. Спасибо.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Проверка на наличия записей в таблице
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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