|
|
|
| У меня до сих пор нет в арсенале функции проверки - пуста ли таблица. (ACCESS 2003)
Подкиньте идей. И нюансы. | |
|
| |
|
|
|
|
| Хорошая идея, но много кода перед EOF
ПоЛУЧАЕТся
Public Function FUN_FREE_TABLE( STR_TABLE_NAME as string ) As Boolean
' проверка таблицы на пустоту
' Если FUN_FREE_TABLE = True - таблица пуста
Dim db As Database
Dim RST As Recordset
Set db = CurrentDb
' предположим занято...
FUN_FREE_TABLE = False
' -----------------
On error goto NAFIG
' проверяем
Set RST = db.OpenRecordset( STR_TABLE_NAME, dbOpenDynaset)
If RST.EOF Then FUN_FREE_TABLE =True
Exit Function
NAFIG:
End Function
|
| |
|
| |
|
|
|
| а можно вопрос - зачем оно?
зачастую (очень) рекордсет обрабатывается циклом поставь
Do While rst.Eof=False
Loop
и всё либо будеть робить либо пойдёть дальше. | |
|
| |
|
|
|
| Ды нет, мне не для этого.
Мне - что бы пользователю сказать - что "СВОБОДЕН...."
И при нажатии на кнопку - проверить стоит ли огород городить или сразу из события нажатия кнопки выйти.
If FUN_FREE_TABLE = True Then exit sub
If FUN_FREE_TABLE = True Then Msgbox "А ты сначала заполни таблу, а уж потом....."
|
| |
|
| |
|
|
|
| ну так это стандартный интерфейс общения с ......., проверяй по функции и фсё, конечно мона поиздеваться - вывести пустую форму/отчет, а потома уточнить "ФИг вам товарищЪ!" | |
|
| |
|
|
|
| есть вот вариант вычитал в инете
$result=mysql_query('select * from vasha_tablica');
Переменная $num хранит количество записей в таблице или 0 если она пустая.
|
| |
|
| |
|
|
|
|
| час - хоть круть верть, хоть верть круть. тебе от запроса и обработкой яго не отвертеться. | |
|
| |
|
|
|
| А если так?
i = CurrentDB.TableDefs("ИмяТаблицы").RecordCount | |
|
| |
|
|
|
|
| Попробовать так?!
If CurrentDB.TableDefs("ИмяТаблицы").RecordCount <>0 then ...
|
If CurrentDB.TableDefs("Имя_Запроса").RecordCount <>0 then ...
|
| |
|
| |
|
|
|
|
| Для запроса это не подойдет.
Можно так:
If Not CurrentDB.OpenRecordset("Имя_Запроса/Таблицы").BOF then ...
|
| |
|
| |
|
|
|
| А чем плохо:
Public Function bTblIsNull(sTblNname$) As Boolean
bTblIsNull = (DCount("*", sTblNname) = 0)
End Function
Public Sub tst1()
Debug.Print bTblIsNull("t1")
End Sub
|
| |
|
| |
|
|
|
|
If Not CurrentDB.OpenRecordset("Имя_Запроса/Таблицы").BOF then
|
Вот это здорово!!!
Типа если нет начала у таблицы, то и нету у таблицы и конца!!
Спасибо Анатолий! | |
|
| |
|
|
|
| Спасибо всем, откликнувшимся.
Public Function FUN_FREE_TABLE(STR_TABLE_NAME As String) As Boolean
' проверка таблицы/запроса на пустоту - на отсутствие записей
' Если FUN_FREE_TABLE = True - таблица пуста
' -----------------
On Error GoTo NAFIG
' проверяем
If Not CurrentDb.OpenRecordset(STR_TABLE_NAME).BOF Then FUN_FREE_TABLE = True
Exit Function
NAFIG:
End Function
|
| |
|
| |
|
|
|
|
| Вместо:
If Not CurrentDb.OpenRecordset(STR_TABLE_NAME).BOF Then FUN_FREE_TABLE = True
|
Короче и красивше так:
FUN_FREE_TABLE = CurrentDb.OpenRecordset(STR_TABLE_NAME).BOF
|
А чем плохо DCount? Можно, но она віполняется дольше, т.к. должна посчитать кол-во записей, а здесь это не надо. | |
|
| |
|
|
|
| ААААААА - да, точно и то и другое Boolean
---------------------
Но тада отсутствие таблицы - не обработается. | |
|
| |
|
|
|
|
Но тада отсутствие таблицы - не обработается.
|
А вы об этом и не спрашивали.
Хотя, если добавить On Error Resume Next, то функция, ИМХО, вернет False | |
|
| |
|
|
|
| Согласен. Можно еще "SELECT TOP 1 ..." и recordcount.
Но уже есть ваше хорошее решение... | |
|
| |
|