powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Recordset и select ... where()
7 сообщений из 7, страница 1 из 1
Recordset и select ... where()
    #38361846
doofy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.
Граждане дорогие, помогите, пожалуйста, с выборкой.

Access 2007 (+ Пакет обновления 3 (SP3) )
Win7 32bit
Две таблицы:
ВидРесурса и НормаДобычи (1-*)
ВидРесурса:
КодВидРесурса

НормаДобычи:
КодНормаДобычи
Текущая
КодВидРесурсаВК


Есть запрос на выборку:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Dim rstNorma As Dao.Recordset
Dim sqlNorma As String

sqlNorma =
"
SELECT НормаДобычи.КодНормаДобычи, НормаДобычи.КодВидРесурсаВК
FROM НормаДобычи
WHERE ( (НормаДобычи.КодВидРесурсаВК =  " & idVidRes & ") AND (" & "НормаДобычи.Текущая = true ) )
"

Set rstNorma = CurrentDb.OpenRecordset(sqlNorma)



При этом rstNorma.RecordCount = 5, а должно = 1, так как запись с НормаДобычи.Текущая = true всего одна в таблице!
Если добавить "GROUP BY НормаДобычи.КодВидРесурсаВК, КодНормаДобычи", то запись одна - все как положено.
Я что-то не знаю о RecordSet? Или пора выкинуть все знания по SQL))
...
Рейтинг: 0 / 0
Recordset и select ... where()
    #38361894
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
doofyПри этом rstNorma.RecordCount = 5, а должно = 1, так как запись с НормаДобычи.Текущая = true всего одна в таблице!
Если добавить "GROUP BY НормаДобычи.КодВидРесурсаВК, КодНормаДобычи", то запись одна - все как положено.
Я что-то не знаю о RecordSet? Или пора выкинуть все знания по SQL))
или ты что-то не договариваешь, или это "чудо"
...
Рейтинг: 0 / 0
Recordset и select ... where()
    #38361917
doofy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qwerty112doofyПри этом rstNorma.RecordCount = 5, а должно = 1, так как запись с НормаДобычи.Текущая = true всего одна в таблице!
Если добавить "GROUP BY НормаДобычи.КодВидРесурсаВК, КодНормаДобычи", то запись одна - все как положено.
Я что-то не знаю о RecordSet? Или пора выкинуть все знания по SQL))
или ты что-то не договариваешь, или это "чудо"

Признаться, право, вы меня разоблачили)
Но!
Я скрыл лишь то, что в таблицах есть еще поля. Я подумал, что это не так важно. Возможно я упускаю что-то из вида...Но в остальном я рассказал все как есть и был честен с вами.

Пример вот даже дам посмотреть, если интересно. (у меня он "работает" именно так, как я описал)
...
Рейтинг: 0 / 0
Recordset и select ... where()
    #38361944
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
doofy,

мне нечем смотреть accdb,
давай в формате А2003 - mdb
...
Рейтинг: 0 / 0
Recordset и select ... where()
    #38361946
doofy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qwerty112doofy,

мне нечем смотреть accdb,
давай в формате А2003 - mdb

Вот, пожалуйта
...
Рейтинг: 0 / 0
Recordset и select ... where()
    #38361949
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
doofy,

гмм, даа, прикольно
вобщем об этом даже где-то в Акс-вском ФАКе сказанно, что "доверять" RecordCount, без предварительного MoveLast/MoveFirst - нельзя...,
но "обычно" было "заниженное" кол-во ...
вообщем, так нужно
Код: vbnet
1.
2.
3.
4.
5.
Set rstNorma = CurrentDb.OpenRecordset(sqlNorma)

rstNorma.MoveLast
rstNorma.MoveFirst
MsgBox rstNorma.RecordCount



и, собственно, зачем RecordCount понадобился ?
если для цикла, то правильно использовать EOF
Код: vbnet
1.
2.
3.
4.
5.
6.
Set rstNorma = CurrentDb.OpenRecordset(sqlNorma)

Do While Not rstNorma.EOF
    Debug.Print rstNorma.Fields(0), rstNorma.Fields(1)
    rstNorma.MoveNext
Loop 
...
Рейтинг: 0 / 0
Recordset и select ... where()
    #38361966
doofy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qwerty112,

rstNorma.MoveLast
rstNorma.MoveFirst

странная вещь конечно, но все же спасибо.

RecordCount не для цикла - про EOF я знаю(так бы и делал)
Мне просто нужен определенный набор записей и их количество.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Recordset и select ... where()
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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