|
|
|
| Для тог, что бы проверить наличие повторяющихся записей использую
Set rst = New ADODB.Recordset
' проверка одинаковых названий префиксов
rst.Open "SELECT First(MAGAZINE_LIST_TBL.PREFICS) AS [PREFICS поле], Count(MAGAZINE_LIST_TBL.PREFICS) AS Повторы " _
& " From MAGAZINE_LIST_TBL " _
& " GROUP BY MAGAZINE_LIST_TBL.PREFICS " _
& " HAVING (((Count(MAGAZINE_LIST_TBL.PREFICS))>1))", GLB_CLIENT_CONNECTION, adOpenKeyset, adLockOptimistic
If rst.RecordCount <> 0 Then Msgbox "Имеются одинаковые ..."
|
Как вы считаете почему порою rst.RecordCount - врёт | |
|
| |
|
|
|
| или вот вариант
Dim rst_NUMBER As ADODB.Recordset
FUN_VERIFICATION_NUMBER_CARD = True
Set rst_NUMBER = New ADODB.Recordset
rst_NUMBER.Open "SELECT CLIENT_CARDS_TBL.* " _
& " From CLIENT_CARDS_TBL " _
& " Where (((CLIENT_CARDS_TBL.NUMBER_CARD) = '" & STR_NUMBER_CARD & "'))", GLB_CLIENT_CONNECTION, adOpenKeyset, adLockOptimistic
If rst_NUMBER.RecordCount = 0 Then
FUN_VERIFICATION_NUMBER_CARD = False
End If
|
То же самое | |
|
| |
|
|
|
|
Свойство RecordCount используется для определения числа записей объекта Recordset или TableDef, к которым проводилось обращение.
Свойство RecordCount НЕ ПОКАЗЫВЕАТ, сколько записей содержится в динамическом или статическом объекте Recordset до обращения ко всем записям.
После обращения к последней записи набора значение свойства RecordCount становится равным полному числу неудаленных записей в объекте Recordset или TableDef.
Для принудительного обращения к последней записи следует вызвать для объекта Recordset метод MoveLast.
|
ты опять все забыл | |
|
| |
|
|
|
| Научный подход - круто
=========================
Тока ты лучше на пальцах пояснил бы.
Я запросом выбираю записи и хочу узнать - хотяба одна запись имеется(мне не важно количество) по результатам выборки......
Если имеется - результат = True
Если записей нет - результат = False | |
|
| |
|
|
|
| продолжаем разговор:
Свойства BOF и EOF используют для проверки наличия записей в объекте Recordset, а также для сообщения о выходе за пределы объекта при перемещении от записи к записи.
Возвращаемые значения свойств BOF и EOF определяются положением указателя текущей записи.
Если любое из свойств BOF или EOF имеет значение True, текущая запись не определена.
|
rst.EOF=false - эсть записи
rst.EOF=true - нэт записи
| |
|
| |
|
|
|
|
|
Если любое из свойств BOF или EOF имеет значение True, текущая запись не определена.
|
чё
If rst.BOF = true then Msgbox "Записей в рекордсете нету"..... ..
так же как и
If rst.EOF = true then Msgbox "Записей в рекордсете нету"
================================================================
а ты пишешь
rst.EOF=false - эсть записи
rst.EOF=true - нэт записи
а там написано:
любое из свойств BOF или EOF имеет значение True | |
|
| |
|
|
|
| ну да,
я больше EOF полюбляю, в основном как условие в Do While ...... Loop | |
|
| |
|
|
|
| А я офигеваю
После удаления последней оставшейся записи объекта Recordset свойства BOF и EOF могут сохранять
значение False до тех пор, пока не будет предпринята попытка изменить положение указателя текущей записи.
|
| |
|
| |
|
|
|
|
Любой вызов метода Delete, даже приводящий к удалению последней записи из набора записей, не изменяет значения свойств BOF и EOF.
|
почему - не знаю
но если сделать Add - Update без
.Bookmark = .LastModified
- то добавленая запись не будет текущей.
возможно ноги растут от сюда или наоборот.
скорее всего во всем "виноват" сам Recordset - т.к. если после его создания изменить источник другим Recordset - он фиг увидит изменения без "перекомутации" | |
|
| |
|
|
|
| Умеете Вы Котт запутывать мну.... | |
|
| |
|
|
|
| Я вот уже и не знаю какую функцию писать для проверки по условиям отбора записей - наличие хотя бы одной в возвращаемом наборе ......
==================================
ранее всегда считал, что Recordcount - явный показатель
Если он не равен 0 - тада записи имеются, а если равен 0 - записей нет!!! | |
|
| |
|
|
|
| вот для этого и есть EOF и BOF
хотя Recordcount =0 тоже выдает при отсутсвии строк
а как он у тебя получается = 0 если есть строки
а при открытии если строки есть =1 | |
|
| |
|
|
|
|
а как он у тебя получается = 0 если есть строки
|
А вот котик - хрен его знает
Я холодным потом покрылся кода он мне два раза подряд сказал - нет такой записи , а на третий раз сказал - есть запись, и коряво так улыбнулся - скотина. | |
|
| |
|
|
|
| комментарий, корректно писать так:
If rs.EOF And rs.BOF Then
...
end if
|
| |
|
| |
|
|
|
| Привет ДрЮня!
==================
Получается - так сто ли ???
If rs.EOF And rs.BOF Then
Msgbox - "Записей нету!!"
end if
|
=============================
Коттт - как считаешь - это вроде выход
Если ни вперёд ни взад записей не видать - тада капец - записей нет....... | |
|
| |
|
|
|
| оба свойства проверять стоит если после открытия Recordset могли быть произведены какие либо действия.
если просто открыл - проверил хватает одного.
В рабочей области Microsoft Jet при добавлении записи в пустой объект Recordset, свойство BOF получает значение False, а свойство EOF сохраняет значение True, указывающее, что позиция текущей записи находится в конце объекта Recordset. В рабочей области ODBCDirect оба свойства BOF и EOF получают значение False, указывающее, что позиция текущей записи находится на новой записи.
|
- возможная жопка - обойти использовать
.Add
.Update
.Bookmark=.LastModified
тогда EOF станет False. | |
|
| |
|
|
|
| А значит, если я правильно понял
If rst.EOF = False And rst.BOF = False Then
Имеются записи
end if
|
или лучше ??? так...
If Not rst.EOF And Not rst.BOF Then
|
| |
|
| |